mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-25 03:20:23 +01:00
f763979bed
* Add support for one-click onboarding MetaMask now allows sites to register as onboarding the user, so that the user is redirected back to the initiating site after onboarding. This is accomplished through the use of the `metamask-onboarding` library and the MetaMask forwarder. At the end of onboarding, a 'snackbar'-stype component will explain to the user they are about to be moved back to the originating dapp, and it will show the origin of that dapp. This is intended to help prevent phishing attempts, as it highlights that a redirect is taking place to an untrusted third party. If the onboarding initiator tab is closed when onboarding is finished, the user is redirected to the onboarding originator as a fallback. Closes #6161 * Add onboarding button to contract test dapp The `contract-test` dapp (run with `yarn dapp`, used in e2e tests) now uses a `Connect` button instead of connecting automatically. This button also serves as an onboarding button when a MetaMask installation is not detected. * Add new static server for test dapp The `static-server` library we were using for the `contract-test` dapp didn't allow referencing files outside the server root. This should have been possible to work around using symlinks, but there was a bug that resulted in symlinks crashing the server. Instead it has been replaced with a simple static file server that will serve paths starting with `node_modules` from the project root. This will be useful in testing the onboarding library without vendoring it. * Add `@metamask/onboarding` and `@metamask/forwarder` Both libraries used to test onboarding are now included as dev dependencies, to help with testing. A few convenience scripts were added to help with this (`yarn forwarder` and `yarn dapp-forwarder`)
307 lines
12 KiB
JSON
307 lines
12 KiB
JSON
{
|
|
"name": "metamask-crx",
|
|
"version": "0.0.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"start": "gulp dev:extension",
|
|
"dist": "gulp dist",
|
|
"doc": "jsdoc -c development/.jsdoc.json",
|
|
"publish-docs": "gh-pages -d docs/jsdocs",
|
|
"start:test": "gulp dev:test",
|
|
"build:test": "gulp build:test",
|
|
"test": "yarn test:unit && yarn lint",
|
|
"dapp": "node development/static-server.js test/e2e/contract-test --port 8080",
|
|
"dapp-chain": "GANACHE_ARGS='-b 2' concurrently -k -n ganache,dapp -p '[{time}][{name}]' 'yarn ganache:start' 'sleep 5 && node development/static-server.js test/e2e/contract-test --port 8080'",
|
|
"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'",
|
|
"watch:test:unit": "nodemon --exec \"yarn test:unit\" ./test ./app ./ui",
|
|
"sendwithprivatedapp": "node development/static-server.js test/e2e/send-eth-with-private-key-test --port 8080",
|
|
"test:unit": "cross-env METAMASK_ENV=test mocha --exit --require test/setup.js --recursive \"test/unit/**/*.js\" \"ui/app/**/*.test.js\"",
|
|
"test:unit:global": "mocha test/unit-global/*",
|
|
"test:single": "cross-env METAMASK_ENV=test mocha --require test/helper.js",
|
|
"test:integration": "yarn test:integration:build && yarn test:flat",
|
|
"test:integration:build": "gulp build:scss",
|
|
"test:e2e:chrome": "SELENIUM_BROWSER=chrome test/e2e/run-all.sh",
|
|
"test:web3:chrome": "SELENIUM_BROWSER=chrome test/e2e/run-web3.sh",
|
|
"test:web3:firefox": "SELENIUM_BROWSER=firefox test/e2e/run-web3.sh",
|
|
"test:e2e:firefox": "SELENIUM_BROWSER=firefox test/e2e/run-all.sh",
|
|
"test:coverage": "nyc --reporter=text --reporter=html npm run test:unit",
|
|
"test:coveralls-upload": "if [ $COVERALLS_REPO_TOKEN ]; then nyc report --reporter=text-lcov | coveralls; fi",
|
|
"test:flat": "yarn test:flat:build && karma start test/flat.conf.js",
|
|
"test:flat:build": "yarn test:flat:build:ui && yarn test:flat:build:tests && yarn test:flat:build:locales",
|
|
"test:flat:build:tests": "node test/integration/index.js",
|
|
"test:flat:build:states": "node development/genStates.js",
|
|
"test:flat:build:locales": "mkdirp dist/chrome && cp -R app/_locales dist/chrome/_locales",
|
|
"test:flat:build:ui": "yarn test:flat:build:states && browserify --transform babelify --transform brfs ./development/mock-dev.js -o ./development/bundle.js",
|
|
"ganache:start": "./development/run-ganache",
|
|
"sentry:publish": "node ./development/sentry-publish.js",
|
|
"lint": "eslint . --ext js,json",
|
|
"lint:fix": "eslint . --ext js,json --fix",
|
|
"lint:changed": "{ git ls-files --others --exclude-standard ; git diff-index --name-only --diff-filter=d HEAD ; } | grep --regexp='[.]js$' --regexp='[.]json$' | 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$' --regexp='[.]json$' | tr '\\n' '\\0' | xargs -0 eslint --fix",
|
|
"lint:shellcheck": "shellcheck --version && find . -type f -name '*.sh' ! -path './node_modules/*' -print0 | xargs -0 shellcheck",
|
|
"verify-locales": "node ./development/verify-locale-strings.js",
|
|
"mozilla-lint": "addons-linter dist/firefox",
|
|
"watch": "cross-env METAMASK_ENV=test mocha --watch --require test/setup.js --reporter min --recursive \"test/unit/**/*.js\" \"ui/app/**/*.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",
|
|
"version:bump": "node development/run-version-bump.js",
|
|
"storybook": "start-storybook -p 6006 -c .storybook",
|
|
"update-changelog": "./development/auto-changelog.sh",
|
|
"rollback": "./development/rollback.sh"
|
|
},
|
|
"resolutions": {
|
|
"3box/ipfs/ipld-zcash/zcash-bitcore-lib/lodash": "^4.17.12",
|
|
"pubnub/superagent-proxy": "^2.0.0"
|
|
},
|
|
"dependencies": {
|
|
"3box": "^1.10.2",
|
|
"@babel/runtime": "^7.5.5",
|
|
"@material-ui/core": "1.0.0",
|
|
"@sentry/browser": "^4.1.1",
|
|
"@zxing/library": "^0.8.0",
|
|
"abi-decoder": "^1.2.0",
|
|
"abortcontroller-polyfill": "^1.3.0",
|
|
"asmcrypto.js": "^2.3.2",
|
|
"await-semaphore": "^0.1.1",
|
|
"bignumber.js": "^4.1.0",
|
|
"bip39": "^2.2.0",
|
|
"bluebird": "^3.5.0",
|
|
"bn.js": "^4.11.7",
|
|
"boron": "^0.2.3",
|
|
"browser-passworder": "^2.0.3",
|
|
"browserify-derequire": "^0.9.4",
|
|
"browserify-unibabel": "^3.0.0",
|
|
"c3": "^0.6.7",
|
|
"classnames": "^2.2.5",
|
|
"clone": "^2.1.2",
|
|
"content-hash": "^2.4.4",
|
|
"copy-to-clipboard": "^3.0.8",
|
|
"currency-formatter": "^1.4.2",
|
|
"d3": "^5.7.0",
|
|
"debounce": "1.1.0",
|
|
"debounce-stream": "^2.0.0",
|
|
"deep-extend": "^0.5.1",
|
|
"deep-freeze-strict": "1.1.1",
|
|
"detect-node": "^2.0.3",
|
|
"detectrtc": "^1.3.6",
|
|
"dnode": "^1.2.2",
|
|
"end-of-stream": "^1.1.0",
|
|
"eth-block-tracker": "^4.4.2",
|
|
"eth-contract-metadata": "^1.11.0",
|
|
"eth-ens-namehash": "^2.0.8",
|
|
"eth-json-rpc-errors": "^1.1.0",
|
|
"eth-json-rpc-filters": "^4.1.1",
|
|
"eth-json-rpc-infura": "^4.0.1",
|
|
"eth-json-rpc-middleware": "^4.2.0",
|
|
"eth-keyring-controller": "^5.3.0",
|
|
"eth-ledger-bridge-keyring": "^0.2.0",
|
|
"eth-method-registry": "^1.2.0",
|
|
"eth-phishing-detect": "^1.1.4",
|
|
"eth-query": "^2.1.2",
|
|
"eth-sig-util": "^2.3.0",
|
|
"eth-token-tracker": "^1.1.10",
|
|
"eth-trezor-keyring": "^0.4.0",
|
|
"ethereumjs-abi": "^0.6.4",
|
|
"ethereumjs-tx": "1.3.7",
|
|
"ethereumjs-util": "5.1.0",
|
|
"ethereumjs-wallet": "^0.6.0",
|
|
"etherscan-link": "^1.0.2",
|
|
"ethjs": "^0.4.0",
|
|
"ethjs-contract": "^0.2.3",
|
|
"ethjs-ens": "^2.0.0",
|
|
"ethjs-query": "^0.3.4",
|
|
"extension-port-stream": "^1.0.0",
|
|
"extensionizer": "^1.0.1",
|
|
"fast-json-patch": "^2.0.4",
|
|
"fuse.js": "^3.2.0",
|
|
"gaba": "^1.9.0",
|
|
"human-standard-token-abi": "^2.0.0",
|
|
"jazzicon": "^1.2.0",
|
|
"json-rpc-engine": "^5.1.5",
|
|
"json-rpc-middleware-stream": "^2.1.1",
|
|
"jsonschema": "^1.2.4",
|
|
"lodash.debounce": "^4.0.8",
|
|
"lodash.shuffle": "^4.2.0",
|
|
"loglevel": "^1.4.1",
|
|
"luxon": "^1.8.2",
|
|
"metamask-inpage-provider": "^3.0.0",
|
|
"metamask-logo": "^2.1.4",
|
|
"mkdirp": "^0.5.1",
|
|
"multihashes": "^0.4.12",
|
|
"nonce-tracker": "^1.0.0",
|
|
"number-to-bn": "^1.7.0",
|
|
"obj-multiplex": "^1.0.0",
|
|
"obs-store": "^4.0.3",
|
|
"percentile": "^1.2.0",
|
|
"pify": "^3.0.0",
|
|
"polyfill-crypto.getrandomvalues": "^1.0.0",
|
|
"post-message-stream": "^3.0.0",
|
|
"promise-filter": "^1.1.0",
|
|
"promise-to-callback": "^1.0.0",
|
|
"prop-types": "^15.6.1",
|
|
"pubnub": "4.24.4",
|
|
"pump": "^3.0.0",
|
|
"punycode": "^2.1.1",
|
|
"qrcode-generator": "1.4.1",
|
|
"ramda": "^0.24.1",
|
|
"react": "^15.6.2",
|
|
"react-dnd": "^3.0.2",
|
|
"react-dnd-html5-backend": "^7.4.4",
|
|
"react-dom": "^15.6.2",
|
|
"react-hyperscript": "^3.0.0",
|
|
"react-idle-timer": "^4.2.5",
|
|
"react-inspector": "^2.3.0",
|
|
"react-media": "^1.8.0",
|
|
"react-redux": "^5.0.5",
|
|
"react-router-dom": "^4.2.2",
|
|
"react-select": "^1.0.0",
|
|
"react-simple-file-input": "^2.0.0",
|
|
"react-tippy": "^1.2.2",
|
|
"react-toggle-button": "^2.2.0",
|
|
"react-tooltip-component": "^0.3.0",
|
|
"react-transition-group": "^1.2.1",
|
|
"react-trigger-change": "^1.0.2",
|
|
"reactify": "^1.1.1",
|
|
"readable-stream": "^2.3.3",
|
|
"recompose": "^0.25.0",
|
|
"redux": "^3.0.5",
|
|
"redux-logger": "^3.0.6",
|
|
"redux-thunk": "^2.2.0",
|
|
"request-promise": "^4.2.1",
|
|
"reselect": "^3.0.1",
|
|
"safe-event-emitter": "^1.0.1",
|
|
"single-call-balance-checker-abi": "^1.0.0",
|
|
"string.prototype.matchall": "^3.0.1",
|
|
"swappable-obj-proxy": "^1.1.0",
|
|
"textarea-caret": "^3.0.1",
|
|
"valid-url": "^1.0.9",
|
|
"web3": "^0.20.7",
|
|
"web3-stream-provider": "^4.0.0",
|
|
"webrtc-adapter": "^6.3.0",
|
|
"xtend": "^4.0.1"
|
|
},
|
|
"devDependencies": {
|
|
"@babel/core": "^7.5.5",
|
|
"@babel/plugin-proposal-class-properties": "^7.5.5",
|
|
"@babel/plugin-proposal-object-rest-spread": "^7.5.5",
|
|
"@babel/plugin-transform-runtime": "^7.5.5",
|
|
"@babel/preset-env": "^7.5.5",
|
|
"@babel/preset-react": "^7.0.0",
|
|
"@babel/register": "^7.5.5",
|
|
"@metamask/forwarder": "^1.0.0",
|
|
"@metamask/onboarding": "^0.1.2",
|
|
"@sentry/cli": "^1.30.3",
|
|
"@storybook/addon-actions": "^5.2.6",
|
|
"@storybook/addon-info": "^5.1.1",
|
|
"@storybook/addon-knobs": "^3.4.2",
|
|
"@storybook/react": "^5.1.1",
|
|
"addons-linter": "1.14.0",
|
|
"babel-eslint": "^10.0.2",
|
|
"babelify": "^10.0.0",
|
|
"brfs": "^1.6.1",
|
|
"browserify": "^16.2.3",
|
|
"browserify-transform-tools": "^1.7.0",
|
|
"chai": "^4.1.0",
|
|
"chalk": "^2.4.2",
|
|
"chromedriver": "^2.41.0",
|
|
"concurrently": "^4.1.1",
|
|
"coveralls": "^3.0.0",
|
|
"cross-env": "^5.1.4",
|
|
"css-loader": "^2.1.1",
|
|
"del": "^3.0.0",
|
|
"deps-dump": "^1.1.0",
|
|
"envify": "^4.0.0",
|
|
"enzyme": "^3.4.4",
|
|
"enzyme-adapter-react-15": "^1.0.6",
|
|
"eslint": "^6.0.1",
|
|
"eslint-plugin-chai": "0.0.1",
|
|
"eslint-plugin-import": "^2.18.2",
|
|
"eslint-plugin-json": "^1.2.0",
|
|
"eslint-plugin-mocha": "^5.0.0",
|
|
"eslint-plugin-react": "^7.4.0",
|
|
"fetch-mock": "^6.5.2",
|
|
"file-loader": "^1.1.11",
|
|
"fs-extra": "^6.0.1",
|
|
"fs-promise": "^2.0.3",
|
|
"ganache-cli": "^6.4.4",
|
|
"ganache-core": "2.8.0",
|
|
"geckodriver": "^1.16.2",
|
|
"gh-pages": "^1.2.0",
|
|
"gulp": "^4.0.0",
|
|
"gulp-autoprefixer": "^5.0.0",
|
|
"gulp-babel": "^7.0.0",
|
|
"gulp-debug": "^3.2.0",
|
|
"gulp-eslint": "^4.0.0",
|
|
"gulp-imagemin": "^6.1.0",
|
|
"gulp-json-editor": "^2.2.1",
|
|
"gulp-livereload": "4.0.0",
|
|
"gulp-multi-process": "^1.3.1",
|
|
"gulp-rename": "^1.4.0",
|
|
"gulp-replace": "^0.6.1",
|
|
"gulp-rtlcss": "^1.4.0",
|
|
"gulp-sass": "^4.0.0",
|
|
"gulp-sourcemaps": "^2.6.0",
|
|
"gulp-stylelint": "^7.0.0",
|
|
"gulp-terser-js": "^5.0.0",
|
|
"gulp-util": "^3.0.7",
|
|
"gulp-watch": "^5.0.1",
|
|
"gulp-zip": "^4.0.0",
|
|
"http-server": "^0.11.1",
|
|
"isomorphic-fetch": "^2.2.1",
|
|
"jsdoc": "^3.6.2",
|
|
"jsdom": "^11.2.0",
|
|
"jsdom-global": "^3.0.2",
|
|
"karma": "^4.1.0",
|
|
"karma-chrome-launcher": "^2.2.0",
|
|
"karma-cli": "^1.0.1",
|
|
"karma-firefox-launcher": "^1.0.1",
|
|
"karma-qunit": "^1.2.1",
|
|
"lodash.assign": "^4.0.6",
|
|
"mocha": "^5.0.0",
|
|
"mocha-eslint": "^4.0.0",
|
|
"mocha-jsdom": "^1.1.0",
|
|
"mocha-sinon": "^2.0.0",
|
|
"nock": "^9.0.14",
|
|
"node-sass": "^4.12.0",
|
|
"nyc": "^13.0.0",
|
|
"path": "^0.12.7",
|
|
"prepend-file": "^1.3.1",
|
|
"proxyquire": "2.0.1",
|
|
"qs": "^6.2.0",
|
|
"qunitjs": "^2.4.1",
|
|
"radgrad-jsdoc-template": "^1.1.3",
|
|
"react-devtools": "^3.6.1",
|
|
"react-test-renderer": "^15.6.2",
|
|
"read-installed": "^4.0.3",
|
|
"redux-mock-store": "^1.5.3",
|
|
"redux-test-utils": "^0.2.2",
|
|
"remote-redux-devtools": "^0.5.16",
|
|
"remotedev-server": "^0.3.1",
|
|
"resolve-url-loader": "^2.3.0",
|
|
"rimraf": "^2.6.2",
|
|
"sass-loader": "^7.0.1",
|
|
"selenium-webdriver": "^3.5.0",
|
|
"serve-handler": "^6.1.2",
|
|
"sesify": "^4.2.1",
|
|
"sesify-viz": "^3.0.5",
|
|
"sinon": "^5.0.0",
|
|
"source-map": "^0.7.2",
|
|
"source-map-explorer": "^2.0.1",
|
|
"style-loader": "^0.21.0",
|
|
"stylelint": "^9.10.1",
|
|
"stylelint-config-standard": "^18.2.0",
|
|
"testem": "^2.16.0",
|
|
"through2": "^2.0.3",
|
|
"vinyl-buffer": "^1.0.1",
|
|
"vinyl-source-stream": "^2.0.0",
|
|
"watchify": "^3.11.1"
|
|
},
|
|
"engines": {
|
|
"node": "^10.16.0",
|
|
"yarn": "^1.16.0"
|
|
}
|
|
}
|