{ "name": "firefox-send", "description": "File Sharing Experiment", "version": "3.0.21", "author": "Mozilla (https://mozilla.org)", "repository": "mozilla/send", "homepage": "https://github.com/mozilla/send/", "license": "MPL-2.0", "private": true, "scripts": { "clean": "rimraf dist", "build": "npm run clean && webpack", "lint": "npm-run-all lint:*", "lint:css": "stylelint app/*.css app/**/*.css", "lint:js": "eslint .", "lint-locales": "node scripts/lint-locales", "lint-locales:dev": "npm run lint-locales", "lint-locales:prod": "npm run lint-locales -- --production", "format": "prettier '**/*.js' 'assets/*.css' --single-quote --write", "get-prod-locales": "node scripts/get-prod-locales", "get-prod-locales:write": "npm run get-prod-locales -- --write", "contributors": "git shortlog -s | awk -F\\t '{print $2}' > CONTRIBUTORS", "release": "npm-run-all contributors changelog", "test": "npm-run-all test:*", "test:backend": "nyc --reporter=lcovonly mocha --reporter=min test/backend", "test:frontend": "cross-env NODE_ENV=development node test/frontend/runner.js", "test:report": "nyc report --reporter=html", "test-integration": "cross-env NODE_ENV=development wdio test/wdio.docker.conf.js", "circleci-test-integration": "cross-env NODE_ENV=development wdio test/wdio.circleci.conf.js", "start": "npm run clean && cross-env NODE_ENV=development L10N_DEV=true FXA_CLIENT_ID=fced6b5e3f4c66b9 BASE_URL=http://localhost:8080 webpack-dev-server --mode=development", "android": "cross-env ANDROID=1 npm start", "prod": "node server/bin/prod.js" }, "husky": { "hooks": { "pre-commit": "lint-staged", "pre-push": "npm test", "post-merge": "npm install", "post-checkout": "scripts/sync-npm-dependencies.sh" } }, "lint-staged": { "*.js": [ "prettier --single-quote --write", "eslint", "git add" ], "*.css": [ "prettier --single-quote --write", "stylelint", "git add" ] }, "nyc": { "reporter": [ "text" ], "cache": true }, "engines": { "node": ">=10.0.0 <11.0.0" }, "devDependencies": { "@babel/core": "^7.7.2", "@babel/plugin-proposal-class-properties": "^7.7.0", "@babel/plugin-syntax-dynamic-import": "^7.2.0", "@babel/preset-env": "^7.7.1", "@dannycoates/webcrypto-liner": "^0.1.37", "@fullhuman/postcss-purgecss": "^1.3.0", "@mattiasbuelens/web-streams-polyfill": "0.2.1", "@sentry/browser": "^5.8.0", "asmcrypto.js": "^0.22.0", "babel-loader": "^8.0.6", "babel-plugin-istanbul": "^5.2.0", "base64-js": "^1.3.1", "content-disposition": "^0.5.3", "copy-webpack-plugin": "^5.0.5", "core-js": "^3.4.0", "crc": "^3.8.0", "cross-env": "^6.0.3", "css-loader": "^3.2.0", "css-mqpacker": "^7.0.0", "cssnano": "^4.1.10", "eslint": "^6.6.0", "eslint-config-prettier": "^6.5.0", "eslint-plugin-mocha": "^6.2.1", "eslint-plugin-node": "^10.0.0", "eslint-plugin-security": "^1.4.0", "expose-loader": "^0.7.5", "extract-loader": "^3.1.0", "extract-text-webpack-plugin": "^4.0.0-beta.0", "fast-text-encoding": "^1.0.0", "file-loader": "^4.2.0", "git-rev-sync": "^1.12.0", "html-loader": "^0.5.5", "http_ece": "^1.1.0", "husky": "^3.0.9", "intl-pluralrules": "^1.1.1", "lint-staged": "^9.4.2", "mocha": "^6.2.2", "morgan": "^1.9.1", "nanobus": "^4.4.0", "nanohtml": "^1.9.0", "nanotiming": "^7.3.1", "npm-run-all": "^4.1.5", "nyc": "^14.1.1", "postcss-loader": "^3.0.0", "postcss-preset-env": "^6.7.0", "prettier": "^1.19.1", "proxyquire": "^2.1.3", "puppeteer": "^2.0.0", "raw-loader": "^3.1.0", "redis-mock": "^0.47.0", "rimraf": "^3.0.0", "script-loader": "^0.7.2", "sinon": "^7.5.0", "string-hash": "^1.1.3", "stylelint": "^11.1.1", "stylelint-config-standard": "^19.0.0", "stylelint-no-unsupported-browser-features": "^3.0.2", "svgo": "^1.3.2", "svgo-loader": "^2.2.1", "tailwindcss": "^1.1.3", "val-loader": "^1.1.1", "wdio-docker-service": "^1.4.2", "wdio-dot-reporter": "0.0.10", "wdio-firefox-profile-service": "^0.1.3", "wdio-mocha-framework": "^0.6.3", "wdio-sauce-service": "^0.4.14", "wdio-selenium-standalone-service": "0.0.12", "wdio-spec-reporter": "^0.1.5", "webdriverio": "^4.14.4", "webpack": "4.38.0", "webpack-cli": "^3.3.10", "webpack-dev-middleware": "^3.7.2", "webpack-dev-server": "^3.9.0", "webpack-manifest-plugin": "^2.2.0", "webpack-unassert-loader": "^1.2.0" }, "dependencies": { "@dannycoates/express-ws": "^5.0.3", "@fluent/bundle": "^0.13.0", "@fluent/langneg": "^0.3.0", "@google-cloud/storage": "^4.1.1", "@sentry/node": "^5.8.0", "aws-sdk": "^2.568.0", "body-parser": "^1.19.0", "choo": "^7.0.0", "cldr-core": "^35.1.0", "configstore": "github:dannycoates/configstore#master", "convict": "^5.2.0", "express": "^4.17.1", "fxa-geodb": "^1.0.4", "helmet": "^3.21.2", "mkdirp": "^0.5.1", "mozlog": "^2.2.0", "node-fetch": "^2.6.0", "redis": "^2.8.0", "selenium-standalone": "^6.15.6", "ua-parser-js": "^0.7.20" }, "availableLanguages": [ "en-US", "ar", "ast", "be", "bn", "br", "ca", "cak", "cs", "cy", "da", "de", "dsb", "el", "en-CA", "en-GB", "es-AR", "es-CL", "es-ES", "es-MX", "et", "eu", "fi", "fr", "fy-NL", "he", "hr", "hsb", "hu", "ia", "id", "it", "ja", "ka", "kab", "ko", "lt", "meh", "ml", "nb-NO", "nl", "nn-NO", "oc", "pa-IN", "pl", "ppl", "pt-BR", "pt-PT", "quc", "ro", "ru", "sk", "sl", "sq", "sr", "su", "sv-SE", "te", "th", "tr", "uk", "vi", "zgh", "zh-CN", "zh-TW" ] }