{ "name": "mozilla-addons-frontend", "version": "0.0.1", "description": "Universal front-end projects to complement addons-server.", "main": "index.js", "private": true, "engines": { "node": ">=8.10" }, "scripts": { "build": "npm run clean && better-npm-run build", "build-all": "npm run clean && NODE_APP_INSTANCE=amo better-npm-run build && NODE_APP_INSTANCE=disco better-npm-run build", "build-check": "bin/build-checks.js", "build-ci": "npm run build-all && npm run bundlesize", "build-locales": "bin/build-locales", "bundlesize": "bundlesize", "extract-locales": "better-npm-run extract-locales", "clean": "rimraf './dist/*!(.gitkeep)' './webpack-assets.json' './src/locale/**(!.gitkeep)'", "amo": "better-npm-run amo", "amo:dev": "better-npm-run amo:dev", "amo:dev-https": "better-npm-run amo:dev-https", "amo:ui-tests": "better-npm-run amo:ui-tests", "amo:no-proxy": "better-npm-run amo:no-proxy", "amo:stage": "better-npm-run amo:stage", "disco": "better-npm-run disco", "eslint": "eslint .", "flow": "flow", "flow:check": "flow check", "flow:dev": "flow stop; flow start; chokidar .flowconfig flow/ stories/ src/ tests/ -i flow/logs/flow.log -c 'flow status' --initial", "stylelint": "stylelint --syntax scss **/*.scss", "lint": "npm run eslint && npm run stylelint", "prettier": "prettier --write '**'", "prettier-ci": "npm run prettier -- --list-different || (echo '\n\nThis failure means you did not run `yarn prettier-dev` before committing\n\n' && exit 1)", "prettier-dev": "pretty-quick --branch master", "snyk": "snyk --org=add-ons-team", "snyk-ci": "npm run snyk test --severity-threshold=medium --file=package.json && npm run snyk monitor", "snyk-wizard": "npm run snyk wizard", "start": "npm run version-check && better-npm-run --silent node bin/server.js | pino-mozlog", "start-func-test-server": "better-npm-run node bin/start-func-test-server.js", "storybook": "better-npm-run storybook-build", "test-ci": "bin/config-check.js && better-npm-run test-ci && codecov", "test": "bin/config-check.js && better-npm-run jest --watch", "test-coverage": "bin/config-check.js && better-npm-run jest --coverage --watch", "test-coverage-once": "bin/config-check.js && better-npm-run jest --coverage", "test-once": "bin/config-check.js && better-npm-run jest && npm run lint", "version-check": "bin/version-check.js", "webpack-dev-server": "npm run build-locales && better-npm-run webpack-dev-server" }, "betterScripts": { "build": { "command": "npm run build-check && npm run version-check && npm run build-locales && webpack --bail --verbose --display-error-details --progress --colors --config webpack.prod.config.babel.js", "env": { "NODE_ICU_DATA": "./node_modules/full-icu", "NODE_PATH": "./:./src" } }, "amo": { "command": "better-npm-run start-dev-proxy", "env": { "NODE_APP_INSTANCE": "amo" } }, "amo:dev": { "command": "better-npm-run start-dev-proxy", "env": { "AMO_CDN": "https://addons-dev-cdn.allizom.org", "PROXY_API_HOST": "https://addons-dev.allizom.org", "NODE_APP_INSTANCE": "amo" } }, "amo:dev-https": { "command": "better-npm-run amo:dev", "env": { "API_HOST": "https://example.com:3000", "SERVER_HOST": "example.com", "USE_HTTPS_FOR_DEV": "true", "WEBPACK_SERVER_HOST": "example.com" } }, "amo:ui-tests": { "command": "better-npm-run start-dev-proxy", "env": { "NODE_APP_INSTANCE": "amo", "NODE_ENV": "production" } }, "amo:no-proxy": { "command": "better-npm-run start-dev", "env": { "NODE_APP_INSTANCE": "amo", "PROXY_ENABLED": "false" } }, "amo:stage": { "command": "better-npm-run start-dev-proxy", "env": { "AMO_CDN": "https://addons-stage-cdn.allizom.org", "PROXY_API_HOST": "https://addons.allizom.org", "FXA_CONFIG": "local", "CSP": false, "NODE_APP_INSTANCE": "amo" } }, "disco": { "command": "better-npm-run start-dev", "env": { "NODE_APP_INSTANCE": "disco" } }, "extract-locales": { "command": "webpack --verbose --bail --display-error-details --progress --colors --config webpack.l10n.config.babel.js", "env": { "NODE_ENV": "production", "NODE_ICU_DATA": "./node_modules/full-icu", "NODE_PATH": "./:./src" } }, "start-dev": { "command": "npm run clean && concurrently 'npm run webpack-dev-server' 'node bin/server.js | pino-devtools --mode buffer'", "env": { "ENABLE_PIPING": "true", "NODE_ENV": "development", "NODE_ICU_DATA": "./node_modules/full-icu", "NODE_PATH": "./:./src" } }, "start-dev-proxy": { "command": "npm run clean && concurrently 'npm run webpack-dev-server' 'node bin/server.js | pino-devtools --mode buffer' 'node bin/proxy.js | pino-pretty'", "env": { "ENABLE_PIPING": "true", "NODE_ENV": "development", "NODE_ICU_DATA": "./node_modules/full-icu", "NODE_PATH": "./:./src", "SERVER_PORT": "3333" } }, "node": { "command": "node", "env": { "NODE_ICU_DATA": "./node_modules/full-icu", "NODE_PATH": "./:./src" } }, "jest": { "command": "jest", "env": { "NODE_ICU_DATA": "./node_modules/full-icu" } }, "storybook-build": { "command": "start-storybook -p 9001 -c stories/setup", "env": { "NODE_PATH": "./:./src" } }, "test-ci": { "command": "npm run version-check && npm run flow:check && bin/config-check.js && better-npm-run jest --color=false --coverage", "env": { "NODE_ICU_DATA": "./node_modules/full-icu", "NODE_PATH": "./:./src", "NODE_ENV": "test" } }, "webpack-dev-server": { "command": "node bin/webpack-dev-server.js", "env": { "NODE_ENV": "development", "NODE_ICU_DATA": "./node_modules/full-icu", "NODE_PATH": "./:./src" } } }, "repository": { "type": "git", "url": "git+https://github.com/mozillla/addons-frontend.git" }, "author": "Mozilla Add-ons Team", "license": "MPL-2.0", "bugs": { "url": "https://github.com/mozillla/addons-frontend/issues" }, "homepage": "https://github.com/mozillla/addons-frontend#readme", "dependencies": { "babel-polyfill": "6.26.0", "base62": "1.2.8", "base64url": "3.0.0", "better-npm-run": "0.1.1", "chokidar": "2.0.4", "classnames": "2.2.6", "common-tags": "1.8.0", "config": "2.0.1", "connected-react-router": "4.4.1", "deep-eql": "3.0.1", "deepcopy": "0.6.3", "dompurify": "1.0.2", "es6-error": "4.1.0", "express": "4.16.2", "extract-text-webpack-plugin": "3.0.2", "fastclick": "1.0.6", "full-icu": "1.2.1", "helmet": "3.13.0", "history": "4.7.2", "hot-shots": "5.9.0", "html-entities": "1.2.1", "invariant": "2.2.4", "isomorphic-fetch": "2.2.1", "jed": "1.1.1", "join-url": "2.0.0", "jsdom": "12.0.0", "knuth-shuffle": "1.0.8", "localforage": "1.7.2", "lodash.debounce": "4.0.8", "moment": "2.22.2", "mozilla-version-comparator": "1.0.2", "normalize.css": "8.0.0", "normalizr": "3.2.2", "pino": "5.5.0", "pino-mozlog": "1.1.0", "prop-types": "15.6.2", "qhistory": "1.0.2", "qs": "6.5.2", "raf": "3.4.0", "raven": "2.6.4", "raven-js": "3.27.0", "rc-tooltip": "3.7.2", "react": "16.5.0", "react-autosuggest": "9.4.1", "react-cookie": "1.0.5", "react-dom": "16.5.0", "react-helmet": "5.2.0", "react-keydown": "1.9.7", "react-nested-status": "0.2.1", "react-onclickoutside": "6.7.1", "react-photoswipe": "1.3.0", "react-redux": "5.0.7", "react-router": "4.3.1", "react-router-dom": "4.3.1", "react-super-responsive-table": "4.3.2", "react-textarea-autosize": "7.0.4", "react-transition-group": "2.4.0", "redux": "3.7.2", "redux-logger": "3.0.6", "redux-saga": "0.16.0", "response-time": "2.3.2", "serialize-javascript": "1.5.0", "touch": "3.1.0", "ua-parser-js": "0.7.18", "url": "0.11.0", "url-loader": "1.0.1", "utf8": "3.0.0", "webpack-isomorphic-tools": "3.0.6" }, "devDependencies": { "@storybook/addon-options": "^3.4.10", "@storybook/addons": "^3.4.10", "@storybook/react": "^3.4.10", "autoprefixer": "^9.0.0", "babel-core": "^6.24.1", "babel-eslint": "^9.0.0", "babel-gettext-extractor": "git+https://github.com/muffinresearch/babel-gettext-extractor.git#0d39d3882bc846e7dcb6c9ff6463896c96920ce6", "babel-jest": "^23.0.0", "babel-loader": "^7.0.0", "babel-plugin-transform-class-properties": "^6.24.1", "babel-plugin-transform-decorators-legacy": "^1.3.4", "babel-plugin-transform-flow-strip-types": "^6.22.0", "babel-plugin-transform-object-rest-spread": "^6.20.2", "babel-preset-es2015": "^6.24.1", "babel-preset-react": "^6.24.1", "babel-preset-stage-2": "^6.24.1", "babel-register": "^6.24.1", "babel-runtime": "^6.26.0", "bundle-loader": "^0.5.5", "bundlesize": "^0.17.0", "chalk": "^2.0.1", "cheerio": "^1.0.0-rc.2", "chokidar-cli": "^1.2.0", "circular-dependency-plugin": "^4.2.1", "codecov": "^3.0.0", "concurrently": "^4.0.1", "content-security-policy-parser": "^0.1.0", "cookie": "^0.3.1", "css-loader": "^0.28.3", "enzyme": "^3.6.0", "enzyme-adapter-react-16": "^1.5.0", "eslint": "^5.3.0", "eslint-config-amo": "^1.8.3", "eslint-plugin-amo": "^1.7.0", "eslint-plugin-promise": "^4.0.0", "file-loader": "^1.1.11", "flow-bin": "^0.80.0", "glob": "^7.1.1", "http-proxy": "^1.16.2", "intl": "^1.2.5", "intl-locales-supported": "^1.0.0", "jest": "^23.1.0", "jest-enzyme": "^6.0.0", "jest-watch-typeahead": "^0.2.0", "json-loader": "^0.5.4", "mock-express-request": "^0.2.0", "mock-express-response": "^0.2.0", "node-sass": "^4.5.2", "object.values": "^1.0.4", "photon-colors": "^3.0.1", "pino-devtools": "^2.0.0", "pino-pretty": "^2.0.1", "piping": "^1.0.0-rc.4", "po2json": "^0.4.5", "postcss-loader": "^3.0.0", "potools": "^0.3.0", "prettier": "1.14.2", "pretty-quick": "1.6.0", "react-hot-loader": "^4.3.3", "react-test-renderer": "^16.5.0", "redux-saga-tester": "^1.0.372", "require-uncached": "^1.0.3", "rimraf": "^2.6.1", "sass-loader": "^7.0.1", "semver": "^5.3.0", "shelljs": "^0.8.0", "sinon": "^6.0.0", "snyk": "^1.69.7", "style-loader": "^0.23.0", "stylelint": "^9.1.1", "stylelint-config-standard": "^18.2.0", "stylelint-config-suitcss": "^14.0.0", "supertest": "^3.0.0", "svg-url-loader": "^2.0.2", "tmp": "^0.0.33", "tosource": "^1.0.0", "uglifyjs-webpack-plugin": "^1.2.7", "webpack": "^3.12.0", "webpack-dev-middleware": "^2.0.6", "webpack-hot-middleware": "^2.18.0", "webpack-subresource-integrity": "^1.0.0-rc.1" }, "bundlesize": [ { "path": "./dist/@(amo|disco)-!(i18n-)*.js", "maxSize": "410 kB" }, { "path": "./dist/@(amo|disco)-i18n-*.js", "maxSize": "25 kB" } ], "snyk": true }