addons-frontend/package.json

352 строки
12 KiB
JSON

{
"name": "mozilla-addons-frontend",
"version": "0.35.0",
"description": "Universal front-end projects to complement addons-server.",
"main": "index.js",
"private": true,
"engines": {
"node": ">=18.18"
},
"scripts": {
"build": "npm run clean && better-npm-run build",
"build:blog-utils": "npm run clean && bin/create-package-json-for-blog-utils && bin/create-readme-for-blog-utils && better-npm-run build:blog-utils",
"build:blog-utils-dev": "NODE_ENV=development concurrently 'npm run build:blog-utils -- --watch' 'bin/serve-blog-utils'",
"build:blog-utils-prod": "NODE_ENV=production npm run build:blog-utils",
"build-check": "bin/build-checks.js",
"build-ci": "node --version && npm run build && npm run bundlewatch",
"build-locales": "bin/build-locales",
"bundlewatch": "bundlewatch",
"extract-locales": "better-npm-run extract-locales",
"clean": "rimraf -g './dist/*!(.gitkeep)' './webpack-assets.json' './src/locale/**(!.gitkeep)'",
"amo:dev": "better-npm-run amo:dev",
"amo:dev-https": "better-npm-run amo:dev-https",
"amo:olympia": "better-npm-run amo:olympia",
"amo:stage": "better-npm-run amo:stage",
"amo:ui-tests": "npm run amo:olympia",
"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 **/*.scss",
"lint": "npm run eslint && npm run stylelint",
"prettier": "prettier --write '**'",
"prettier-ci": "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",
"start": "npm run version-check && better-npm-run --silent node bin/server.js | node bin/pino-mozlog.js",
"start-func-test-server": "better-npm-run node bin/start-func-test-server.js",
"test-ci": "bin/config-check.js && npm run build-locales && better-npm-run test-ci",
"test-ci-next": "bin/config-check.js && npm run build-locales && better-npm-run test-ci-next",
"test": "bin/config-check.js && better-npm-run jest --watch",
"test-debug": "bin/config-check.js && better-npm-run jest-debug --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",
"check-fonts": "./bin/regenerate_font.js src/fonts/woff2/Inter-roman.var.woff2 && ./bin/regenerate_font.js src/fonts/woff2/Inter-roman-subset-en_de_fr_ru_es_pt_pl_it.var.woff2 && git diff --quiet HEAD src/fonts/ || (echo '\n\n Did you manually alter font files that should be generated automatically ? See docs/fonts.md for details. This check found the following differences:\n\n' && git --no-pager diff src/fonts && exit 1)"
},
"betterScripts": {
"build": {
"command": "npm run build-check && npm run version-check && npm run build-locales && webpack --progress --color --config webpack.prod.config.babel.js",
"env": {
"NODE_ICU_DATA": "./node_modules/full-icu",
"NODE_PATH": "./:./src"
}
},
"build:blog-utils": {
"command": "webpack --config webpack.blog-utils.config.babel.js",
"env": {
"NODE_ICU_DATA": "./node_modules/full-icu",
"NODE_PATH": "./:./src",
"NODE_CONFIG_ENV": "prod"
}
},
"amo:olympia": {
"command": "better-npm-run start-dev-proxy",
"env": {
"NODE_APP_INSTANCE": "local",
"WEBPACK_SERVER_HOST": "olympia.test"
}
},
"amo:dev": {
"command": "better-npm-run start-dev-proxy",
"env": {
"PROXY_API_HOST": "https://addons-dev.allizom.org"
}
},
"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:stage": {
"command": "better-npm-run start-dev-proxy",
"env": {
"PROXY_API_HOST": "https://addons.allizom.org",
"FXA_CONFIG": "local",
"CSP": false
}
},
"extract-locales": {
"command": "zx ./bin/extract-locales",
"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' 'nodemon bin/server.js | pino-devtools --mode buffer --tee | pino-pretty'",
"env": {
"NODE_ENV": "development",
"NODE_ICU_DATA": "./node_modules/full-icu",
"NODE_PATH": "./:./src"
}
},
"start-dev-proxy": {
"command": "npm run clean && concurrently -c 'dim' 'npm run webpack-dev-server' 'nodemon bin/server.js | pino-devtools --mode buffer --tee | pino-pretty' 'node bin/proxy.js | pino-pretty'",
"env": {
"NODE_ENV": "development",
"NODE_ICU_DATA": "./node_modules/full-icu",
"NODE_PATH": "./:./src"
}
},
"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"
}
},
"jest-debug": {
"command": "jest",
"env": {
"NODE_ICU_DATA": "./node_modules/full-icu",
"TEST_DEBUG": "FULL"
}
},
"test-ci": {
"command": "npm run version-check && npm run flow:check && bin/config-check.js && better-npm-run jest --color=false --coverage --maxWorkers=2 --workerIdleMemoryLimit=1G",
"env": {
"NODE_ICU_DATA": "./node_modules/full-icu",
"NODE_PATH": "./:./src",
"NODE_ENV": "test",
"NO_FLOW": "1",
"NO_ESLINT": "1"
}
},
"test-ci-next": {
"command": "npm run version-check && npm run flow:check && bin/config-check.js && better-npm-run jest --color=false --coverage --maxWorkers=2 --workerIdleMemoryLimit=1G",
"env": {
"NODE_ICU_DATA": "./node_modules/full-icu",
"NODE_PATH": "./:./src",
"NODE_ENV": "test",
"NO_FLOW": "1",
"NO_ESLINT": "1"
}
},
"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/mozilla/addons-frontend.git"
},
"author": "Mozilla Add-ons Team",
"license": "MPL-2.0",
"bugs": {
"url": "https://github.com/mozilla/addons-frontend/issues"
},
"homepage": "https://github.com/mozilla/addons-frontend#readme",
"dependencies": {
"@mozilla-protocol/tokens": "5.0.5",
"@reduxjs/toolkit": "1.9.7",
"@willdurand/isomorphic-formdata": "2.2.0",
"addons-moz-compare": "1.3.0",
"base62": "2.0.2",
"better-npm-run": "0.1.1",
"chokidar": "4.0.1",
"classnames": "2.5.1",
"common-tags": "1.8.2",
"compression": "1.7.5",
"config": "3.3.12",
"core-js": "3.39.0",
"deep-eql": "4.1.3",
"deepcopy": "2.1.0",
"dompurify": "3.2.2",
"express": "4.21.2",
"express-http-context": "1.2.4",
"filesize": "10.1.6",
"focus-visible": "5.2.1",
"fs-extra": "11.2.0",
"full-icu": "1.5.0",
"helmet": "7.1.0",
"history": "4.10.1",
"hot-shots": "10.2.1",
"invariant": "2.2.4",
"isomorphic-fetch": "3.0.0",
"jed": "1.1.1",
"join-url": "2.0.0",
"jsdom": "25.0.1",
"localforage": "1.10.0",
"lodash.debounce": "4.0.8",
"minimist": "1.2.8",
"moment": "2.30.1",
"nano-time": "1.0.0",
"normalize.css": "8.0.1",
"photon-colors": "3.3.2",
"photoswipe": "4.1.3",
"pino": "8.19.0",
"pino-syslog": "3.1.0",
"prop-types": "15.8.1",
"pump": "3.0.2",
"qhistory": "1.1.0",
"qs": "6.13.1",
"rc-tooltip": "5.2.2",
"react": "18.3.1",
"react-autosuggest": "10.1.0",
"react-cookie": "4.1.1",
"react-dom": "18.3.1",
"react-helmet": "6.1.0",
"react-keydown": "1.9.12",
"react-nested-status": "0.2.1",
"react-onclickoutside": "6.13.1",
"react-photoswipe-gallery": "1.3.10",
"react-redux": "8.1.3",
"react-router": "5.3.4",
"react-router-dom": "5.3.4",
"react-super-responsive-table": "5.2.3",
"react-textarea-autosize": "8.5.5",
"react-transition-group": "4.4.5",
"readable-stream": "4.5.2",
"redux": "4.2.1",
"redux-first-history": "5.2.0",
"redux-logger": "3.0.6",
"redux-saga": "1.3.0",
"response-time": "2.3.3",
"schema-utils": "4.2.0",
"serialize-javascript": "6.0.2",
"split2": "4.2.0",
"touch": "3.1.1",
"ua-parser-js": "1.0.38",
"universal-base64url": "1.1.0",
"universal-cookie-express": "4.0.3",
"url": "0.11.4",
"uuid": "11.0.3",
"web-vitals": "3.5.2",
"webpack-isomorphic-tools": "4.0.0"
},
"devDependencies": {
"@babel/cli": "^7.26.4",
"@babel/core": "^7.26.0",
"@babel/eslint-parser": "^7.25.9",
"@babel/preset-env": "^7.26.0",
"@babel/preset-flow": "^7.25.9",
"@babel/preset-react": "^7.26.3",
"@babel/register": "^7.25.9",
"@emotion/core": "^11.0.0",
"@testing-library/jest-dom": "^6.6.3",
"@testing-library/react": "^14.2.2",
"@testing-library/user-event": "^14.5.2",
"autoprefixer": "^10.4.20",
"babel-gettext-extractor": "https://github.com/willdurand/babel-gettext-extractor#5.1.0",
"babel-loader": "^9.2.1",
"babel-plugin-dynamic-import-node": "^2.2.0",
"bundlewatch": "^0.4.0",
"chalk": "^4.0.0",
"characterset": "^2.0.0",
"cheerio": "^1.0.0-rc.2",
"chokidar-cli": "^3.0.0",
"circular-dependency-plugin": "^5.0.0",
"concurrently": "^9.1.0",
"content-security-policy-parser": "^0.4.0",
"cookie": "^0.7.2",
"css-loader": "^7.1.2",
"css-minimizer-webpack-plugin": "^7.0.0",
"eslint": "^8.57.0",
"eslint-config-amo": "^5.10.0",
"eslint-plugin-amo": "^1.26.0",
"eslint-plugin-promise": "^7.2.1",
"eslint-plugin-react": "^7.37.2",
"eslint-plugin-react-hooks": "^5.1.0",
"eslint-plugin-testing-library": "^7.1.1",
"file-loader": "^6.0.0",
"flow-bin": "^0.187.0",
"glob": "^10.4.2",
"html-webpack-plugin": "5.6.3",
"http-proxy": "^1.16.2",
"intl": "^1.2.5",
"intl-locales-supported": "^1.0.0",
"jest": "^29.7.0",
"jest-environment-jsdom": "^29.7.0",
"jest-extended": "^4.0.2",
"jest-json-schema": "^6.1.0",
"jest-watch-typeahead": "^2.2.2",
"mini-css-extract-plugin": "^2.9.2",
"mock-express-request": "^0.2.0",
"mock-express-response": "^0.3.0",
"node-fetch": "^3.3.2",
"node-sass": "^9.0.0",
"nodemon": "^3.1.7",
"pino-devtools": "^2.8.0",
"pino-pretty": "^11.2.1",
"po2json": "mikeedwards/po2json#51e2310485bbe35e9e57f2eee238185459ca0eab",
"postcss": "^8.4.49",
"postcss-loader": "^8.1.1",
"prettier": "2.8.8",
"pretty-quick": "3.3.1",
"react-hot-loader": "^4.13.1",
"redux-saga-tester": "^1.0.372",
"rimraf": "^5.0.7",
"sass-loader": "^16.0.4",
"semver": "^7.6.3",
"shelljs": "^0.8.0",
"sinon": "^15.1.0",
"style-loader": "^4.0.0",
"stylelint": "^15.10.3",
"stylelint-config-standard-scss": "^11.1.0",
"supertest": "^7.0.0",
"terser-webpack-plugin": "^5.3.10",
"tmp": "^0.2.3",
"tosource": "^1.0.0",
"url-loader": "^4.1.1",
"webpack": "^5.97.1",
"webpack-cli": "^4.0.0",
"webpack-dev-middleware": "^6.1.2",
"webpack-hot-middleware": "^2.26.1",
"webpack-subresource-integrity": "5.1.0",
"zx": "^8.2.4"
},
"bundlewatch": [
{
"path": "./dist/static/amo-!(i18n-)*.js",
"maxSize": "368 kB"
},
{
"path": "./dist/static/amo-i18n-*.js",
"maxSize": "31 kB"
},
{
"path": "./dist/static/amo-*.css",
"maxSize": "32 kB"
}
],
"packageManager": "yarn@1.22.19"
}