{ "name": "monitor", "version": "1.0.0", "description": "Firefox Monitor", "engines": { "node": "18.12.x", "npm": "8.x" }, "type": "module", "scripts": { "dev": "next dev --port=6060", "build": "next build", "start": "next start", "lint": "stylelint '**/*.scss' && prettier --check './src' && next lint", "test": "NODE_OPTIONS=--loader=testdouble c8 ava", "e2e": "playwright test src/e2e/", "functions": "nodemon --exec 'functions-framework --target=app --signature-type=http --source=src/cloud-functions'", "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", "postinstall": "patch-package", "storybook": "storybook dev -p 6006", "build-storybook": "storybook build" }, "nodemonConfig": { "watch": [ "src/cloud-functions/**/*", ".env" ], "env": { "LIVE_RELOAD": true }, "ext": "js,css,json,ftl,env" }, "ava": { "files": [ "!src/e2e/" ] }, "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": "18.12.1", "npm": "8.19.3" }, "dependencies": { "@fluent/bundle": "^0.17.1", "@fluent/langneg": "^0.6.2", "@fluent/react": "^0.15.0", "@sentry/nextjs": "^7.53.1", "@sentry/node": "^7.40.0", "@sentry/tracing": "^7.38.0", "@types/jsdom": "^21.1.1", "@types/node": "^20.1.1", "@types/react": "^18.2.6", "@types/react-dom": "^18.2.4", "client-oauth2": "^4.3.3", "csrf-csrf": "^2.2.2", "dotenv": "^16.0.3", "eslint-config-next": "^13.4.1", "helmet": "^6.0.0", "jsdom": "^22.0.0", "jsonwebtoken": "^9.0.0", "jwk-to-pem": "^2.0.5", "knex": "^2.4.2", "mozlog": "^3.0.2", "next": "^13.4.1", "next-auth": "^4.22.1", "nodemailer": "^6.9.1", "patch-package": "^7.0.0", "pg": "^8.9.0", "react": "^18.2.0", "react-dom": "^18.2.0", "uuid": "^9.0.0" }, "devDependencies": { "@google-cloud/functions-framework": "^3.2.0", "@playwright/test": "^1.32.3", "@storybook/addon-a11y": "^7.0.21", "@storybook/addon-essentials": "^7.0.18", "@storybook/addon-interactions": "^7.0.18", "@storybook/addon-links": "^7.0.18", "@storybook/blocks": "^7.0.18", "@storybook/nextjs": "^7.0.18", "@storybook/react": "^7.0.18", "@storybook/testing-library": "^0.0.14-next.2", "@types/jsonwebtoken": "^9.0.2", "@types/jwk-to-pem": "^2.0.1", "@types/nodemailer": "^6.4.8", "@types/uuid": "^9.0.1", "@typescript-eslint/eslint-plugin": "^5.59.1", "@typescript-eslint/parser": "^5.59.1", "ava": "^5.1.0", "c8": "^7.12.0", "eslint": "^8.40.0", "eslint-plugin-check-file": "^2.2.0", "eslint-plugin-header": "^3.1.1", "eslint-plugin-jsdoc": "^40.0.0", "eslint-plugin-storybook": "^0.6.12", "husky": "^8.0.3", "lint-staged": "^13.2.2", "node-mocks-http": "^1.12.1", "nodemon": "^2.0.20", "prettier": "2.8.8", "sass": "^1.62.1", "storybook": "^7.0.18", "stylelint": "^15.6.0", "stylelint-config-recommended-scss": "^11.0.0", "stylelint-scss": "^5.0.0", "testdouble": "^3.16.8", "typescript": "^5.0.4" } }