Files
grafana/package.json
Josh Hunt 654d99fbca Chore: Replace Husky/Lint-staged with Lefthook (#66608)
* Switch from husky+precommit to lefthook

Migrate from husky/precommit to lefthook

h

old husky precommit

lefthook so far

remove husky folder

switch to new lefthook package

Add postinstall script to clean up after husky

preinstall to remove husky config

package.json

package.json

package.json

script

v

Reduce lefthook output

Cleanup

testing

reduce output

testing betterer

testing betterer

testing betterer

testing betterer

testing betterer

testing betterer

testing betterer

skip skipping execution info

small cleanup

remove comment from testing

clean up old husky hooks in .git/hooks path

run scripts in parallel

update codeowners

don't auto-install lefthook

install lefthook with make command

fix yarn checksum

* update codeowners

* don't use source because it isn't available in ubuntu/debian's /bin/sh

* Ensure lefthook commits files fixed by precommit hooks

* add comment to lefthook.rc explaining what it does

* add i18n:pseudo precommit

* Don't create .husky/safe-to-delete file anymore

* cleanup old lint-staged config

* contribute docs

* update lefthook to 1.4.8

* Move frontend encouragement docs

* rewrite husky cleanup script in bash so we can run it with make

* Make old husky precommit script reject commits until husky is removed

* log precommit warning for everyone

* fix package.json

* run lefthook hooks from old husky hook

* run lefthook hooks from old husky hook

* comments

* codeowners

* codeowners
2023-08-17 09:56:52 +00:00

439 lines
17 KiB
JSON

{
"author": "Grafana Labs",
"license": "AGPL-3.0-only",
"private": true,
"name": "grafana",
"version": "10.2.0-pre",
"repository": "github:grafana/grafana",
"scripts": {
"build": "yarn i18n:compile && NODE_ENV=production webpack --progress --config scripts/webpack/webpack.prod.js",
"build:nominify": "yarn run build --env noMinify=1",
"dev": "yarn i18n:compile && NODE_ENV=dev webpack --progress --color --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",
"e2e:benchmark:live": "./e2e/start-and-run-suite benchmark live",
"e2e:enterprise": "./e2e/start-and-run-suite enterprise",
"e2e:enterprise:dev": "./e2e/start-and-run-suite enterprise dev",
"e2e:enterprise:debug": "./e2e/start-and-run-suite enterprise debug",
"test": "jest --notify --watch",
"test:coverage": "jest --coverage",
"test:coverage:changes": "jest --coverage --changedSince=origin/main",
"test:accessibility-report": "./scripts/generate-a11y-report.sh",
"lint": "yarn run lint:ts && yarn run lint:sass",
"lint:ts": "eslint . --ext .js,.tsx,.ts --cache",
"lint:sass": "yarn stylelint '{public/sass,packages}/**/*.scss' --cache",
"test:ci": "yarn i18n:compile && mkdir -p reports/junit && JEST_JUNIT_OUTPUT_DIR=reports/junit jest --ci --reporters=default --reporters=jest-junit -w ${TEST_MAX_WORKERS:-100%}",
"lint:fix": "yarn lint:ts --fix",
"packages:build": "lerna run build --ignore @grafana-plugins/input-datasource",
"packages:clean": "rimraf ./npm-artifacts && lerna run clean --parallel",
"packages:prepare": "lerna version --no-push --no-git-tag-version --force-publish --exact",
"packages:pack": "mkdir -p ./npm-artifacts && lerna exec --no-private -- yarn pack --out \"../../npm-artifacts/%s-%v.tgz\"",
"packages:typecheck": "lerna run typecheck",
"prettier:check": "prettier --check --list-different=false --log-level=warn \"**/*.{ts,tsx,scss,md,mdx}\"",
"prettier:checkDocs": "prettier --check --list-different=false --log-level=warn \"docs/**/*.md\" \"*.md\" \"packages/**/*.{ts,tsx,scss,md,mdx}\"",
"prettier:write": "prettier --list-different \"**/*.{js,ts,tsx,scss,md,mdx}\" --write",
"start": "yarn themes:generate && yarn dev --watch",
"start:noTsCheck": "yarn start --env noTsCheck=1",
"start:noLint": "yarn start --env noTsCheck=1 --env noLint=1",
"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": "esbuild --target=es6 ./scripts/cli/generateSassVariableFiles.ts --bundle --platform=node --tsconfig=./scripts/cli/tsconfig.json | node",
"themes:usage": "eslint . --ext .tsx,.ts --ignore-pattern '*.test.ts*' --ignore-pattern '*.spec.ts*' --cache --rule '{ @grafana/theme-token-usage: \"error\" }'",
"typecheck": "tsc --noEmit && yarn run packages:typecheck",
"plugins:build-bundled": "find plugins-bundled -name package.json -not -path '*/node_modules/*' -execdir yarn build \\;",
"watch": "yarn start -d watch,start core:start --watchTheme",
"ci:test-frontend": "yarn run test:ci",
"i18n:clean": "rimraf public/locales/en-US/grafana.json",
"i18n:extract": "yarn run i18next -c public/locales/i18next-parser.config.js 'public/**/*.{tsx,ts}' 'packages/grafana-ui/**/*.{tsx,ts}'",
"i18n:compile": "echo 'no i18n compile yet, all good'",
"i18n:pseudo": "node ./public/locales/pseudo.js",
"betterer": "betterer",
"betterer:merge": "betterer merge",
"betterer:stats": "ts-node --transpile-only --project ./scripts/cli/tsconfig.json ./scripts/cli/reportBettererStats.ts",
"betterer:issues": "ts-node --transpile-only --project ./scripts/cli/tsconfig.json ./scripts/cli/generateBettererIssues.ts"
},
"grafana": {
"whatsNewUrl": "https://grafana.com/docs/grafana/next/whatsnew/whats-new-in-v10-0/",
"releaseNotesUrl": "https://grafana.com/docs/grafana/next/release-notes/"
},
"devDependencies": {
"@babel/core": "7.22.9",
"@babel/plugin-proposal-class-properties": "7.18.6",
"@babel/plugin-proposal-nullish-coalescing-operator": "7.18.6",
"@babel/plugin-proposal-object-rest-spread": "7.20.7",
"@babel/plugin-proposal-optional-chaining": "7.21.0",
"@babel/plugin-syntax-dynamic-import": "7.8.3",
"@babel/plugin-transform-react-constant-elements": "7.22.5",
"@babel/plugin-transform-runtime": "7.22.9",
"@babel/plugin-transform-typescript": "7.22.9",
"@babel/preset-env": "7.22.9",
"@babel/preset-react": "7.22.5",
"@babel/preset-typescript": "7.22.5",
"@babel/runtime": "7.22.6",
"@betterer/betterer": "5.4.0",
"@betterer/cli": "5.4.0",
"@betterer/eslint": "5.4.0",
"@betterer/regexp": "5.4.0",
"@emotion/eslint-plugin": "11.11.0",
"@grafana/e2e": "workspace:*",
"@grafana/eslint-config": "6.0.0",
"@grafana/eslint-plugin": "link:./packages/grafana-eslint-rules",
"@grafana/toolkit": "workspace:*",
"@grafana/tsconfig": "^1.3.0-rc1",
"@pmmmwh/react-refresh-webpack-plugin": "0.5.10",
"@react-types/button": "3.7.3",
"@react-types/menu": "3.9.2",
"@react-types/overlays": "3.8.0",
"@react-types/shared": "3.18.1",
"@rtsao/plugin-proposal-class-properties": "7.0.1-patch.1",
"@swc/core": "1.3.38",
"@swc/helpers": "0.4.14",
"@testing-library/dom": "9.3.1",
"@testing-library/jest-dom": "5.16.5",
"@testing-library/react": "14.0.0",
"@testing-library/user-event": "14.4.3",
"@types/angular": "1.8.5",
"@types/angular-route": "1.7.3",
"@types/chance": "^1.1.3",
"@types/common-tags": "^1.8.0",
"@types/d3": "7.4.0",
"@types/d3-force": "^3.0.0",
"@types/d3-scale-chromatic": "3.0.0",
"@types/debounce-promise": "3.1.6",
"@types/eslint": "8.44.0",
"@types/file-saver": "2.0.5",
"@types/glob": "^8.0.0",
"@types/google.analytics": "^0.0.42",
"@types/gtag.js": "^0.0.12",
"@types/history": "4.7.11",
"@types/hoist-non-react-statics": "3.3.1",
"@types/jest": "29.2.3",
"@types/jquery": "3.5.16",
"@types/js-yaml": "^4.0.5",
"@types/jsurl": "^1.2.28",
"@types/lodash": "4.14.195",
"@types/logfmt": "^1.2.3",
"@types/lucene": "^2",
"@types/marked": "5.0.1",
"@types/mousetrap": "1.6.11",
"@types/node": "18.16.16",
"@types/node-forge": "^1",
"@types/ol-ext": "npm:@siedlerchr/types-ol-ext@3.2.0",
"@types/papaparse": "5.3.7",
"@types/pluralize": "^0.0.30",
"@types/prismjs": "1.26.0",
"@types/react": "18.2.15",
"@types/react-beautiful-dnd": "13.1.4",
"@types/react-dom": "18.2.7",
"@types/react-grid-layout": "1.3.2",
"@types/react-highlight-words": "0.16.4",
"@types/react-redux": "7.1.25",
"@types/react-router-dom": "5.3.3",
"@types/react-table": "7.7.14",
"@types/react-test-renderer": "18.0.0",
"@types/react-transition-group": "4.4.6",
"@types/react-virtualized-auto-sizer": "1.0.1",
"@types/react-window": "1.8.5",
"@types/react-window-infinite-loader": "^1",
"@types/redux-mock-store": "1.0.3",
"@types/semver": "7.5.0",
"@types/slate": "0.47.11",
"@types/slate-plain-serializer": "0.7.2",
"@types/slate-react": "0.22.9",
"@types/testing-library__jest-dom": "5.14.8",
"@types/tinycolor2": "1.4.3",
"@types/uuid": "9.0.2",
"@types/yargs": "17.0.24",
"@typescript-eslint/eslint-plugin": "5.42.0",
"@typescript-eslint/parser": "5.42.0",
"autoprefixer": "10.4.14",
"babel-jest": "29.3.1",
"babel-loader": "9.1.3",
"babel-plugin-angularjs-annotate": "0.10.0",
"babel-plugin-macros": "3.1.0",
"blob-polyfill": "7.0.20220408",
"browserslist": "^4.21.4",
"chance": "^1.0.10",
"codeowners": "^5.1.1",
"copy-webpack-plugin": "11.0.0",
"css-loader": "6.8.1",
"css-minimizer-webpack-plugin": "5.0.1",
"cypress": "9.5.1",
"esbuild": "0.18.12",
"esbuild-loader": "3.0.1",
"esbuild-plugin-browserslist": "^0.8.0",
"eslint": "8.44.0",
"eslint-config-prettier": "8.8.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-jest": "27.2.3",
"eslint-plugin-jsdoc": "46.4.3",
"eslint-plugin-jsx-a11y": "6.7.1",
"eslint-plugin-lodash": "7.4.0",
"eslint-plugin-react": "7.32.2",
"eslint-plugin-react-hooks": "4.6.0",
"eslint-webpack-plugin": "4.0.1",
"expose-loader": "4.1.0",
"fork-ts-checker-webpack-plugin": "8.0.0",
"glob": "10.3.3",
"html-loader": "4.2.0",
"html-webpack-plugin": "5.5.3",
"http-server": "14.1.1",
"i18next-parser": "6.6.0",
"jest": "29.3.1",
"jest-canvas-mock": "2.5.2",
"jest-date-mock": "1.0.8",
"jest-environment-jsdom": "29.3.1",
"jest-fail-on-console": "3.1.1",
"jest-junit": "16.0.0",
"jest-matcher-utils": "29.3.1",
"lerna": "5.5.4",
"mini-css-extract-plugin": "2.7.6",
"msw": "1.2.2",
"mutationobserver-shim": "0.3.7",
"ngtemplate-loader": "2.1.0",
"node-notifier": "10.0.1",
"postcss": "8.4.26",
"postcss-loader": "7.3.3",
"postcss-reporter": "7.0.5",
"postcss-scss": "4.0.6",
"prettier": "3.0.0",
"react-refresh": "0.14.0",
"react-select-event": "5.5.1",
"react-simple-compat": "1.2.3",
"react-test-renderer": "18.2.0",
"redux-mock-store": "1.5.4",
"rimraf": "5.0.1",
"rudder-sdk-js": "2.37.0",
"sass": "1.63.6",
"sass-loader": "13.3.2",
"sinon": "15.2.0",
"style-loader": "3.3.3",
"stylelint": "15.10.1",
"stylelint-config-prettier": "9.0.5",
"stylelint-config-sass-guidelines": "10.0.0",
"terser-webpack-plugin": "5.3.9",
"testing-library-selector": "0.2.1",
"ts-jest": "29.1.1",
"ts-loader": "9.3.1",
"ts-node": "10.9.1",
"typescript": "4.8.4",
"wait-on": "7.0.1",
"webpack": "5.88.1",
"webpack-bundle-analyzer": "4.9.0",
"webpack-cli": "5.1.4",
"webpack-dev-server": "4.15.1",
"webpack-manifest-plugin": "5.0.0",
"webpack-merge": "5.9.0",
"yargs": "^17.5.1"
},
"dependencies": {
"@daybrush/utils": "1.13.0",
"@emotion/css": "11.11.2",
"@emotion/react": "11.11.1",
"@glideapps/glide-data-grid": "^5.2.1",
"@grafana/aws-sdk": "0.1.1",
"@grafana/data": "workspace:*",
"@grafana/e2e-selectors": "workspace:*",
"@grafana/experimental": "1.6.1",
"@grafana/faro-core": "1.1.2",
"@grafana/faro-web-sdk": "1.1.2",
"@grafana/google-sdk": "0.1.1",
"@grafana/lezer-logql": "0.1.8",
"@grafana/lezer-traceql": "0.0.4",
"@grafana/monaco-logql": "^0.0.7",
"@grafana/runtime": "workspace:*",
"@grafana/scenes": "0.22.0",
"@grafana/schema": "workspace:*",
"@grafana/ui": "workspace:*",
"@kusto/monaco-kusto": "^7.4.0",
"@leeoniya/ufuzzy": "1.0.8",
"@lezer/common": "1.0.2",
"@lezer/highlight": "1.1.3",
"@lezer/lr": "1.3.3",
"@locker/near-membrane-dom": "^0.12.15",
"@locker/near-membrane-shared": "^0.12.15",
"@locker/near-membrane-shared-dom": "^0.12.15",
"@opentelemetry/api": "1.4.1",
"@opentelemetry/exporter-collector": "0.25.0",
"@opentelemetry/semantic-conventions": "1.15.0",
"@popperjs/core": "2.11.8",
"@prometheus-io/lezer-promql": "^0.37.0-rc.1",
"@react-aria/button": "3.8.0",
"@react-aria/dialog": "3.5.3",
"@react-aria/focus": "3.13.0",
"@react-aria/interactions": "3.16.0",
"@react-aria/menu": "3.10.0",
"@react-aria/overlays": "3.15.0",
"@react-aria/utils": "3.18.0",
"@react-stately/collections": "3.9.0",
"@react-stately/menu": "3.5.3",
"@react-stately/tree": "3.7.0",
"@reduxjs/toolkit": "1.9.5",
"@remix-run/router": "^1.5.0",
"@testing-library/react-hooks": "^8.0.1",
"@types/react-resizable": "3.0.4",
"@types/trusted-types": "2.0.3",
"@types/webpack-env": "1.18.1",
"@visx/event": "3.3.0",
"@visx/gradient": "3.3.0",
"@visx/group": "3.3.0",
"@visx/scale": "3.3.0",
"@visx/shape": "3.3.0",
"@visx/tooltip": "3.3.0",
"@welldone-software/why-did-you-render": "7.0.1",
"angular": "1.8.3",
"angular-bindonce": "0.3.1",
"angular-route": "1.8.3",
"angular-sanitize": "1.8.3",
"ansicolor": "1.1.100",
"app": "link:./public/app",
"baron": "3.0.3",
"brace": "0.11.1",
"calculate-size": "1.1.1",
"centrifuge": "4.0.1",
"classnames": "2.3.2",
"combokeys": "^3.0.0",
"comlink": "4.4.1",
"common-tags": "1.8.2",
"core-js": "3.31.1",
"d3": "7.8.5",
"d3-force": "3.0.0",
"d3-scale-chromatic": "3.0.0",
"dangerously-set-html-content": "1.0.9",
"date-fns": "2.30.0",
"debounce-promise": "3.1.2",
"emotion": "11.0.0",
"eventemitter3": "5.0.1",
"fast-deep-equal": "^3.1.3",
"fast-json-patch": "3.1.1",
"file-saver": "2.0.5",
"framework-utils": "^1.1.0",
"history": "4.10.1",
"hoist-non-react-statics": "3.3.2",
"i18next": "^22.0.0",
"i18next-browser-languagedetector": "^7.0.2",
"immer": "10.0.2",
"immutable": "4.3.1",
"jquery": "3.7.0",
"js-yaml": "^4.1.0",
"json-markup": "^1.1.0",
"json-source-map": "0.6.1",
"jsurl": "^0.1.5",
"kbar": "0.1.0-beta.40",
"lodash": "4.17.21",
"logfmt": "^1.3.2",
"lru-cache": "10.0.0",
"lru-memoize": "^1.1.0",
"lucene": "^2.1.1",
"marked": "5.1.1",
"marked-mangle": "1.1.0",
"memoize-one": "6.0.0",
"moment": "2.29.4",
"moment-timezone": "0.5.43",
"monaco-editor": "0.34.0",
"monaco-promql": "1.7.4",
"mousetrap": "1.6.5",
"mousetrap-global-bind": "1.1.0",
"moveable": "0.43.1",
"node-forge": "^1.3.1",
"ol": "7.4.0",
"ol-ext": "4.0.10",
"papaparse": "5.4.1",
"pluralize": "^8.0.0",
"prismjs": "1.29.0",
"prop-types": "15.8.1",
"pseudoizer": "^0.1.0",
"rc-cascader": "3.12.1",
"rc-drawer": "6.3.0",
"rc-slider": "10.2.1",
"rc-time-picker": "3.7.3",
"rc-tree": "5.7.9",
"re-resizable": "6.9.9",
"react": "18.2.0",
"react-awesome-query-builder": "5.4.0",
"react-beautiful-dnd": "13.1.1",
"react-diff-viewer": "^3.1.1",
"react-dom": "18.2.0",
"react-draggable": "4.4.5",
"react-dropzone": "^14.2.3",
"react-enable": "^3.1.0",
"react-grid-layout": "1.3.4",
"react-highlight-words": "0.20.0",
"react-hook-form": "7.5.3",
"react-i18next": "^12.0.0",
"react-inlinesvg": "3.0.2",
"react-loading-skeleton": "3.3.1",
"react-moveable": "0.46.1",
"react-popper": "2.3.0",
"react-popper-tooltip": "4.4.2",
"react-redux": "7.2.6",
"react-resizable": "3.0.5",
"react-responsive-carousel": "^3.2.23",
"react-router-dom": "5.3.3",
"react-router-dom-v5-compat": "^6.10.0",
"react-select": "5.7.4",
"react-split-pane": "0.1.92",
"react-table": "7.8.0",
"react-transition-group": "4.4.5",
"react-use": "17.4.0",
"react-virtual": "2.10.4",
"react-virtualized-auto-sizer": "1.0.7",
"react-window": "1.8.9",
"react-window-infinite-loader": "1.0.9",
"redux": "4.2.1",
"redux-thunk": "2.4.2",
"regenerator-runtime": "0.13.11",
"reselect": "4.1.8",
"rxjs": "7.8.1",
"sass": "link:./public/sass",
"selecto": "1.26.0",
"semver": "7.5.4",
"slate": "0.47.9",
"slate-plain-serializer": "0.7.13",
"slate-react": "0.22.10",
"sql-formatter-plus": "^1.3.6",
"symbol-observable": "4.0.0",
"test": "link:./public/test",
"tether-drop": "https://github.com/torkelo/drop",
"tinycolor2": "1.6.0",
"tslib": "2.6.0",
"tween-functions": "^1.2.0",
"uplot": "1.6.24",
"uuid": "9.0.0",
"vendor": "link:./public/vendor",
"visjs-network": "4.25.0",
"whatwg-fetch": "3.6.2",
"xlsx": "https://cdn.sheetjs.com/xlsx-0.19.1/xlsx-0.19.1.tgz"
},
"resolutions": {
"underscore": "1.13.6",
"@types/slate": "0.47.11",
"@rushstack/rig-package": "0.4.0",
"@rushstack/ts-command-line": "4.15.1",
"ngtemplate-loader/loader-utils": "^2.0.0",
"trim": "1.0.1",
"semver@~7.0.0": "7.5.4",
"semver@7.3.4": "7.5.4",
"slate-dev-environment@^0.2.2": "patch:slate-dev-environment@npm:0.2.5#.yarn/patches/slate-dev-environment-npm-0.2.5-9aeb7da7b5.patch",
"react-split-pane@0.1.92": "patch:react-split-pane@npm:0.1.92#.yarn/patches/react-split-pane-npm-0.1.92-93dbf51dff.patch",
"@storybook/blocks@7.0.10": "patch:@storybook/blocks@npm%3A7.0.10#./.yarn/patches/@storybook-blocks-npm-7.0.10-b101e8dcba.patch"
},
"workspaces": {
"packages": [
"packages/*",
"plugins-bundled/internal/*"
]
},
"engines": {
"node": ">= 18"
},
"packageManager": "yarn@3.6.1",
"dependenciesMeta": {
"prettier@3.0.0": {
"unplugged": true
}
}
}