{ "name": "grafana-oncall-app", "version": "1.0.0", "description": "Grafana OnCall Plugin", "scripts": { "lint": "eslint --cache --ext .js,.jsx,.ts,.tsx --max-warnings=0 ./src ./e2e-tests", "lint:fix": "eslint --max-warnings=0 --fix --cache --ext .js,.jsx,.ts,.tsx ./src ./e2e-tests", "stylelint": "stylelint ./src/**/*.{css,scss,module.css,module.scss}", "stylelint:fix": "stylelint --fix ./src/**/*.{css,scss,module.css,module.scss}", "build": "NODE_ENV=production webpack -c ./webpack.config.ts --env production", "build:dev": "NODE_ENV=development webpack -c ./webpack.config.ts --env development", "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-utc": "TZ=UTC jest --verbose --testNamePattern '^((?!@london-tz).)*$'", "test-london-tz": "TZ=Europe/London jest --verbose --testNamePattern '@london-tz'", "test": "yarn test-utc && yarn test-london-tz", "test:ci": "yarn test", "test:report": "HTML_REPORT_ENABLED=true yarn test", "test:silent": "yarn test --silent", "test:e2e": "yarn playwright test --grep-invert @expensive", "test:e2e-expensive": "yarn playwright test", "test:e2e:watch": "yarn test:e2e --ui", "test:e2e-expensive:watch": "yarn test:e2e-expensive --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", "watch": "NODE_ENV=development webpack -w -c ./webpack.config.ts --env development", "sign": "npx --yes @grafana/sign-plugin@latest", "start": "yarn watch", "plop": "plop", "setversion": "setversion", "typecheck": "tsc --noEmit", "typecheck:watch": "yarn typecheck --watch --preserveWatchOutput false", "find-dead-code": "knip" }, "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": { "@grafana/eslint-config": "^6.0.0", "@grafana/tsconfig": "^1.2.0-rc1", "@jest/globals": "^27.5.1", "@playwright/test": "^1.41.0", "@swc/core": "^1.3.90", "@swc/helpers": "^0.5.0", "@swc/jest": "^0.2.26", "@testing-library/dom": "latest", "@testing-library/jest-dom": "^6.4.2", "@testing-library/react": "^14.1.2", "@testing-library/user-event": "^14.4.3", "@types/dompurify": "^2.3.4", "@types/express": "^4.17.21", "@types/jest": "^29.5.0", "@types/lodash": "^4.14.194", "@types/lodash-es": "^4.17.6", "@types/node": "^20.14.10", "@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-test-renderer": "^18.0.5", "@types/react-transition-group": "^4.4.5", "@types/testing-library__jest-dom": "5.14.8", "@types/throttle-debounce": "^5.0.0", "@typescript-eslint/eslint-plugin": "^5.40.1", "copy-webpack-plugin": "^11.0.0", "css-loader": "^6.7.3", "dompurify": "^2.3.12", "dotenv": "^16.0.3", "eslint": "^8.25.0", "eslint-plugin-deprecation": "^2.0.0", "eslint-plugin-jsdoc": "^44.2.4", "eslint-plugin-promise": "^6.1.1", "eslint-plugin-react": "^7.31.10", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-rulesdir": "^0.2.1", "eslint-plugin-unused-imports": "^3.1.0", "eslint-webpack-plugin": "^4.0.1", "express": "^4.19.2", "fork-ts-checker-webpack-plugin": "^8.0.0", "glob": "^10.2.7", "identity-obj-proxy": "3.0.0", "jest": "^29.5.0", "jest-environment-jsdom": "^29.5.0", "jest-html-reporters": "^3.1.7", "knip": "^5.0.3", "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", "prettier": "^2.8.7", "react-test-renderer": "^18.0.2", "replace-in-file-webpack-plugin": "^1.0.6", "sass": "1.63.2", "sass-loader": "13.3.1", "semver": "^7.6.0", "style-loader": "3.3.3", "stylelint-config-prettier": "^9.0.3", "stylelint-prettier": "^2.0.0", "swc-loader": "^0.2.3", "ts-jest": "29.0.3", "ts-node": "^10.9.1", "tsconfig-paths": "^4.2.0", "typescript": "5.1", "webpack": "^5.86.0", "webpack-bundle-analyzer": "^4.6.1", "webpack-cli": "^5.1.4", "webpack-livereload-plugin": "^3.0.2" }, "engines": { "node": "20.x" }, "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", "@emotion/css": "11.10.6", "@grafana/data": "^10.2.3", "@grafana/faro-web-sdk": "^1.4.2", "@grafana/faro-web-tracing": "^1.4.2", "@grafana/labels": "~1.5.1", "@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", "array-move": "^4.0.0", "axios": "^1.6.7", "change-case": "^4.1.1", "circular-dependency-plugin": "^5.2.2", "classnames": "^2.3.2", "dayjs": "^1.11.5", "eslint-plugin-import": "^2.29.1", "immutability-helper": "^3.1.1", "linkify-react": "^4.1.3", "linkifyjs": "^4.1.3", "mobx": "6.12.0", "mobx-react": "9.1.0", "object-hash": "^3.0.0", "openapi-fetch": "^0.8.1", "qrcode.react": "^3.1.0", "query-string": "^7.1.1", "raw-loader": "^4.0.2", "rc-table": "^7.17.1", "react": "18.2.0", "react-copy-to-clipboard": "^5.0.2", "react-dom": "18.2.0", "react-draggable": "^4.4.5", "react-emoji-render": "^1.2.4", "react-hook-form": "^7.50.1", "react-modal": "^3.15.1", "react-responsive": "^8.1.0", "react-router-dom-v5-compat": "^6.25.1", "react-sortable-hoc": "^1.11.0", "react-string-replace": "^0.4.4", "react-transition-group": "^4.4.5", "react-use": "^17.4.0", "stylelint": "^13.13.1", "stylelint-config-standard": "^22.0.0", "throttle-debounce": "^2.1.0", "tinycolor2": "^1.6.0", "tslib": "2.5.3" } }