{ "name": "blurts-server", "description": "Firefox Monitor Server", "version": "1.0.0", "bugs": { "url": "https://github.com/mozilla/blurts-server/issues" }, "dependencies": { "@fluent/bundle": "^0.17.1", "@fluent/langneg": "^0.6.2", "@maxmind/geoip2-node": "^3.1.0", "@sentry/node": "7.12.0", "body-parser": "1.19.0", "client-oauth2": "4.3.3", "connect-redis": "6.1.3", "cookie-parser": "^1.4.6", "csurf": "1.11.0", "dotenv": "16.0.2", "esbuild": "^0.14.39", "express": "4.17.1", "express-bearer-token": "2.4.0", "express-handlebars": "6.0.6", "express-session": "1.17.1", "fluent": "0.13.0", "fluent-langneg": "0.2.0", "git-rev-sync": "^3.0.2", "got": "11.8.5", "helmet": "4.2.0", "intl-pluralrules": "1.2.1", "isemail": "3.2.0", "knex": "^2.2.0", "mozlog": "3.0.2", "nodemailer": "^6.7.8", "nodemailer-express-handlebars": "5.0.0", "pg": "^8.7.1", "redis": "3.1.1", "sns-validator": "0.3.5", "uuid": "3.4.0" }, "devDependencies": { "coveralls": "3.1.1", "eslint": "^8.15.0", "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-n": "^15.2.1", "eslint-plugin-promise": "^6.0.1", "jest": "^27.2.5", "node-mocks-http": "1.11.0", "nodemon": "2.0.20", "redis-mock": "^0.56.3", "stylelint": "^14.9.1", "stylelint-config-standard": "^26.0.0" }, "engines": { "node": "16.17.x", "npm": "8.x" }, "homepage": "https://github.com/mozilla/blurts-server", "license": "MPL-2.0", "jest": { "collectCoverageFrom": [ "**/*.js", "!coverage/**/**.js", "!db/seeds/**.js", "!db/migrations/**.js", "!public/**/**.js", "!scripts/*.js", "!loadtests/**/**.js", "!.eslintrc.js" ], "setupFilesAfterEnv": [ "./tests/jest.setup.js" ] }, "private": true, "repository": { "type": "git", "url": "git+https://github.com/mozilla/blurts-server.git" }, "scripts": { "start": "source .env && if [[ $MONITOR_V2 == 'true' ]]; then npm start --workspace=src; else npm run build & node server.js; fi;", "dev": "source .env && if [[ $MONITOR_V2 == 'true' ]]; then npm run dev --workspace=src; else nodemon server.js; fi;", "build": "node esbuild.js", "db:migrate": "knex migrate:latest --knexfile db/knexfile.js", "docker:build": "docker build -t blurts-server .", "docker:run": "docker run -p 6060:6060 blurts-server", "lint": "npm run lint:css && npm run lint:js", "lint:js": "eslint .", "lint:css": "stylelint public/css/", "fix": "npm run fix:css && npm run fix:js", "fix:js": "eslint . --fix", "fix:css": "stylelint public/css/ --fix", "test:db:migrate": "NODE_ENV=tests knex migrate:latest --knexfile db/knexfile.js --env tests", "test:tests": "NODE_ENV=tests HIBP_THROTTLE_DELAY=1000 HIBP_THROTTLE_MAX_TRIES=3 jest --runInBand --coverage tests/", "test:coveralls": "cat ./coverage/lcov.info | coveralls", "test:integration": "wdio tests/integration/wdio.conf.js", "test:integration-headless": "MOZ_HEADLESS=1 wdio tests/integration/wdio.conf.js", "test:integration-headless-ci": "MOZ_HEADLESS=1 ERROR_SHOTS=1 wdio tests/integration/wdio.conf.js", "test:integration-docker": "MOZ_HEADLESS=1 wdio tests/integration/wdio.docker.js", "test": "npm run test:db:migrate && npm run test:tests && npm run test:coveralls" }, "workspaces": [ "src" ], "nodemonConfig": { "events": { "restart": "npm run build" }, "watch": [ "./*", ".env", ".env-dist" ], "ignore": [ "public/dist/*", "tests/*" ], "ext": "js,css,hbs,json,ftl" }, "supportedLocales": "cak,cs,cy,da,de,el,en,en-CA,en-GB,es-AR,es-CL,es-ES,es-MX,fi,fr,fy-NL,gn,hu,kab,ia,id,it,ja,nb-NO,nl,nn-NO,pt-BR,pt-PT,ro,ru,sk,sl,sq,sv-SE,tr,uk,vi,zh-CN,zh-TW" }