140 строки
4.7 KiB
JSON
140 строки
4.7 KiB
JSON
{
|
|
"name": "monitor",
|
|
"version": "1.0.0",
|
|
"description": "Firefox Monitor",
|
|
"engines": {
|
|
"node": "20.9.x",
|
|
"npm": "10.2.x"
|
|
},
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "next dev --port=6060",
|
|
"build": "npm run get-location-data && npm run build-glean && next build",
|
|
"start": "next start",
|
|
"lint": "stylelint '**/*.scss' && prettier --check './src' && next lint --max-warnings=0",
|
|
"fix": "prettier --write './src' && next lint --fix && stylelint --fix '**/*.scss'",
|
|
"test": "jest",
|
|
"e2e": "playwright test src/e2e/",
|
|
"e2e:debug": "playwright test src/e2e/ --ui",
|
|
"e2e:smoke": "playwright test src/e2e/ --grep @smoke",
|
|
"db:migrate": "node -r dotenv/config node_modules/knex/bin/cli.js migrate:latest --knexfile src/db/knexfile.js",
|
|
"db:rollback": "node -r dotenv/config node_modules/knex/bin/cli.js migrate:rollback --knexfile src/db/knexfile.js",
|
|
"prepare": "husky install",
|
|
"storybook": "storybook dev -p 6006",
|
|
"build-storybook": "npm run build-glean && storybook build",
|
|
"create-location-data": "node src/scripts/uploadAutoCompleteLocations.js",
|
|
"get-location-data": "node src/scripts/getAutoCompleteLocations.js",
|
|
"build-glean": "glean translate src/telemetry/metrics.yaml --format typescript --output src/telemetry/generated && npm run build-glean-types",
|
|
"build-glean-types": "node src/scripts/buildGleanTypes.js",
|
|
"build-glean-docs": "glean translate src/telemetry/metrics.yaml --format markdown --output docs"
|
|
},
|
|
"nodemonConfig": {
|
|
"watch": [
|
|
".env"
|
|
],
|
|
"env": {
|
|
"LIVE_RELOAD": true
|
|
},
|
|
"ext": "js,css,json,ftl,env"
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/mozilla/blurts-server.git"
|
|
},
|
|
"homepage": "https://github.com/mozilla/blurts-server",
|
|
"license": "MPL-2.0",
|
|
"volta": {
|
|
"node": "20.9.0",
|
|
"npm": "10.2.4"
|
|
},
|
|
"dependencies": {
|
|
"@aws-sdk/client-s3": "^3.496.0",
|
|
"@aws-sdk/lib-storage": "^3.496.0",
|
|
"@fluent/bundle": "^0.18.0",
|
|
"@fluent/langneg": "^0.7.0",
|
|
"@fluent/react": "^0.15.2",
|
|
"@google-cloud/logging-winston": "^6.0.0",
|
|
"@google-cloud/pubsub": "^4.1.1",
|
|
"@grpc/grpc-js": "1.9.13",
|
|
"@leeoniya/ufuzzy": "^1.0.14",
|
|
"@mozilla/glean": "3.0.0",
|
|
"@sentry/nextjs": "^7.93.0",
|
|
"@sentry/node": "^7.58.1",
|
|
"@sentry/tracing": "^7.93.0",
|
|
"@types/jsdom": "^21.1.5",
|
|
"@types/node": "^20.11.5",
|
|
"@types/react": "^18.2.48",
|
|
"@types/react-dom": "^18.2.18",
|
|
"canvas-confetti": "^1.9.1",
|
|
"client-oauth2": "^4.3.3",
|
|
"dotenv": "^16.3.2",
|
|
"eslint-config-next": "^14.1.0",
|
|
"jsdom": "^24.0.0",
|
|
"jsonwebtoken": "^9.0.2",
|
|
"jwk-to-pem": "^2.0.5",
|
|
"knex": "^3.1.0",
|
|
"next": "^14.1.0",
|
|
"next-auth": "^4.24.5",
|
|
"nodemailer": "^6.9.8",
|
|
"patch-package": "^8.0.0",
|
|
"pg": "^8.11.3",
|
|
"react": "^18.2.0",
|
|
"react-aria": "^3.31.1",
|
|
"react-cookie": "^7.0.1",
|
|
"react-dom": "^18.2.0",
|
|
"react-stately": "^3.29.1",
|
|
"server-only": "^0.0.1",
|
|
"uuid": "^9.0.1",
|
|
"winston": "^3.11.0"
|
|
},
|
|
"devDependencies": {
|
|
"@faker-js/faker": "^8.3.1",
|
|
"@playwright/test": "^1.40.1",
|
|
"@storybook/addon-a11y": "^7.6.10",
|
|
"@storybook/addon-essentials": "^7.6.10",
|
|
"@storybook/addon-interactions": "^7.6.10",
|
|
"@storybook/addon-links": "^7.6.10",
|
|
"@storybook/blocks": "^7.0.18",
|
|
"@storybook/nextjs": "^7.6.10",
|
|
"@storybook/react": "^7.5.1",
|
|
"@storybook/testing-library": "^0.2.2",
|
|
"@testing-library/jest-dom": "^6.2.0",
|
|
"@testing-library/react": "^14.1.2",
|
|
"@testing-library/user-event": "^14.5.2",
|
|
"@types/adm-zip": "^0.5.5",
|
|
"@types/canvas-confetti": "^1.6.4",
|
|
"@types/jest-axe": "^3.5.9",
|
|
"@types/jsonwebtoken": "^9.0.5",
|
|
"@types/jwk-to-pem": "^2.0.3",
|
|
"@types/nodemailer": "^6.4.14",
|
|
"@types/uuid": "^9.0.7",
|
|
"@typescript-eslint/eslint-plugin": "^6.19.0",
|
|
"@typescript-eslint/parser": "^6.19.0",
|
|
"adm-zip": "^0.5.10",
|
|
"eslint": "^8.56.0",
|
|
"eslint-import-resolver-typescript": "^3.6.1",
|
|
"eslint-plugin-check-file": "^2.6.2",
|
|
"eslint-plugin-header": "^3.1.1",
|
|
"eslint-plugin-import": "^2.29.1",
|
|
"eslint-plugin-jest": "^27.6.3",
|
|
"eslint-plugin-jsdoc": "^48.0.2",
|
|
"eslint-plugin-storybook": "^0.6.15",
|
|
"husky": "^8.0.3",
|
|
"jest": "^29.7.0",
|
|
"jest-axe": "^8.0.0",
|
|
"jest-canvas-mock": "^2.5.2",
|
|
"jest-environment-jsdom": "^29.7.0",
|
|
"jest-fail-on-console": "^3.1.1",
|
|
"lint-staged": "^15.2.0",
|
|
"prettier": "3.2.2",
|
|
"react-intersection-observer": "^9.5.3",
|
|
"sass": "^1.70.0",
|
|
"storybook": "^7.6.10",
|
|
"stylelint": "^16.2.0",
|
|
"stylelint-config-recommended-scss": "^14.0.0",
|
|
"stylelint-scss": "^6.1.0",
|
|
"ts-jest": "^29.1.2",
|
|
"typescript": "^5.3.3"
|
|
}
|
|
}
|