# What this PR does - autogenerate new types exposed by backend, remove custom types that duplicate autogenerated ones - use autogenerated types for alert receive channels - in alert_receive_channel model: - use autogenerate http client (`onCallApi`) for http requests - extract methods that don't update state into alert_receive_channel.helpers.ts and make them pure (they accept AlertReceiveChannelStore as param) to avoid inconsistency and issues with `this` binding - use `makeAutoObservable` - remove unneeded decorators - rename update* methods to fetch* whenever such methods retrieve data from backend with GET requests - in other models use `@action.bound` for actions and arrow functions for store methods that are not actions (in subsequent PRs we will apply the same changes as in alert_receive_channel, this is just for now until we do it) - refactor http-client so that it shows global notification on http errors automatically and provide the possibility to opt-out from it when making a call - improve type-safety of `GSelect` - fix bug related to attaching alert group (https://raintank-corp.slack.com/archives/C04JCU51NF8/p1707476487580579) ## Which issue(s) this PR fixes https://github.com/grafana/oncall/issues/3331 ## Checklist - [x] Unit, integration, and e2e (if applicable) tests updated - [x] Documentation added (or `pr:no public docs` PR label added if not required) - [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not required) --------- Co-authored-by: Vadim Stepanov <vadimkerr@gmail.com>
163 lines
5.9 KiB
JSON
163 lines
5.9 KiB
JSON
{
|
|
"name": "grafana-oncall-app",
|
|
"version": "dev-oss",
|
|
"description": "Grafana OnCall Plugin",
|
|
"scripts": {
|
|
"lint": "eslint --cache --ext .js,.jsx,.ts,.tsx --max-warnings=0 ./src ./e2e-tests",
|
|
"lint:fix": "eslint --fix --cache --ext .js,.jsx,.ts,.tsx --quiet ./src ./e2e-tests",
|
|
"stylelint": "stylelint ./src/**/*.{css,scss,module.css,module.scss}",
|
|
"stylelint:fix": "stylelint --fix ./src/**/*.{css,scss,module.css,module.scss}",
|
|
"build": "grafana-toolkit plugin:build",
|
|
"build:dev": "grafana-toolkit plugin:build --skipTest --skipLint",
|
|
"labels:link": "yarn --cwd ../../gops-labels/frontend link && yarn link \"@grafana/labels\" && yarn --cwd ../../gops-labels/frontend watch",
|
|
"labels:unlink": "yarn --cwd ../../gops-labels/frontend unlink",
|
|
"test": "jest --verbose",
|
|
"test:silent": "jest --silent",
|
|
"test:e2e": "yarn playwright test --grep-invert @expensive",
|
|
"test:e2e-expensive": "yarn playwright test --grep @expensive",
|
|
"test:e2e:watch": "yarn test:e2e --ui",
|
|
"test:e2e:gen": "yarn playwright codegen http://localhost:3000",
|
|
"e2e-show-report": "yarn playwright show-report",
|
|
"generate-types": "cd ./src/network/oncall-api/types-generator && yarn generate",
|
|
"dev": "grafana-toolkit plugin:dev",
|
|
"watch": "grafana-toolkit plugin:dev --watch",
|
|
"sign": "grafana-toolkit plugin:sign",
|
|
"ci-build:finish": "grafana-toolkit plugin:ci-build --finish",
|
|
"ci-package": "grafana-toolkit plugin:ci-package",
|
|
"ci-report": "grafana-toolkit plugin:ci-report",
|
|
"start": "yarn watch",
|
|
"plop": "plop",
|
|
"setversion": "setversion",
|
|
"typecheck": "tsc --noEmit"
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/grafana/oncall.git"
|
|
},
|
|
"lint-staged": {
|
|
"*.ts?(x)": [
|
|
"prettier --write",
|
|
"eslint --fix"
|
|
],
|
|
"*.js?(x)": [
|
|
"prettier --write",
|
|
"eslint --fix"
|
|
],
|
|
"*.css": [
|
|
"stylelint --fix"
|
|
]
|
|
},
|
|
"author": "Grafana Labs",
|
|
"license": "Apache-2.0",
|
|
"devDependencies": {
|
|
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
"@babel/plugin-proposal-decorators": "^7.20.0",
|
|
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
|
|
"@babel/plugin-proposal-object-rest-spread": "^7.18.9",
|
|
"@babel/plugin-proposal-optional-chaining": "^7.18.9",
|
|
"@babel/plugin-syntax-decorators": "^7.18.6",
|
|
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
|
"@babel/plugin-transform-destructuring": "^7.20.0",
|
|
"@babel/plugin-transform-react-constant-elements": "^7.18.12",
|
|
"@babel/plugin-transform-runtime": "^7.19.6",
|
|
"@babel/plugin-transform-typescript": "^7.18.12",
|
|
"@babel/preset-env": "^7.18.10",
|
|
"@babel/preset-react": "^7.18.6",
|
|
"@babel/preset-typescript": "^7.18.6",
|
|
"@grafana/eslint-config": "^5.1.0",
|
|
"@grafana/toolkit": "^9.5.2",
|
|
"@jest/globals": "^27.5.1",
|
|
"@playwright/test": "^1.39.0",
|
|
"@testing-library/jest-dom": "^5.16.5",
|
|
"@testing-library/react": "12",
|
|
"@testing-library/user-event": "^14.4.3",
|
|
"@types/dompurify": "^2.3.4",
|
|
"@types/jest": "27.5.1",
|
|
"@types/lodash-es": "^4.17.6",
|
|
"@types/node": "^18.11.9",
|
|
"@types/query-string": "^6.3.0",
|
|
"@types/react-copy-to-clipboard": "^5.0.4",
|
|
"@types/react-dom": "^18.0.6",
|
|
"@types/react-responsive": "^8.0.5",
|
|
"@types/react-router-dom": "^5.3.3",
|
|
"@types/react-test-renderer": "^18.0.5",
|
|
"@types/react-transition-group": "^4.4.5",
|
|
"@types/throttle-debounce": "^5.0.0",
|
|
"@typescript-eslint/eslint-plugin": "^5.40.1",
|
|
"babel-plugin-dynamic-import-node": "^2.3.3",
|
|
"copy-webpack-plugin": "^11.0.0",
|
|
"dompurify": "^2.3.12",
|
|
"dotenv": "^16.0.3",
|
|
"eslint": "^8.25.0",
|
|
"eslint-plugin-jsdoc": "^44.2.4",
|
|
"eslint-plugin-react": "^7.31.10",
|
|
"eslint-plugin-react-hooks": "^4.6.0",
|
|
"eslint-plugin-rulesdir": "^0.2.1",
|
|
"jest": "27.5.1",
|
|
"jest-environment-jsdom": "^27.5.1",
|
|
"lint-staged": "^10.2.11",
|
|
"lodash-es": "^4.17.21",
|
|
"mailslurp-client": "^15.14.1",
|
|
"moment-timezone": "^0.5.35",
|
|
"openapi-typescript": "^7.0.0-next.4",
|
|
"plop": "^2.7.4",
|
|
"postcss-loader": "^7.0.1",
|
|
"react": "18.2.0",
|
|
"react-dom": "18.2.0",
|
|
"react-test-renderer": "^18.0.2",
|
|
"stylelint-config-prettier": "^9.0.3",
|
|
"stylelint-prettier": "^2.0.0",
|
|
"ts-jest": "29.0.3",
|
|
"ts-loader": "^9.3.1",
|
|
"ts-node": "^10.9.1",
|
|
"typescript": "4.6.4",
|
|
"webpack-bundle-analyzer": "^4.6.1",
|
|
"webpack-livereload-plugin": "^3.0.2"
|
|
},
|
|
"engines": {
|
|
"node": ">=14"
|
|
},
|
|
"dependencies": {
|
|
"@dnd-kit/core": "^6.0.8",
|
|
"@dnd-kit/modifiers": "^7.0.0",
|
|
"@dnd-kit/sortable": "^7.0.2",
|
|
"@dnd-kit/utilities": "^3.2.1",
|
|
"@grafana/data": "^10.2.3",
|
|
"@grafana/faro-web-sdk": "^1.0.0-beta4",
|
|
"@grafana/faro-web-tracing": "^1.0.0-beta4",
|
|
"@grafana/labels": "1.5.0",
|
|
"@grafana/runtime": "^10.2.2",
|
|
"@grafana/scenes": "^1.28.0",
|
|
"@grafana/schema": "^10.2.2",
|
|
"@grafana/ui": "^10.2.0",
|
|
"@lifeomic/attempt": "^3.0.3",
|
|
"@opentelemetry/api": "^1.3.0",
|
|
"array-move": "^4.0.0",
|
|
"change-case": "^4.1.1",
|
|
"circular-dependency-plugin": "^5.2.2",
|
|
"dayjs": "^1.11.5",
|
|
"eslint-plugin-import": "^2.25.4",
|
|
"immutability-helper": "^3.1.1",
|
|
"mobx": "6.12.0",
|
|
"mobx-react": "9.1.0",
|
|
"object-hash": "^3.0.0",
|
|
"openapi-fetch": "^0.8.1",
|
|
"prettier": "^2.8.2",
|
|
"qrcode.react": "^3.1.0",
|
|
"raw-loader": "^4.0.2",
|
|
"rc-table": "^7.17.1",
|
|
"react-copy-to-clipboard": "^5.0.2",
|
|
"react-draggable": "^4.4.5",
|
|
"react-emoji-render": "^1.2.4",
|
|
"react-modal": "^3.15.1",
|
|
"react-responsive": "^8.1.0",
|
|
"react-router-dom": "5.3.3",
|
|
"react-sortable-hoc": "^1.11.0",
|
|
"react-string-replace": "^0.4.4",
|
|
"react-transition-group": "^4.4.5",
|
|
"sass-loader": "^13.0.2",
|
|
"stylelint": "^13.13.1",
|
|
"stylelint-config-standard": "^22.0.0",
|
|
"throttle-debounce": "^2.1.0"
|
|
}
|
|
}
|