grafana/package.json
Andrej Ocenas 218a8de220
NodeGraph: Add node graph visualization (#29706)
* Add GraphView component

* Add service map panel

* Add more metadata visuals

* Add context menu on click

* Add context menu for services

* Fix service map in dashboard

* Add field proxy in explore linkSupplier

* Refactor the link creation

* Remove test file

* Fix scale change when view is panned

* Fix node centering

* Don't show context menu if no links

* Fix service map containers

* Add collapsible around the service map

* Fix stats computation

* Remove debug log

* Fix time stats

* Allow string timestamp

* Make panning bounded

* Add zooming by mouse wheel

* Clean up the colors

* Fix stats for single trace graph

* Don't show debug config

* Add more complex layout

* Update layout with better fixing of the root nodes

* Code cleanup

* Change how we pass in link creation function and some more cleanup

* Refactor the panel section into separate render methods

* Make the edge hover more readable

* Move stats computation to data source

* Put edge labels to front

* Simplify layout for better multi graph layout

* Update for dark theme

* Move function to utils

* Visual improvements

* Improve context menu detail

* Allow custom details

* Rename to NodeGraph

* Remove unused dependencies

* Use named color palette and add some fallbacks for missing data

* Add test data scenario

* Rename plugin

* Switch scroll zoom direction to align with google maps

* Do some perf optimisations and rise the node limit

* Update alert styling

* Rename function

* Add tests

* Add more tests

* Change data frame column mapping to use column names

* Fix test

* Fix type errors

* Don't show context menu without links

* Add beta status to panel

* Fix tests

* Changed function to standard methods

* Fix typing

* Clean up yarn.lock

* Add some UI improvements

- better styling of the zoom buttons
- disable buttons when max reached

* Fix panel references after rename

* Add panel icon
2021-01-19 16:34:43 +01:00

320 lines
11 KiB
JSON

{
"author": "Grafana Labs",
"license": "Apache-2.0",
"private": true,
"name": "grafana",
"version": "7.4.0-pre",
"repository": "github:grafana/grafana",
"scripts": {
"api-tests": "jest --notify --watch --config=devenv/e2e-api-tests/jest.js",
"build": "node ./node_modules/webpack/bin/webpack.js --config scripts/webpack/webpack.prod.js",
"dev": "webpack --progress --colors --config scripts/webpack/webpack.dev.js",
"e2e": "./e2e/start-and-run-suite",
"e2e:debug": "./e2e/start-and-run-suite debug",
"e2e:dev": "./e2e/start-and-run-suite dev",
"test": "jest --notify --watch",
"lint": "yarn run lint:ts && yarn run lint:sass",
"lint:ts": "eslint . --ext .js,.tsx,.ts --cache",
"lint:sass": "yarn run sass-lint -c public/sass/.sass-lint.yml 'public/sass/**/*.scss, packages/**/*.scss' -v -i '**/node_modules/**/*.scss'",
"test:ci": "mkdir -p reports/junit && export JEST_JUNIT_OUTPUT_DIR=reports/junit && jest --ci --reporters=default --reporters=jest-junit -w ${TEST_MAX_WORKERS:-100%}",
"lint:fix": "yarn lint --fix",
"packages:build": "lerna run clean && lerna run build --ignore @grafana-plugins/input-datasource",
"packages:docsExtract": "rm -rf ./reports/docs && lerna run docsExtract",
"packages:docsToMarkdown": "api-documenter markdown --input-folder ./reports/docs/ --output-folder ./docs/sources/packages_api/ --hugo",
"packages:prepare": "lerna version --no-push --no-git-tag-version --force-publish --exact",
"packages:publish": "lerna publish from-package --contents dist",
"packages:publishCanary": "lerna publish from-package --contents dist --dist-tag canary --yes",
"packages:publishLatest": "lerna publish from-package --contents dist --yes",
"packages:publishNext": "lerna publish from-package --contents dist --dist-tag next --yes",
"packages:publishDev": "lerna publish from-package --contents dist --dist-tag dev --yes --registry http://grafana-npm.local:4873 --force-publish=*",
"packages:typecheck": "lerna run typecheck",
"packages:clean": "lerna run clean",
"precommit": "yarn run lint-staged",
"prettier:check": "prettier --list-different \"**/*.{ts,tsx,scss}\"",
"prettier:write": "prettier --list-different \"**/*.{ts,tsx,scss}\" --write",
"start": "grafana-toolkit core:start --watchTheme",
"start:hot": "grafana-toolkit core:start --hot --watchTheme",
"start:ignoreTheme": "grafana-toolkit core:start --hot",
"start:noTsCheck": "grafana-toolkit core:start --noTsCheck",
"stats": "webpack --mode production --config scripts/webpack/webpack.prod.js --profile --json > compilation-stats.json",
"storybook": "yarn workspace @grafana/ui storybook --ci",
"storybook:build": "yarn workspace @grafana/ui storybook:build",
"themes:generate": "ts-node --project ./scripts/cli/tsconfig.json ./scripts/cli/generateSassVariableFiles.ts",
"typecheck": "tsc --noEmit && yarn run packages:typecheck",
"plugins:build-bundled": "grafana-toolkit plugin:bundle-managed",
"watch": "yarn start -d watch,start core:start --watchTheme",
"ci:test-frontend": "yarn run prettier:check && yarn run typecheck && yarn run lint && yarn run test:ci && yarn grafana-toolkit node-version-check && ./scripts/ci-check-strict.sh"
},
"grafana": {
"whatsNewUrl": "https://grafana.com/docs/grafana/latest/guides/whats-new-in-v7-3/",
"releaseNotesUrl": "https://grafana.com/docs/grafana/latest/release-notes/"
},
"husky": {
"hooks": {
"pre-commit": "yarn run precommit"
}
},
"lint-staged": {
"*.{js,ts,tsx}": [
"eslint --ext .js,.tsx,.ts --cache --fix"
],
"*.{json,scss}": [
"prettier --write"
],
"*pkg/**/*.go": [
"gofmt -w -s"
]
},
"devDependencies": {
"@babel/core": "7.8.4",
"@babel/plugin-proposal-nullish-coalescing-operator": "7.8.3",
"@babel/plugin-proposal-optional-chaining": "7.8.3",
"@babel/plugin-syntax-dynamic-import": "7.8.3",
"@babel/preset-env": "7.8.4",
"@babel/preset-react": "7.8.3",
"@babel/preset-typescript": "7.8.3",
"@emotion/core": "10.0.27",
"@grafana/api-documenter": "7.11.2",
"@grafana/api-extractor": "7.10.1",
"@grafana/eslint-config": "2.0.6",
"@rtsao/plugin-proposal-class-properties": "7.0.1-patch.1",
"@testing-library/jest-dom": "5.11.5",
"@testing-library/react": "11.1.2",
"@testing-library/react-hooks": "^3.2.1",
"@testing-library/user-event": "^12.1.3",
"@types/angular": "1.6.56",
"@types/angular-route": "1.7.0",
"@types/classnames": "2.2.9",
"@types/clipboard": "2.0.1",
"@types/d3": "5.7.2",
"@types/d3-force": "^2.1.0",
"@types/d3-scale-chromatic": "1.3.1",
"@types/enzyme": "3.10.5",
"@types/enzyme-adapter-react-16": "1.0.6",
"@types/file-saver": "2.0.1",
"@types/is-hotkey": "0.1.1",
"@types/jest": "26.0.15",
"@types/jquery": "3.3.38",
"@types/lodash": "4.14.149",
"@types/lru-cache": "^5.1.0",
"@types/moment-timezone": "0.5.13",
"@types/mousetrap": "1.6.3",
"@types/node": "13.7.0",
"@types/papaparse": "5.2.0",
"@types/prismjs": "1.16.0",
"@types/react": "16.9.9",
"@types/react-beautiful-dnd": "12.1.2",
"@types/react-dom": "16.9.9",
"@types/react-grid-layout": "1.1.1",
"@types/react-redux": "7.1.7",
"@types/react-select": "3.0.8",
"@types/react-test-renderer": "16.9.2",
"@types/react-transition-group": "4.4.0",
"@types/react-window": "1.8.1",
"@types/redux-logger": "3.0.7",
"@types/redux-mock-store": "1.0.2",
"@types/reselect": "2.2.0",
"@types/slate": "0.47.1",
"@types/slate-plain-serializer": "0.6.1",
"@types/slate-react": "0.22.5",
"@types/testing-library__jest-dom": "5.9.5",
"@types/testing-library__react-hooks": "^3.2.0",
"@types/tinycolor2": "1.4.2",
"@typescript-eslint/eslint-plugin": "4.0.1",
"@typescript-eslint/parser": "4.0.1",
"@wojtekmaj/enzyme-adapter-react-17": "0.3.1",
"angular-mocks": "1.6.6",
"autoprefixer": "9.7.4",
"axios": "0.21.1",
"babel-core": "7.0.0-bridge.0",
"babel-jest": "26.6.3",
"babel-loader": "8.0.6",
"babel-plugin-angularjs-annotate": "0.10.0",
"clean-webpack-plugin": "3.0.0",
"css-loader": "3.4.2",
"enzyme": "3.11.0",
"enzyme-to-json": "3.4.4",
"es-abstract": "1.18.0-next.1",
"es6-promise": "4.2.8",
"es6-shim": "0.35.5",
"eslint": "^7.14.0",
"eslint-config-prettier": "6.11.0",
"eslint-plugin-jsdoc": "28.6.1",
"eslint-plugin-no-only-tests": "^2.4.0",
"eslint-plugin-prettier": "3.1.4",
"eslint-plugin-react": "7.21.5",
"eslint-plugin-react-hooks": "4.1.2",
"expect.js": "0.3.1",
"expose-loader": "0.7.5",
"file-loader": "5.0.2",
"fork-ts-checker-webpack-plugin": "5.0.0",
"gaze": "1.1.3",
"glob": "7.1.6",
"html-loader": "0.5.5",
"html-webpack-harddisk-plugin": "1.0.1",
"html-webpack-plugin": "3.2.0",
"husky": "4.2.1",
"jest": "26.6.3",
"jest-canvas-mock": "2.3.0",
"jest-date-mock": "1.0.8",
"jest-matcher-utils": "26.0.0",
"lerna": "^3.22.1",
"lint-staged": "10.0.7",
"load-grunt-tasks": "5.1.0",
"mini-css-extract-plugin": "0.9.0",
"mocha": "7.0.1",
"module-alias": "2.2.2",
"monaco-editor": "0.20.0",
"monaco-editor-webpack-plugin": "1.9.0",
"mutationobserver-shim": "0.3.3",
"ngtemplate-loader": "2.0.1",
"optimize-css-assets-webpack-plugin": "5.0.3",
"postcss-browser-reporter": "0.6.0",
"postcss-loader": "3.0.0",
"postcss-reporter": "6.0.1",
"prettier": "1.19.1",
"react-hot-loader": "4.8.0",
"react-test-renderer": "16.12.0",
"redux-mock-store": "1.5.4",
"regexp-replace-loader": "1.0.1",
"rimraf": "3.0.1",
"rxjs-spy": "^7.5.1",
"sass": "1.27.0",
"sass-lint": "1.12.1",
"sass-loader": "8.0.2",
"sinon": "8.1.1",
"style-loader": "1.1.3",
"terser-webpack-plugin": "2.3.5",
"ts-jest": "26.4.4",
"ts-node": "9.0.0",
"tslib": "2.0.3",
"typescript": "4.1.2",
"webpack": "4.41.5",
"webpack-bundle-analyzer": "3.6.0",
"webpack-cleanup-plugin": "0.5.1",
"webpack-cli": "3.3.10",
"webpack-dev-server": "3.10.3",
"webpack-merge": "4.2.2",
"zone.js": "0.7.8"
},
"dependencies": {
"@grafana/slate-react": "0.22.9-grafana",
"@popperjs/core": "2.5.4",
"@reduxjs/toolkit": "1.3.4",
"@sentry/browser": "5.25.0",
"@sentry/types": "5.24.2",
"@sentry/utils": "5.24.2",
"@torkelo/react-select": "3.0.8",
"@types/antlr4": "^4.7.1",
"@types/braintree__sanitize-url": "4.0.0",
"@types/common-tags": "^1.8.0",
"@types/hoist-non-react-statics": "3.3.1",
"@types/jsurl": "^1.2.28",
"@types/md5": "^2.1.33",
"@types/react-loadable": "5.5.2",
"@types/react-virtualized-auto-sizer": "1.0.0",
"@types/sockjs-client": "^1.1.1",
"@types/uuid": "8.3.0",
"@welldone-software/why-did-you-render": "4.0.6",
"abortcontroller-polyfill": "1.4.0",
"angular": "1.8.2",
"angular-bindonce": "0.3.1",
"angular-route": "1.8.2",
"angular-sanitize": "1.8.2",
"antlr4": "^4.8.0",
"baron": "3.0.3",
"brace": "0.11.1",
"calculate-size": "1.1.1",
"centrifuge": "^2.6.4",
"classnames": "2.2.6",
"clipboard": "2.0.4",
"common-tags": "^1.8.0",
"core-js": "3.6.4",
"d3": "5.15.0",
"d3-force": "^2.1.1",
"d3-scale-chromatic": "1.5.0",
"dangerously-set-html-content": "1.0.6",
"emotion": "10.0.27",
"eventemitter3": "4.0.0",
"fast-text-encoding": "^1.0.0",
"file-saver": "2.0.2",
"hoist-non-react-statics": "3.3.2",
"immutable": "3.8.2",
"is-hotkey": "0.1.6",
"jquery": "3.5.1",
"jsurl": "^0.1.5",
"lodash": "4.17.20",
"lru-cache": "^5.1.1",
"md5": "^2.2.1",
"memoize-one": "5.1.1",
"moment": "2.24.0",
"moment-timezone": "0.5.28",
"mousetrap": "1.6.5",
"mousetrap-global-bind": "1.1.0",
"nodemon": "2.0.2",
"papaparse": "5.3.0",
"prismjs": "1.21.0",
"prop-types": "15.7.2",
"rc-cascader": "1.0.1",
"re-resizable": "^6.2.0",
"react": "17.0.1",
"react-beautiful-dnd": "13.0.0",
"react-dom": "17.0.1",
"react-grid-layout": "1.2.0",
"react-highlight-words": "0.16.0",
"react-loadable": "5.5.0",
"react-popper": "2.2.4",
"react-redux": "7.2.0",
"react-reverse-portal": "^2.0.1",
"react-sizeme": "2.6.12",
"react-split-pane": "0.1.89",
"react-transition-group": "4.4.1",
"react-use": "13.27.0",
"react-virtualized-auto-sizer": "1.0.2",
"react-window": "1.8.5",
"redux": "4.0.5",
"redux-logger": "3.0.6",
"redux-thunk": "2.3.0",
"regenerator-runtime": "0.13.3",
"reselect": "4.0.0",
"rst2html": "github:thoward/rst2html#990cb89",
"rxjs": "6.6.3",
"search-query-parser": "1.5.4",
"slate": "0.47.8",
"slate-plain-serializer": "0.7.10",
"sockjs-client": "^1.4.0",
"tether": "1.4.7",
"tether-drop": "https://github.com/torkelo/drop/tarball/master",
"tinycolor2": "1.4.1",
"tti-polyfill": "0.2.2",
"uuid": "8.3.0",
"visjs-network": "4.25.0",
"whatwg-fetch": "3.1.0"
},
"resolutions": {
"caniuse-db": "1.0.30000772"
},
"workspaces": {
"packages": [
"packages/*",
"plugins-bundled/internal/*"
],
"nohoist": [
"**/@types/*",
"**/@types/*/**",
"@storybook",
"**/@storybook",
"**/@storybook/**"
]
},
"_moduleAliases": {
"puppeteer": "node_modules/puppeteer-core"
},
"engines": {
"node": ">= 14"
},
"volta": {
"node": "14.15.1"
}
}