mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-10-22 19:26:13 +02:00
1c573ef852
The unit test npm script `test:unit:lax` is now more specific about which tests files to exclude. An `--ignore` CLI option is used to specify the files to ignore, rather than using the braces glob syntax to ignore them from the target glob itself. This makes the option easier to update going forward as we move more tests into the "strict" group, because the options are exactly the same between the two scripts. It also ensures we don't accidentally exclude other subdirectories that happen to also be named `permissions`. In trying to implement this, I stumbled at first because mocha expects the ignore pattern to be a relative path if the target is a relative path (i.e. they need to both start with `./` or neither). The script `test:unit:strict` has been updated to use a relative target pattern for consistency.
325 lines
13 KiB
JSON
325 lines
13 KiB
JSON
{
|
|
"name": "metamask-crx",
|
|
"version": "0.0.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"setup": "yarn install && yarn patch-package && yarn allow-scripts",
|
|
"setup-ci": "yarn install --frozen-lockfile --har && yarn patch-package && yarn allow-scripts",
|
|
"start": "node development/build/index.js dev",
|
|
"start:lavamoat": "yarn build dev",
|
|
"dist": "yarn build prod",
|
|
"build": "lavamoat development/build/index.js",
|
|
"start:test": "yarn build testDev",
|
|
"benchmark:chrome": "SELENIUM_BROWSER=chrome node test/e2e/benchmark.js",
|
|
"benchmark:firefox": "SELENIUM_BROWSER=firefox node test/e2e/benchmark.js",
|
|
"build:test": "yarn build test",
|
|
"build:test:metrics": "SEGMENT_HOST='http://localhost:9090' SEGMENT_WRITE_KEY='FAKE' SEGMENT_LEGACY_WRITE_KEY='FAKE' yarn build test",
|
|
"test": "yarn test:unit && yarn lint",
|
|
"dapp": "node development/static-server.js node_modules/@metamask/test-dapp/dist --port 8080",
|
|
"dapp-chain": "GANACHE_ARGS='-b 2' concurrently -k -n ganache,dapp -p '[{time}][{name}]' 'yarn ganache:start' 'sleep 5 && yarn dapp'",
|
|
"forwarder": "node ./development/static-server.js ./node_modules/@metamask/forwarder/dist/ --port 9010",
|
|
"dapp-forwarder": "concurrently -k -n forwarder,dapp -p '[{time}][{name}]' 'yarn forwarder' 'yarn dapp'",
|
|
"sendwithprivatedapp": "node development/static-server.js test/e2e/send-eth-with-private-key-test --port 8080",
|
|
"test:unit": "mocha --exit --require test/env.js --require test/setup.js --recursive './{ui,app,shared}/**/*.test.js'",
|
|
"test:unit:global": "mocha --exit --require test/env.js --require test/setup.js --recursive test/unit-global/*.test.js",
|
|
"test:unit:lax": "mocha --exit --require test/env.js --require test/setup.js --ignore './app/scripts/controllers/permissions/*.test.js' --recursive './{ui,app,shared}/**/*.test.js'",
|
|
"test:unit:strict": "mocha --exit --require test/env.js --require test/setup.js --recursive './app/scripts/controllers/permissions/*.test.js'",
|
|
"test:unit:path": "mocha --exit --require test/env.js --require test/setup.js --recursive",
|
|
"test:e2e:chrome": "SELENIUM_BROWSER=chrome test/e2e/run-all.sh",
|
|
"test:e2e:chrome:metrics": "SELENIUM_BROWSER=chrome mocha test/e2e/metrics.spec.js",
|
|
"test:e2e:firefox": "SELENIUM_BROWSER=firefox test/e2e/run-all.sh",
|
|
"test:e2e:firefox:metrics": "SELENIUM_BROWSER=firefox mocha test/e2e/metrics.spec.js",
|
|
"test:coverage": "nyc --silent --check-coverage yarn test:unit:strict && nyc --silent --no-clean yarn test:unit:lax && nyc report --reporter=text --reporter=html",
|
|
"test:coverage:strict": "nyc --check-coverage yarn test:unit:strict",
|
|
"test:coverage:path": "nyc --check-coverage yarn test:unit:path",
|
|
"ganache:start": "./development/run-ganache.sh",
|
|
"sentry:publish": "node ./development/sentry-publish.js",
|
|
"lint": "prettier --check ./**/*.json && eslint . --ext js && yarn lint:styles",
|
|
"lint:fix": "prettier --write ./**/*.json && eslint . --ext js --fix",
|
|
"lint:changed": "{ git ls-files --others --exclude-standard ; git diff-index --name-only --diff-filter=d HEAD ; } | grep --regexp='[.]js$' | tr '\\n' '\\0' | xargs -0 eslint",
|
|
"lint:changed:fix": "{ git ls-files --others --exclude-standard ; git diff-index --name-only --diff-filter=d HEAD ; } | grep --regexp='[.]js$' | tr '\\n' '\\0' | xargs -0 eslint --fix",
|
|
"lint:shellcheck": "./development/shellcheck.sh",
|
|
"lint:styles": "stylelint '*/**/*.scss'",
|
|
"lint:lockfile": "lockfile-lint --path yarn.lock --allowed-hosts npm yarn github.com codeload.github.com --empty-hostname false --allowed-schemes \"https:\" \"git+https:\"",
|
|
"validate-source-maps": "node ./development/sourcemap-validator.js",
|
|
"verify-locales": "node ./development/verify-locale-strings.js",
|
|
"verify-locales:fix": "node ./development/verify-locale-strings.js --fix",
|
|
"mozilla-lint": "addons-linter dist/firefox",
|
|
"watch": "mocha --watch --require test/env.js --require test/setup.js --reporter min --recursive \"test/unit/**/*.js\" \"ui/app/**/*.test.js\" \"shared/**/*.test.js\"",
|
|
"devtools:react": "react-devtools",
|
|
"devtools:redux": "remotedev --hostname=localhost --port=8000",
|
|
"start:dev": "concurrently -k -n build,react,redux yarn:start yarn:devtools:react yarn:devtools:redux",
|
|
"announce": "node development/announcer.js",
|
|
"storybook": "start-storybook -p 6006 -c .storybook --static-dir ./app ./storybook/images",
|
|
"storybook:build": "build-storybook -c .storybook -o storybook-build --static-dir ./app ./storybook/images",
|
|
"storybook:deploy": "storybook-to-ghpages --existing-output-dir storybook-build --remote storybook --branch master",
|
|
"update-changelog": "./development/auto-changelog.sh",
|
|
"generate:migration": "./development/generate-migration.sh",
|
|
"lavamoat:auto": "lavamoat ./development/build/index.js --writeAutoPolicy",
|
|
"lavamoat:debug": "lavamoat ./development/build/index.js --writeAutoPolicyDebug"
|
|
},
|
|
"resolutions": {
|
|
"**/configstore/dot-prop": "^5.1.1",
|
|
"**/ethers/elliptic": "^6.5.4",
|
|
"**/knex/minimist": "^1.2.5",
|
|
"**/optimist/minimist": "^1.2.5",
|
|
"**/socketcluster/minimist": "^1.2.5",
|
|
"**/redux/symbol-observable": "^2.0.3",
|
|
"**/redux-devtools-instrument/symbol-observable": "^2.0.3",
|
|
"**/rxjs/symbol-observable": "^2.0.3",
|
|
"3box/ipfs/ipld-zcash/zcash-bitcore-lib/lodash": "^4.17.19",
|
|
"3box/ipfs/ipld-zcash/zcash-bitcore-lib/elliptic": "^6.5.4",
|
|
"3box/**/libp2p-crypto/node-forge": "^0.10.0",
|
|
"3box/**/libp2p-keychain/node-forge": "^0.10.0",
|
|
"analytics-node/axios": "^0.21.1",
|
|
"pull-ws": "^3.3.2"
|
|
},
|
|
"dependencies": {
|
|
"3box": "^1.10.2",
|
|
"@babel/runtime": "^7.5.5",
|
|
"@download/blockies": "^1.0.3",
|
|
"@formatjs/intl-relativetimeformat": "^5.2.6",
|
|
"@fortawesome/fontawesome-free": "^5.13.0",
|
|
"@lavamoat/preinstall-always-fail": "^1.0.0",
|
|
"@material-ui/core": "^4.11.0",
|
|
"@metamask/contract-metadata": "^1.22.0",
|
|
"@metamask/controllers": "^5.1.0",
|
|
"@metamask/eth-ledger-bridge-keyring": "^0.3.0",
|
|
"@metamask/eth-token-tracker": "^3.0.1",
|
|
"@metamask/etherscan-link": "^1.5.0",
|
|
"@metamask/inpage-provider": "^8.0.4",
|
|
"@metamask/jazzicon": "^2.0.0",
|
|
"@metamask/logo": "^2.5.0",
|
|
"@metamask/obs-store": "^5.0.0",
|
|
"@popperjs/core": "^2.4.0",
|
|
"@reduxjs/toolkit": "^1.5.0",
|
|
"@sentry/browser": "^5.26.0",
|
|
"@sentry/integrations": "^5.26.0",
|
|
"@zxing/library": "^0.8.0",
|
|
"abortcontroller-polyfill": "^1.4.0",
|
|
"analytics-node": "^3.4.0-beta.3",
|
|
"await-semaphore": "^0.1.1",
|
|
"bignumber.js": "^4.1.0",
|
|
"bn.js": "^4.11.7",
|
|
"classnames": "^2.2.6",
|
|
"content-hash": "^2.5.2",
|
|
"copy-to-clipboard": "^3.0.8",
|
|
"currency-formatter": "^1.4.2",
|
|
"debounce-stream": "^2.0.0",
|
|
"deep-freeze-strict": "1.1.1",
|
|
"dnode": "^1.2.2",
|
|
"end-of-stream": "^1.4.4",
|
|
"eth-block-tracker": "^4.4.2",
|
|
"eth-ens-namehash": "^2.0.8",
|
|
"eth-json-rpc-filters": "^4.2.1",
|
|
"eth-json-rpc-infura": "^5.1.0",
|
|
"eth-json-rpc-middleware": "^6.0.0",
|
|
"eth-keyring-controller": "^6.1.0",
|
|
"eth-method-registry": "^2.0.0",
|
|
"eth-phishing-detect": "^1.1.14",
|
|
"eth-query": "^2.1.2",
|
|
"eth-rpc-errors": "^4.0.2",
|
|
"eth-sig-util": "^3.0.0",
|
|
"eth-trezor-keyring": "^0.6.0",
|
|
"ethereum-ens-network-map": "^1.0.2",
|
|
"ethereumjs-abi": "^0.6.4",
|
|
"ethereumjs-tx": "1.3.7",
|
|
"ethereumjs-util": "5.1.0",
|
|
"ethereumjs-wallet": "^0.6.4",
|
|
"ethers": "^5.0.8",
|
|
"ethjs": "^0.4.0",
|
|
"ethjs-contract": "^0.2.3",
|
|
"ethjs-ens": "^2.0.0",
|
|
"ethjs-query": "^0.3.4",
|
|
"extension-port-stream": "^2.0.0",
|
|
"extensionizer": "^1.0.1",
|
|
"fast-json-patch": "^2.0.4",
|
|
"fast-safe-stringify": "^2.0.7",
|
|
"fuse.js": "^3.2.0",
|
|
"globalthis": "^1.0.1",
|
|
"human-standard-token-abi": "^2.0.0",
|
|
"immer": "^8.0.1",
|
|
"json-rpc-engine": "^6.1.0",
|
|
"json-rpc-middleware-stream": "^2.1.1",
|
|
"jsonschema": "^1.2.4",
|
|
"localforage": "^1.9.0",
|
|
"lodash": "^4.17.19",
|
|
"loglevel": "^1.4.1",
|
|
"luxon": "^1.24.1",
|
|
"nanoid": "^2.1.6",
|
|
"nonce-tracker": "^1.0.0",
|
|
"obj-multiplex": "^1.0.0",
|
|
"pify": "^5.0.0",
|
|
"post-message-stream": "^3.0.0",
|
|
"promise-to-callback": "^1.0.0",
|
|
"prop-types": "^15.6.1",
|
|
"pubnub": "4.27.3",
|
|
"pump": "^3.0.0",
|
|
"punycode": "^2.1.1",
|
|
"qrcode-generator": "1.4.1",
|
|
"react": "^16.12.0",
|
|
"react-dnd": "^3.0.2",
|
|
"react-dnd-html5-backend": "^7.4.4",
|
|
"react-dom": "^16.12.0",
|
|
"react-idle-timer": "^4.2.5",
|
|
"react-inspector": "^2.3.0",
|
|
"react-popper": "^2.2.3",
|
|
"react-redux": "^7.2.0",
|
|
"react-router-dom": "^5.1.2",
|
|
"react-simple-file-input": "^2.0.0",
|
|
"react-tippy": "^1.2.2",
|
|
"react-toggle-button": "^2.2.0",
|
|
"react-transition-group": "^1.2.1",
|
|
"readable-stream": "^2.3.3",
|
|
"redux": "^4.0.5",
|
|
"redux-thunk": "^2.3.0",
|
|
"reselect": "^3.0.1",
|
|
"rpc-cap": "^3.2.1",
|
|
"safe-event-emitter": "^1.0.1",
|
|
"single-call-balance-checker-abi": "^1.0.0",
|
|
"swappable-obj-proxy": "^1.1.0",
|
|
"textarea-caret": "^3.0.1",
|
|
"unicode-confusables": "^0.1.1",
|
|
"valid-url": "^1.0.9",
|
|
"web3": "^0.20.7",
|
|
"web3-stream-provider": "^4.0.0"
|
|
},
|
|
"devDependencies": {
|
|
"@babel/core": "^7.12.1",
|
|
"@babel/eslint-parser": "^7.12.1",
|
|
"@babel/eslint-plugin": "^7.12.1",
|
|
"@babel/plugin-proposal-class-properties": "^7.5.5",
|
|
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4",
|
|
"@babel/plugin-proposal-object-rest-spread": "^7.5.5",
|
|
"@babel/plugin-proposal-optional-chaining": "^7.8.3",
|
|
"@babel/plugin-transform-runtime": "^7.5.5",
|
|
"@babel/preset-env": "^7.5.5",
|
|
"@babel/preset-react": "^7.0.0",
|
|
"@babel/register": "^7.5.5",
|
|
"@lavamoat/allow-scripts": "^1.0.4",
|
|
"@metamask/eslint-config": "^5.0.0",
|
|
"@metamask/forwarder": "^1.1.0",
|
|
"@metamask/test-dapp": "^4.0.1",
|
|
"@sentry/cli": "^1.58.0",
|
|
"@storybook/addon-actions": "^6.1.17",
|
|
"@storybook/addon-backgrounds": "^6.1.17",
|
|
"@storybook/addon-knobs": "^6.1.17",
|
|
"@storybook/addon-toolbars": "^6.1.17",
|
|
"@storybook/core": "^6.1.17",
|
|
"@storybook/react": "^6.1.17",
|
|
"@storybook/storybook-deployer": "^2.8.7",
|
|
"@testing-library/react": "^10.4.8",
|
|
"@testing-library/react-hooks": "^3.2.1",
|
|
"@types/react": "^16.9.53",
|
|
"addons-linter": "1.14.0",
|
|
"babelify": "^10.0.0",
|
|
"brfs": "^2.0.2",
|
|
"browserify": "^16.5.1",
|
|
"chalk": "^3.0.0",
|
|
"chromedriver": "^79.0.0",
|
|
"concurrently": "^5.2.0",
|
|
"copy-webpack-plugin": "^6.0.3",
|
|
"cross-spawn": "^7.0.3",
|
|
"css-loader": "^2.1.1",
|
|
"del": "^3.0.0",
|
|
"enzyme": "^3.10.0",
|
|
"enzyme-adapter-react-16": "^1.15.1",
|
|
"eslint": "^7.7.0",
|
|
"eslint-plugin-import": "^2.22.0",
|
|
"eslint-plugin-mocha": "^8.0.0",
|
|
"eslint-plugin-node": "^11.1.0",
|
|
"eslint-plugin-prettier": "^3.1.4",
|
|
"eslint-plugin-react": "~7.20.0",
|
|
"eslint-plugin-react-hooks": "^4.0.4",
|
|
"fancy-log": "^1.3.3",
|
|
"fast-glob": "^3.2.2",
|
|
"fs-extra": "^8.1.0",
|
|
"ganache-cli": "^6.12.1",
|
|
"ganache-core": "^2.13.1",
|
|
"geckodriver": "^1.21.0",
|
|
"get-port": "^5.1.0",
|
|
"gulp": "^4.0.2",
|
|
"gulp-autoprefixer": "^5.0.0",
|
|
"gulp-livereload": "4.0.0",
|
|
"gulp-rename": "^2.0.0",
|
|
"gulp-rtlcss": "^1.4.0",
|
|
"gulp-sass": "^4.1.0",
|
|
"gulp-sourcemaps": "^2.6.0",
|
|
"gulp-stylelint": "^13.0.0",
|
|
"gulp-terser-js": "^5.2.2",
|
|
"gulp-watch": "^5.0.1",
|
|
"gulp-zip": "^4.0.0",
|
|
"jsdom": "^11.2.0",
|
|
"koa": "^2.7.0",
|
|
"lavamoat": "^5.1.4",
|
|
"lavamoat-viz": "^6.0.4",
|
|
"lockfile-lint": "^4.0.0",
|
|
"loose-envify": "^1.4.0",
|
|
"mocha": "^7.2.0",
|
|
"nock": "^9.0.14",
|
|
"node-fetch": "^2.6.1",
|
|
"nyc": "^15.0.0",
|
|
"patch-package": "^6.2.2",
|
|
"polyfill-crypto.getrandomvalues": "^1.0.0",
|
|
"prettier": "^2.1.1",
|
|
"prettier-plugin-sort-json": "^0.0.1",
|
|
"proxyquire": "^2.1.3",
|
|
"randomcolor": "^0.5.4",
|
|
"rc": "^1.2.8",
|
|
"react-devtools": "^4.10.1",
|
|
"read-installed": "^4.0.3",
|
|
"redux-mock-store": "^1.5.4",
|
|
"remote-redux-devtools": "^0.5.16",
|
|
"remotedev-server": "^0.3.1",
|
|
"resolve-url-loader": "^3.1.2",
|
|
"sass": "^1.32.4",
|
|
"sass-loader": "^10.1.1",
|
|
"selenium-webdriver": "4.0.0-alpha.7",
|
|
"serve-handler": "^6.1.2",
|
|
"ses": "0.11.0",
|
|
"sinon": "^9.0.0",
|
|
"source-map": "^0.7.2",
|
|
"source-map-explorer": "^2.4.2",
|
|
"string.prototype.matchall": "^4.0.2",
|
|
"style-loader": "^0.21.0",
|
|
"stylelint": "^13.6.1",
|
|
"through2": "^2.0.3",
|
|
"ttest": "^2.1.1",
|
|
"vinyl-buffer": "^1.0.1",
|
|
"vinyl-source-stream": "^2.0.0",
|
|
"watchify": "^3.11.1",
|
|
"webpack": "^4.41.6"
|
|
},
|
|
"engines": {
|
|
"node": "^14.15.1",
|
|
"yarn": "^1.16.0"
|
|
},
|
|
"lavamoat": {
|
|
"allowScripts": {
|
|
"node-sass": true,
|
|
"chromedriver": true,
|
|
"geckodriver": true,
|
|
"@sentry/cli": true,
|
|
"electron": true,
|
|
"sqlite3": true,
|
|
"core-js": false,
|
|
"core-js-pure": false,
|
|
"keccak": false,
|
|
"secp256k1": false,
|
|
"web3": false,
|
|
"sha3": false,
|
|
"bufferutil": false,
|
|
"utf-8-validate": false,
|
|
"ejs": false,
|
|
"sc-uws": false,
|
|
"leveldown": false,
|
|
"ursa-optional": false,
|
|
"gc-stats": false,
|
|
"github:assemblyscript/assemblyscript": false,
|
|
"tiny-secp256k1": false,
|
|
"@lavamoat/preinstall-always-fail": false,
|
|
"fsevents": false
|
|
}
|
|
}
|
|
}
|