{ "name": "metamask-crx", "version": "0.0.0", "public": false, "private": true, "scripts": { "start": "gulp dev:extension", "dist": "gulp dist", "doc": "jsdoc -c development/tools/.jsdoc.json", "test": "npm run test:unit && npm run test:integration && npm run lint", "watch:test:unit": "nodemon --exec \"npm run test:unit\" ./test ./app ./ui", "test:unit": "cross-env METAMASK_ENV=test mocha --exit --require test/setup.js --recursive \"test/unit/**/*.js\"", "test:single": "cross-env METAMASK_ENV=test mocha --require test/helper.js", "test:integration": "npm run test:flat", "test:integration:build": "gulp build:scss", "test:e2e:chrome": "shell-parallel -s 'npm run ganache:start' -x 'sleep 3 && npm run test:e2e:run:chrome'", "test:e2e:drizzle:beta": "SELENIUM_BROWSER=chrome test/e2e/beta/run-drizzle.sh", "test:e2e:chrome:beta": "SELENIUM_BROWSER=chrome test/e2e/beta/run-all.sh", "test:e2e:firefox": "shell-parallel -s 'npm run ganache:start' -x 'sleep 3 && npm run test:e2e:run:firefox'", "test:e2e:firefox:beta": "SELENIUM_BROWSER=firefox test/e2e/beta/run-all.sh", "test:e2e:run:chrome": "SELENIUM_BROWSER=chrome mocha test/e2e/nw.spec --bail --recursive", "test:e2e:run:firefox": "SELENIUM_BROWSER=firefox mocha test/e2e/nw.spec --bail --recursive", "test:screens": "shell-parallel -s 'npm run ganache:start' -x 'sleep 3 && npm run test:screens:run'", "test:screens:run": "node test/screens/new-ui.js", "test:coverage": "nyc --reporter=text --reporter=html npm run test:unit && npm run test:coveralls-upload", "test:coveralls-upload": "if [ $COVERALLS_REPO_TOKEN ]; then nyc report --reporter=text-lcov | coveralls; fi", "test:flat": "npm run test:flat:build && karma start test/flat.conf.js", "test:flat:build": "npm run test:flat:build:ui && npm run test:flat:build:tests && npm run 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": "npm run test:flat:build:states && browserify ./development/mock-dev.js -o ./development/bundle.js", "ganache:start": "ganache-cli --noVMErrorsOnRPCResponse -m 'horn among position unable audit puzzle cannon apology gun autumn plug parrot'", "sentry:publish": "node ./development/sentry-publish.js", "lint": "eslint .", "lint:fix": "eslint . --fix", "mozilla-lint": "addons-linter dist/firefox", "ui": "npm run test:flat:build:states && beefy development/ui-dev.js:bundle.js --live --open --index=./development/index.html --cwd ./", "mock": "beefy development/mock-dev.js:bundle.js --live --open --index=./development/index.html --cwd ./", "watch": "mocha watch --recursive \"test/unit/**/*.js\"", "disc": "gulp disc --debug", "announce": "node development/announcer.js", "version:bump": "node development/run-version-bump.js", "storybook": "start-storybook -p 6006 -c .storybook" }, "browserify": { "transform": [ [ "babelify", { "presets": [ [ "@babel/preset-env", { "targets": { "browsers": [ "chrome >= 58", "firefox >= 56.2" ] } } ], "@babel/preset-react" ] }, { "plugins": [ "@babel/plugin-transform-runtime", "@babel/plugin-proposal-class-properties", "@babel/plugin-proposal-object-rest-spread", "@babel/plugin-proposal-optional-chaining" ] } ], "brfs" ] }, "dependencies": { "@babel/runtime": "^7.5.5", "@material-ui/core": "^4.1.1", "@metamask/contract-metadata": "^1.28.0", "@metamask/controllers": "^9.0.0", "@metamask/eth-token-tracker": "^3.1.0", "@metamask/obs-store": "^5.0.0", "@rsksmart/rns-registry": "^1.0.4", "@rsksmart/rsk-contract-metadata": "^1.0.15", "@rsksmart/rsk-testnet-contract-metadata": "^1.0.8", "@zxing/library": "^0.8.0", "abi-decoder": "^1.2.0", "asmcrypto.js": "0.22.0", "async": "^2.5.0", "await-semaphore": "^0.1.1", "bignumber.js": "^4.1.0", "bip39": "^2.2.0", "bluebird": "^3.5.0", "bn.js": "^4.11.7", "browser-passworder": "^2.0.3", "browserify-unibabel": "^3.0.0", "classnames": "^2.2.6", "clone": "^2.1.1", "copy-to-clipboard": "^3.0.8", "currency-formatter": "^1.4.2", "debounce": "1.1.0", "debounce-stream": "^2.0.0", "deep-extend": "^0.5.1", "detect-node": "^2.0.3", "detectrtc": "^1.3.6", "disc": "^1.3.2", "dnode": "^1.2.2", "end-of-stream": "^1.4.4", "eth-block-tracker": "^4.4.2", "eth-contract-metadata": "^1.13.0", "eth-dcent-keyring": "^0.1.2", "eth-ens-namehash": "^2.0.8", "eth-json-rpc-errors": "^2.0.2", "eth-json-rpc-filters": "github:poanetwork/eth-json-rpc-filters#3.0.2", "eth-json-rpc-infura": "^5.1.0", "eth-json-rpc-middleware": "^6.0.0", "eth-keychain-controller": "github:vbaranov/KeyringController#5.3.1", "eth-ledger-bridge-keyring": "github:vbaranov/eth-ledger-bridge-keyring#0.1.1-clear-accounts-flag", "eth-method-registry": "^1.0.0", "eth-net-props": "^1.0.38", "eth-phishing-detect": "^1.1.14", "eth-query": "^2.1.2", "eth-sig-util": "^3.0.0", "eth-trezor-keyring": "github:vbaranov/eth-trezor-keyring#0.4.0", "ethereumjs-abi": "^0.6.7", "ethereumjs-tx": "1.3.7", "ethereumjs-util": "^5.1.0", "ethereumjs-wallet": "^0.6.3", "ethjs": "^0.4.0", "ethjs-contract": "^0.2.3", "ethjs-ens": "^2.0.0", "ethjs-query": "^0.3.8", "express": "^4.15.5", "extension-link-enabler": "^1.0.0", "extension-port-stream": "^2.0.0", "extensionizer": "^1.0.1", "fast-json-patch": "^2.0.4", "fast-levenshtein": "^2.0.6", "fuse.js": "^3.2.0", "gas-price-oracle": "^0.1.5", "human-standard-token-abi": "^2.0.0", "idb-global": "^2.1.0", "iframe-stream": "^3.0.0", "inject-css": "^0.1.1", "json-rpc-engine": "^6.1.0", "json-rpc-middleware-stream": "^2.1.1", "json-rpc-pocket": "0.0.1", "jsonschema": "^1.2.4", "lodash.debounce": "^4.0.8", "lodash.shuffle": "^4.2.0", "lodash.uniqby": "^4.7.0", "loglevel": "^1.4.1", "mkdirp": "^0.5.5", "multihashes": "^0.4.12", "nanoid": "^2.1.6", "nifty-wallet-inpage-provider": "github:poanetwork/nifty-wallet-inpage-provider#3.0.0", "nonce-tracker": "^1.0.0", "number-to-bn": "^1.7.0", "obj-multiplex": "^1.0.0", "percentile": "^1.2.0", "pify": "^5.0.0", "poa-contract-metadata": "github:poanetwork/poa-contract-metadata#master", "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.7.2", "pump": "^3.0.0", "qrcode-npm": "0.0.3", "ramda": "^0.24.1", "raven-js": "^3.24.2", "react": "^16.12.0", "react-dom": "^16.12.0", "react-hyperscript": "^3.0.0", "react-inspector": "^2.3.0", "react-markdown": "^3.0.0", "react-media": "^1.8.0", "react-modal": "^3.8.1", "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": "^3.10.0", "react-transition-group": "^1.2.1", "react-trigger-change": "^1.0.2", "readable-stream": "^2.3.3", "recompose": "^0.25.0", "redux": "^4.0.5", "redux-logger": "^3.0.6", "redux-thunk": "^2.2.0", "request-promise": "^4.2.1", "reselect": "^3.0.1", "rockicon": "^1.0.0", "rpc-cap": "^3.2.1", "safe-event-emitter": "^1.0.1", "sandwich-expando": "^1.1.3", "semaphore": "^1.0.5", "semver": "^5.4.1", "sw-controller": "^1.0.3", "sw-stream": "^2.0.2", "swappable-obj-proxy": "^1.1.0", "url-parse": "^1.4.4", "valid-url": "^1.0.9", "vreme": "^3.0.2", "web3": "^0.20.7", "web3-eth-abi": "^1.3.1", "web3-eth-contract": "^1.3.1", "web3-stream-provider": "^4.0.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-proposal-optional-chaining": "^7.8.3", "@babel/plugin-transform-runtime": "^7.5.5", "@babel/polyfill": "^7.6.0", "@babel/preset-env": "^7.5.5", "@babel/preset-react": "^7.0.0", "@babel/register": "^7.5.5", "@sentry/cli": "^1.49.0", "@storybook/addon-info": "^5.3.14", "@storybook/addon-knobs": "^5.3.14", "@storybook/react": "^5.3.14", "addons-linter": "^1.25.0", "babel-eslint": "^10.0.2", "babel-loader": "^8.0.6", "babelify": "^10.0.0", "brfs": "^1.6.1", "browserify": "^16.2.3", "browserify-derequire": "^1.0.1", "chai": "^4.1.0", "chromedriver": "^87.0.4", "clipboardy": "^1.2.3", "compression": "^1.7.1", "coveralls": "^3.0.0", "cross-env": "^5.1.4", "css-loader": "^3.2.0", "deep-freeze-strict": "^1.1.1", "del": "^3.0.0", "envify": "^4.1.0", "enzyme": "^3.10.0", "enzyme-adapter-react-16": "^1.15.1", "eslint": "^6.0.1", "eslint-plugin-babel": "^5.3.0", "eslint-plugin-json": "^1.2.0", "eslint-plugin-mocha": "^6.2.2", "eslint-plugin-react": "^7.18.3", "expect": "^25.0.0", "fetch-mock": "^6.5.2", "file-loader": "^1.1.11", "fs-extra": "^6.0.1", "ganache-cli": "^6.12.1", "ganache-core": "^2.13.1", "geckodriver": "^1.19.1", "gifencoder": "^1.1.0", "gulp": "^4.0.2", "gulp-autoprefixer": "^5.0.0", "gulp-babel": "^8.0.0", "gulp-json-editor": "^2.2.1", "gulp-livereload": "^4.0.0", "gulp-multi-process": "^1.3.1", "gulp-replace": "^1.0.0", "gulp-sourcemaps": "^2.6.0", "gulp-stylefmt": "^1.1.0", "gulp-stylelint": "^7.0.0", "gulp-uglify": "^3.0.0", "gulp-uglify-es": "^1.0.1", "gulp-util": "^3.0.7", "gulp-watch": "^5.0.1", "gulp-zip": "^4.0.0", "http-server": "^0.12.3", "image-size": "^0.6.2", "isomorphic-fetch": "^2.2.1", "jsdoc": "^3.6.3", "jsdom": "^11.2.0", "jsdom-global": "^3.0.2", "jshint-stylish": "~2.2.1", "karma": "^5.0.9", "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": "^7.1.0", "mocha-eslint": "^6.0.0", "mocha-jsdom": "^1.1.0", "mocha-sinon": "^2.0.0", "nock": "^9.0.14", "node-sass": "^4.14.1", "nyc": "^15.0.0", "path": "^0.12.7", "png-file-stream": "^1.1.0", "prepend-file": "^1.3.1", "prompt": "^1.0.0", "proxyquire": "^2.1.3", "qs": "^6.2.0", "qunitjs": "^2.4.1", "radgrad-jsdoc-template": "^1.1.3", "rc": "^1.2.8", "react-redux": "^7.2.0", "react-test-renderer": "^16.12.0", "react-testutils-additions": "^16.0.2", "redux-mock-store": "^1.5.4", "redux-test-utils": "^0.2.2", "resolve-url-loader": "^2.3.0", "rimraf": "^2.6.2", "sass-loader": "^7.0.1", "selenium-webdriver": "^4.0.0-alpha.5", "shell-parallel": "^1.0.3", "sinon": "^5.0.0", "source-map": "^0.7.2", "static-server": "^2.2.1", "style-loader": "^0.21.0", "stylelint": "^13.6.0", "stylelint-config-standard": "^18.2.0", "tape": "^4.5.1", "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": "14.17.6", "npm": "^7.22.0" } }