135 строки
8.0 KiB
JSON
135 строки
8.0 KiB
JSON
{
|
|
"name": "chromestatus-dashboard",
|
|
"description": "Chrome platform status - chromestatus.com",
|
|
"homepage": "https://www.chromestatus.com",
|
|
"private": true,
|
|
"type": "module",
|
|
"engines": {
|
|
"node": ">=18.0.0"
|
|
},
|
|
"workspaces": [
|
|
"./gen/js/*"
|
|
],
|
|
"scripts": {
|
|
"setup": "npm ci; python3.11 -m venv cs-env; npm run deps",
|
|
"clean-setup": "rm -rf node_modules cs-env; npm run setup",
|
|
"deps": ". cs-env/bin/activate; pip install -r requirements.txt --upgrade && pip install -r requirements.dev.txt --upgrade",
|
|
"dev-deps": "echo 'dev-deps is no longer needed'",
|
|
"dev-ot-key": "gcloud secrets versions access latest --secret=DEV_OT_API_KEY --out-file=ot_api_key.txt --project=cr-status-staging",
|
|
"do-tests": ". cs-env/bin/activate; curl -X POST 'http://localhost:15606/reset' && python3.11 -m unittest discover -p '*_test.py' -b",
|
|
"start-emulator-persist": "gcloud beta emulators datastore start --project=cr-status-staging --host-port=:15606 --use-firestore-in-datastore-mode",
|
|
"start-emulator": "gcloud beta emulators datastore start --project=cr-status-staging --host-port=:15606 --no-store-on-disk --use-firestore-in-datastore-mode",
|
|
"stop-emulator": "curl -X POST 'http://localhost:15606/shutdown'; pkill -f \"CloudDatastore.jar\"",
|
|
"build": "npm run tsc-clean && tsc && gulp",
|
|
"tsc-clean": "tsc --build --clean",
|
|
"watch": "npm run build && concurrently \"tsc --watch\" \"gulp watch\"",
|
|
"start-app": "npm run build && curl --retry 4 http://${DATASTORE_EMULATOR_HOST:-localhost:15606}/ --retry-connrefused && ./scripts/start_server.sh",
|
|
"debug-app": "npm run build && curl --retry 4 http://${DATASTORE_EMULATOR_HOST:-localhost:15606}/ --retry-connrefused && ./scripts/debug_server.sh",
|
|
"start": "npm stop; . cs-env/bin/activate; (npm run start-emulator-persist > /dev/null 2>&1 &); npm run start-app; status=$?; npm run stop-emulator; exit $status",
|
|
"stop": "npm run pwtests-shutdown; kill `pgrep gunicorn`",
|
|
"test": "(npm run start-emulator > /dev/null 2>&1 &); sleep 6; curl --retry 4 http://localhost:15606/ --retry-connrefused; npm run do-tests; status=$?; npm run stop-emulator; exit $status",
|
|
"webtest": "npm run build && web-test-runner \"build/**/*_test.js\" --node-resolve --playwright --browsers chromium firefox",
|
|
"webtest:watch": "npm run build && web-test-runner \"build/**/*_test.{js,ts}\" --node-resolve --playwright --watch --browsers chromium",
|
|
"webtest-coverage": "npm run build && web-test-runner \"build/**/*_test.js\" --node-resolve --playwright --coverage --browsers chromium firefox",
|
|
"do-coverage": "coverage3 erase && coverage3 run -m unittest discover -p '*_test.py' -b && coverage3 html",
|
|
"coverage": ". cs-env/bin/activate; (npm run start-emulator > /dev/null 2>&1 &); sleep 3; curl --retry 4 http://localhost:15606/ --retry-connrefused; npm run do-coverage; npm run stop-emulator",
|
|
"view-coverage": "pushd htmlcov/; python3.11 -m http.server 8080; popd",
|
|
"mypy": ". cs-env/bin/activate; mypy --ignore-missing-imports --exclude cs-env/ --exclude appengine_config.py --exclude gen/py/chromestatus_openapi/build/ --exclude gen/py/chromestatus_openapi/chromestatus_openapi/test --exclude appengine_config.py --no-namespace-packages --disable-error-code \"annotation-unchecked\" .",
|
|
"lint": "prettier client-src/js-src client-src/elements --check && eslint \"client-src/js-src/**/*.{js,ts}\" && tsc -p tsconfig.json && lit-analyzer \"client-src/elements/chromedash-!(featurelist)*.js\"",
|
|
"lint-fix": "prettier client-src/js-src client-src/elements --write && eslint \"client-src/js-src/**/*.{js,ts}\" --fix",
|
|
"presubmit": "npm test && npm run webtest && npm run lint && npm run mypy",
|
|
"pylint": "pylint --output-format=parseable *py api/*py framework/*py internals/*py pages/*py",
|
|
"staging": "npm run clean-setup && npm run build && ./scripts/deploy_site.sh `git describe --always --abbrev=7 --match 'NOT A TAG' --dirty='-tainted'` cr-status-staging",
|
|
"staging-rc": "npm run clean-setup && npm run build && ./scripts/deploy_site.sh rc cr-status-staging",
|
|
"deploy": "npm run clean-setup && npm run build && ./scripts/deploy_site.sh `git describe --always --abbrev=7 --match 'NOT A TAG' --dirty='-tainted'`",
|
|
"deploy-rc": "npm run clean-setup && npm run build && ./scripts/deploy_site.sh rc",
|
|
"openapi": "npm run openapi-backend && npm run openapi-frontend",
|
|
"openapi-frontend": "rm -rf gen/js/chromestatus-openapi && openapi-generator-cli generate --reserved-words-mappings field=field -i openapi/api.yaml -g typescript-fetch -o gen/js/chromestatus-openapi --config openapi/js-config.yaml && npm install",
|
|
"openapi-backend": ". cs-env/bin/activate; rm -rf gen/py/chromestatus_openapi && openapi-generator-cli generate --reserved-words-mappings field=field -i openapi/api.yaml -g python-flask -o gen/py/chromestatus_openapi --additional-properties=packageName=chromestatus_openapi && pip install -r requirements.txt",
|
|
"openapi-validate": "openapi-generator-cli validate -i openapi/api.yaml",
|
|
"pwtests": "npm run pwtests-shutdown; ./packages/playwright/run.sh bash -c \"./wait-for-app.sh && npx playwright test\"",
|
|
"pwtests-update": "npm run pwtests-shutdown; ./packages/playwright/run.sh bash -c \"./wait-for-app.sh && npx playwright test --update-snapshots $npm_config_filename \"",
|
|
"pwtests-report": "npm run pwtests-shutdown; ./packages/playwright/run.sh bash -c \"./wait-for-app.sh && npx playwright show-report\"",
|
|
"pwtests-ui": "npm run pwtests-shutdown; ./packages/playwright/run.sh bash -c \"./wait-for-app.sh && npx playwright test --ui --ui-port=8123\"",
|
|
"pwtests-shell": "./packages/playwright/run.sh bash",
|
|
"pwtests-debug": "./packages/playwright/run.sh debug",
|
|
"pwtests-shutdown": "./packages/playwright/run.sh down"
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/GoogleChrome/chromium-dashboard"
|
|
},
|
|
"bugs": {
|
|
"url": "https://github.com/GoogleChrome/chromium-dashboard/issues"
|
|
},
|
|
"devDependencies": {
|
|
"@babel/core": "^7.25.8",
|
|
"@babel/eslint-parser": "^7.25.1",
|
|
"@babel/eslint-plugin": "^7.25.9",
|
|
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
"@babel/plugin-proposal-decorators": "^7.25.7",
|
|
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
|
"@babel/plugin-transform-classes": "^7.25.9",
|
|
"@babel/preset-env": "^7.25.8",
|
|
"@babel/register": "^7.25.9",
|
|
"@open-wc/testing": "^4.0.0",
|
|
"@openapitools/openapi-generator-cli": "^2.14.0",
|
|
"@playwright/test": "1.48.2",
|
|
"@rollup/plugin-babel": "^6.0.4",
|
|
"@rollup/plugin-node-resolve": "^15.3.0",
|
|
"@rollup/plugin-typescript": "^12.1.1",
|
|
"@shoelace-style/shoelace": "^2.18.0",
|
|
"@types/jest": "^29.5.14",
|
|
"@types/node": "^22.9.0",
|
|
"@web/test-runner": "^0.19.0",
|
|
"@web/test-runner-playwright": "^0.11.0",
|
|
"acorn": ">=8.14.0",
|
|
"color-string": ">=1.9.0",
|
|
"del": "^8.0.0",
|
|
"dot-prop": ">=9.0.0",
|
|
"eslint": "^9.12.0",
|
|
"eslint-config-prettier": "^9.1.0",
|
|
"glob-parent": ">=6.0.2",
|
|
"gts": "^6.0.0",
|
|
"gulp": "^5.0.0",
|
|
"gulp-autoprefixer": "^9.0.0",
|
|
"gulp-babel": "^8.0.0",
|
|
"gulp-concat": "^2.6.1",
|
|
"gulp-license": "^1.1.0",
|
|
"gulp-rename": "^2.0.0",
|
|
"gulp-uglify-es": "^3.0.0",
|
|
"ini": ">=5.0.0",
|
|
"kind-of": ">=6.0.3",
|
|
"lit-analyzer": "^2.0.3",
|
|
"lodash": ">=4.17.21",
|
|
"lodash.template": ">=4.5.0",
|
|
"minimist": ">=1.2.8",
|
|
"path-parse": ">=1.0.7",
|
|
"prettier": "^3.3.3",
|
|
"regenerator-runtime": "^0.14.1",
|
|
"rollup": "^4.24.0",
|
|
"rollup-plugin-babel-minify": "^10.0.0",
|
|
"sinon": "^19.0.2",
|
|
"tar": ">=7.4.3",
|
|
"trim-newlines": ">=5.0.0",
|
|
"ts-lit-plugin": "^2.0.2",
|
|
"typescript": "^5.6.3"
|
|
},
|
|
"dependencies": {
|
|
"@lit/task": "^1.0.1",
|
|
"@polymer/iron-collapse": "^3.0.1",
|
|
"@polymer/iron-icon": "^3.0.1",
|
|
"@polymer/iron-iconset-svg": "^3.0.1",
|
|
"@types/google.accounts": "^0.0.15",
|
|
"@types/google.visualization": "^0.0.74",
|
|
"lit": "^3",
|
|
"node-fetch": ">=3.3.2",
|
|
"page": "^1.11.6",
|
|
"urijs": ">=1.19.11",
|
|
"yargs-parser": ">=21.1.1"
|
|
},
|
|
"overrides": {
|
|
"glob-parent@<5.1.2": ">=5.1.2"
|
|
}
|
|
}
|