diff --git a/Dockerfile b/Dockerfile index 3c07f249..d2c91679 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,10 +5,15 @@ ENV COMPILER_PARAM=$COMPILER_PARAM RUN apt update RUN apt -y install git apt-transport-https software-properties-common -RUN echo "deb https://dl.bintray.com/sbt/debian /" | tee -a /etc/apt/sources.list.d/sbt.list -RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823 -RUN apt-get update -RUN apt-get -y install sbt openjdk-8-jre +#RUN echo "deb http://dl.bintray.com/sbt/debian /" | tee -a /etc/apt/sources.list.d/sbt.list +#RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823 +RUN apt-get update +RUN apt-get -y install openjdk-8-jre + +RUN wget https://github.com/sbt/sbt/releases/download/v1.5.0/sbt-1.5.0.tgz +RUN tar xzvf sbt-1.5.0.tgz -C /usr/share/ +RUN update-alternatives --install /usr/bin/sbt sbt /usr/share/sbt/bin/sbt 9999 +#RUN apt-get -y install sbt openjdk-8-jre #RUN RUN RUN, why not? :) COPY . / diff --git a/package-lock.json b/package-lock.json index abf0ad9b..6d113b1b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,769 +1,590 @@ { "name": "waves-ide", - "version": "2.3.0", - "lockfileVersion": 1, + "version": "2.4.3-stagenet", + "lockfileVersion": 2, "requires": true, - "dependencies": { - "@ant-design/create-react-context": { + "packages": { + "": { + "name": "waves-ide", + "version": "2.4.3-stagenet", + "license": "ISC", + "dependencies": { + "@types/node": "^16.9.1", + "@waves.exchange/provider-web": "1.0.2", + "@waves/js-test-env": "1.1.4-beta", + "@waves/ride-js": "2.2.0-beta.5", + "@waves/ride-language-server": "^1.1.1", + "@waves/signer": "1.0.2", + "@waves/tx-json-schemas": "1.2.4", + "@waves/waves-browser-bus": "0.2.6", + "@waves/waves-transactions": "4.2.5-beta.1", + "@waves/waveskeeper-types": "0.0.6", + "acorn": "^7.1.1", + "axios": "^0.19.0", + "babylon": "^6.18.0", + "babylon-walk": "^1.0.2", + "base64-js": "^1.3.0", + "bip39": "^2.5.0", + "chai-as-promised": "^7.1.1", + "classnames": "^2.2.6", + "copy-to-clipboard": "^3.2.0", + "debounce": "^1.2.0", + "file-saver": "^2.0.2", + "history": "^4.9.0", + "idb": "^4.0.5", + "identity-img": "^1.0.0", + "jszip": "^3.2.1", + "less": "^3.9.0", + "less-loader": "^4.1.0", + "long": "^4.0.0", + "mobx": "^5.9.0", + "mobx-react": "^5.4.3", + "mobx-utils": "^5.2.0", + "monaco-editor": "^0.18.1", + "monaco-languageclient": "^0.6.2", + "mousetrap": "^1.6.3", + "mousetrap-global-bind": "^1.1.0", + "normalize.css": "^8.0.1", + "protobufjs": "6.8.7", + "rc-collapse": "^1.11.3", + "rc-dialog": "^7.3.0", + "rc-dropdown": "^2.4.1", + "rc-menu": "^7.4.21", + "rc-notification": "^3.3.1", + "rc-select": "^9.1.0", + "rc-tabs": "^9.6.3", + "rc-tooltip": "^3.7.3", + "rc-tree": "^1.15.2", + "re-resizable": "^4.11.0", + "react": "^16.8.1", + "react-copy-to-clipboard": "^5.0.1", + "react-custom-scroll": "^3.2.1", + "react-dom": "^16.8.1", + "react-files": "^2.4.8", + "react-markdown": "^4.0.8", + "react-monaco-editor": "^0.29.0", + "react-perfect-scrollbar": "^1.4.4", + "react-redux": "^7.1.0", + "react-resize-detector": "^4.2.0", + "react-router": "^4.3.1", + "react-router-dom": "^4.3.1", + "tslib": "^1.10.0", + "uuid": "^3.3.2", + "vscode-json-languageservice": "^3.1.0", + "vscode-languageserver-types": "^3.12.0", + "wolfy87-eventemitter": "^5.2.6" + }, + "devDependencies": { + "@types/babylon": "^6.16.5", + "@types/babylon-walk": "^3.10.1", + "@types/base64-js": "^1.2.5", + "@types/bip39": "^2.4.0", + "@types/chai": "^4.1.6", + "@types/chai-as-promised": "^7.1.0", + "@types/classnames": "^2.2.6", + "@types/debounce": "^1.0.0", + "@types/file-saver": "^2.0.1", + "@types/history": "^4.7.2", + "@types/jszip": "^3.1.6", + "@types/long": "^4.0.0", + "@types/mocha": "^5.2.6", + "@types/mousetrap": "^1.6.3", + "@types/react": "^16.9.4", + "@types/react-copy-to-clipboard": "^4.2.6", + "@types/react-dom": "^16.8.1", + "@types/react-redux": "^7.1.1", + "@types/react-resize-detector": "^3.1.0", + "@types/react-router": "^4.0.32", + "@types/react-router-dom": "^4.3.1", + "@types/react-scrollbar": "^0.4.9", + "@types/react-truncate": "^2.3.2", + "@types/uuid": "^3.4.4", + "autoprefixer": "^9.1.0", + "chai": "^4.2.0", + "clean-webpack-plugin": "^1.0.1", + "copy-webpack-plugin": "^4.5.1", + "css-loader": "^1.0.0", + "file-loader": "^3.0.1", + "fork-ts-checker-webpack-plugin": "^0.4.14", + "html-webpack-externals-plugin": "^3.8.0", + "html-webpack-plugin": "^3.2.0", + "install": "^0.12.1", + "mini-css-extract-plugin": "^0.8.0", + "mocha": "^5.2.0", + "optimize-css-assets-webpack-plugin": "^5.0.3", + "postcss-flexbugs-fixes": "^4.1.0", + "postcss-inline-svg": "^3.1.1", + "postcss-loader": "^2.1.6", + "react-dev-utils": "^5.0.1", + "script-loader": "^0.7.2", + "style-loader": "^0.21.0", + "terser-webpack-plugin": "^2.3.5", + "ts-loader": "^5.3.3", + "ts-node": "^7.0.1", + "tslint": "^5.12.1", + "typescript": "^3.7.2", + "url-loader": "^1.1.2", + "webpack": "^4.41.2", + "webpack-bundle-analyzer": "^3.3.2", + "webpack-cli": "^3.1.2", + "webpack-dev-server": "^3.1.14" + } + }, + "../ride-js": { + "name": "@waves/ride-js", + "version": "2.2.0-beta.2", + "extraneous": true, + "license": "MIT", + "dependencies": { + "@waves/ts-lib-crypto": "^1.4.3", + "axios": "^0.19.0" + }, + "devDependencies": { + "chai": "^4.2.0", + "copy-webpack-plugin": "^4.5.2", + "mocha": "^5.2.0", + "webpack": "^4.16.0", + "webpack-cli": "^3.0.8", + "webpack-closure-compiler": "^2.1.6" + } + }, + "node_modules/@ant-design/create-react-context": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@ant-design/create-react-context/-/create-react-context-0.2.5.tgz", - "integrity": "sha512-1rMAa4qgP2lfl/QBH9i78+Gjxtj9FTMpMyDGZsEBW5Kih72EuUo9958mV8PgpRkh4uwPSQ7vVZWXeyNZXVAFDg==", - "requires": { + "license": "MIT", + "dependencies": { "gud": "^1.0.0", "warning": "^4.0.3" + }, + "peerDependencies": { + "prop-types": "^15.0.0", + "react": "^0.14.0 || ^15.0.0 || ^16.0.0" } }, - "@babel/code-frame": { + "node_modules/@babel/code-frame": { "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.0.tgz", - "integrity": "sha512-AN2IR/wCUYsM+PdErq6Bp3RFTXl8W0p9Nmymm7zkpsCmh+r/YYcckaCGpU8Q/mEKmST19kkGRaG42A/jxOWwBA==", - "requires": { + "dev": true, + "license": "MIT", + "dependencies": { "@babel/highlight": "^7.8.0" } }, - "@babel/helper-module-imports": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", - "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/highlight": { + "node_modules/@babel/highlight": { "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.0.tgz", - "integrity": "sha512-OsdTJbHlPtIk2mmtwXItYrdmalJ8T0zpVzNAbKSkHshuywj7zb29Y09McV/jQsQunc/nEyHiPV2oy9llYMLqxw==", - "requires": { + "dev": true, + "license": "MIT", + "dependencies": { "chalk": "^2.0.0", "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, - "@babel/runtime": { + "node_modules/@babel/runtime": { "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.0.tgz", - "integrity": "sha512-Z7ti+HB0puCcLmFE3x90kzaVgbx6TRrYIReaygW6EkBEnJh1ajS4/inhF7CypzWeDV3NFl1AfWj0eMtdihojxw==", - "requires": { - "regenerator-runtime": "^0.13.2" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" - } - } - }, - "@babel/types": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", - "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - }, + "license": "MIT", "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - } - } - }, - "@emotion/cache": { - "version": "10.0.27", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.27.tgz", - "integrity": "sha512-Zp8BEpbMunFsTcqAK4D7YTm3MvCp1SekflSLJH8lze2fCcSZ/yMkXHo8kb3t1/1Tdd3hAqf3Fb7z9VZ+FMiC9w==", - "requires": { - "@emotion/sheet": "0.9.4", - "@emotion/stylis": "0.8.5", - "@emotion/utils": "0.11.3", - "@emotion/weak-memoize": "0.2.5" - } - }, - "@emotion/core": { - "version": "10.0.27", - "resolved": "https://registry.npmjs.org/@emotion/core/-/core-10.0.27.tgz", - "integrity": "sha512-XbD5R36pVbohQMnKfajHv43g8EbN4NHdF6Zh9zg/C0nr0jqwOw3gYnC07Xj3yG43OYSRyrGsoQ5qPwc8ycvLZw==", - "requires": { - "@babel/runtime": "^7.5.5", - "@emotion/cache": "^10.0.27", - "@emotion/css": "^10.0.27", - "@emotion/serialize": "^0.11.15", - "@emotion/sheet": "0.9.4", - "@emotion/utils": "0.11.3" - } - }, - "@emotion/css": { - "version": "10.0.27", - "resolved": "https://registry.npmjs.org/@emotion/css/-/css-10.0.27.tgz", - "integrity": "sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw==", - "requires": { - "@emotion/serialize": "^0.11.15", - "@emotion/utils": "0.11.3", - "babel-plugin-emotion": "^10.0.27" - } - }, - "@emotion/hash": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.7.4.tgz", - "integrity": "sha512-fxfMSBMX3tlIbKUdtGKxqB1fyrH6gVrX39Gsv3y8lRYKUqlgDt3UMqQyGnR1bQMa2B8aGnhLZokZgg8vT0Le+A==" - }, - "@emotion/is-prop-valid": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.6.tgz", - "integrity": "sha512-mnZMho3Sq8BfzkYYRVc8ilQTnc8U02Ytp6J1AwM6taQStZ3AhsEJBX2LzhA/LJirNCwM2VtHL3VFIZ+sNJUgUQ==", - "requires": { - "@emotion/memoize": "0.7.4" - } - }, - "@emotion/memoize": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", - "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" - }, - "@emotion/serialize": { - "version": "0.11.15", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.15.tgz", - "integrity": "sha512-YE+qnrmGwyR+XB5j7Bi+0GT1JWsdcjM/d4POu+TXkcnrRs4RFCCsi3d/Ebf+wSStHqAlTT2+dfd+b9N9EO2KBg==", - "requires": { - "@emotion/hash": "0.7.4", - "@emotion/memoize": "0.7.4", - "@emotion/unitless": "0.7.5", - "@emotion/utils": "0.11.3", - "csstype": "^2.5.7" - } - }, - "@emotion/sheet": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-0.9.4.tgz", - "integrity": "sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==" - }, - "@emotion/styled": { - "version": "10.0.27", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-10.0.27.tgz", - "integrity": "sha512-iK/8Sh7+NLJzyp9a5+vIQIXTYxfT4yB/OJbjzQanB2RZpvmzBQOHZWhpAMZWYEKRNNbsD6WfBw5sVWkb6WzS/Q==", - "requires": { - "@emotion/styled-base": "^10.0.27", - "babel-plugin-emotion": "^10.0.27" - } - }, - "@emotion/styled-base": { - "version": "10.0.27", - "resolved": "https://registry.npmjs.org/@emotion/styled-base/-/styled-base-10.0.27.tgz", - "integrity": "sha512-ufHM/HhE3nr309hJG9jxuFt71r6aHn7p+bwXduFxcwPFEfBIqvmZUMtZ9YxIsY61PVwK3bp4G1XhaCzy9smVvw==", - "requires": { - "@babel/runtime": "^7.5.5", - "@emotion/is-prop-valid": "0.8.6", - "@emotion/serialize": "^0.11.15", - "@emotion/utils": "0.11.3" + "regenerator-runtime": "^0.13.2" } }, - "@emotion/stylis": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", - "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" - }, - "@emotion/unitless": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" - }, - "@emotion/utils": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz", - "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==" - }, - "@emotion/weak-memoize": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", - "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" - }, - "@popperjs/core": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.0.6.tgz", - "integrity": "sha512-zj7Gw8QC4jmR92eKUvtrZUEpl2ypRbq+qlE4pwf9n2hnUO9BOAcWUs4/Ht+gNIbFt98xtqhLvccdCfD469MzpQ==" + "node_modules/@babel/runtime/node_modules/regenerator-runtime": { + "version": "0.13.3", + "license": "MIT" }, - "@protobufjs/aspromise": { + "node_modules/@protobufjs/aspromise": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" + "license": "BSD-3-Clause" }, - "@protobufjs/base64": { + "node_modules/@protobufjs/base64": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + "license": "BSD-3-Clause" }, - "@protobufjs/codegen": { + "node_modules/@protobufjs/codegen": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + "license": "BSD-3-Clause" }, - "@protobufjs/eventemitter": { + "node_modules/@protobufjs/eventemitter": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" + "license": "BSD-3-Clause" }, - "@protobufjs/fetch": { + "node_modules/@protobufjs/fetch": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "requires": { + "license": "BSD-3-Clause", + "dependencies": { "@protobufjs/aspromise": "^1.1.1", "@protobufjs/inquire": "^1.1.0" } }, - "@protobufjs/float": { + "node_modules/@protobufjs/float": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" + "license": "BSD-3-Clause" }, - "@protobufjs/inquire": { + "node_modules/@protobufjs/inquire": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" + "license": "BSD-3-Clause" }, - "@protobufjs/path": { + "node_modules/@protobufjs/path": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" + "license": "BSD-3-Clause" }, - "@protobufjs/pool": { + "node_modules/@protobufjs/pool": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" + "license": "BSD-3-Clause" }, - "@protobufjs/utf8": { + "node_modules/@protobufjs/utf8": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "@styled-system/background": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/background/-/background-5.1.2.tgz", - "integrity": "sha512-jtwH2C/U6ssuGSvwTN3ri/IyjdHb8W9X/g8Y0JLcrH02G+BW3OS8kZdHphF1/YyRklnrKrBT2ngwGUK6aqqV3A==", - "requires": { - "@styled-system/core": "^5.1.2" - } - }, - "@styled-system/border": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@styled-system/border/-/border-5.1.5.tgz", - "integrity": "sha512-JvddhNrnhGigtzWRCVuAHepniyVi6hBlimxWDVAdcTuk7aRn9BYJUwfHslURtwYFsF5FoEs8Zmr1oZq2M1AP0A==", - "requires": { - "@styled-system/core": "^5.1.2" - } - }, - "@styled-system/color": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/color/-/color-5.1.2.tgz", - "integrity": "sha512-1kCkeKDZkt4GYkuFNKc7vJQMcOmTl3bJY3YBUs7fCNM6mMYJeT1pViQ2LwBSBJytj3AB0o4IdLBoepgSgGl5MA==", - "requires": { - "@styled-system/core": "^5.1.2" - } - }, - "@styled-system/core": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/core/-/core-5.1.2.tgz", - "integrity": "sha512-XclBDdNIy7OPOsN4HBsawG2eiWfCcuFt6gxKn1x4QfMIgeO6TOlA2pZZ5GWZtIhCUqEPTgIBta6JXsGyCkLBYw==", - "requires": { - "object-assign": "^4.1.1" - } - }, - "@styled-system/css": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@styled-system/css/-/css-5.1.5.tgz", - "integrity": "sha512-XkORZdS5kypzcBotAMPBoeckDs9aSZVkvrAlq5K3xP8IMAUek+x2O4NtwoSgkYkWWzVBu6DGdFZLR790QWGG+A==" - }, - "@styled-system/flexbox": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/flexbox/-/flexbox-5.1.2.tgz", - "integrity": "sha512-6hHV52+eUk654Y1J2v77B8iLeBNtc+SA3R4necsu2VVinSD7+XY5PCCEzBFaWs42dtOEDIa2lMrgL0YBC01mDQ==", - "requires": { - "@styled-system/core": "^5.1.2" - } - }, - "@styled-system/grid": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/grid/-/grid-5.1.2.tgz", - "integrity": "sha512-K3YiV1KyHHzgdNuNlaw8oW2ktMuGga99o1e/NAfTEi5Zsa7JXxzwEnVSDSBdJC+z6R8WYTCYRQC6bkVFcvdTeg==", - "requires": { - "@styled-system/core": "^5.1.2" - } - }, - "@styled-system/layout": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/layout/-/layout-5.1.2.tgz", - "integrity": "sha512-wUhkMBqSeacPFhoE9S6UF3fsMEKFv91gF4AdDWp0Aym1yeMPpqz9l9qS/6vjSsDPF7zOb5cOKC3tcKKOMuDCPw==", - "requires": { - "@styled-system/core": "^5.1.2" - } - }, - "@styled-system/position": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/position/-/position-5.1.2.tgz", - "integrity": "sha512-60IZfMXEOOZe3l1mCu6sj/2NAyUmES2kR9Kzp7s2D3P4qKsZWxD1Se1+wJvevb+1TP+ZMkGPEYYXRyU8M1aF5A==", - "requires": { - "@styled-system/core": "^5.1.2" - } - }, - "@styled-system/shadow": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/shadow/-/shadow-5.1.2.tgz", - "integrity": "sha512-wqniqYb7XuZM7K7C0d1Euxc4eGtqEe/lvM0WjuAFsQVImiq6KGT7s7is+0bNI8O4Dwg27jyu4Lfqo/oIQXNzAg==", - "requires": { - "@styled-system/core": "^5.1.2" - } - }, - "@styled-system/should-forward-prop": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@styled-system/should-forward-prop/-/should-forward-prop-5.1.5.tgz", - "integrity": "sha512-+rPRomgCGYnUIaFabDoOgpSDc4UUJ1KsmlnzcEp0tu5lFrBQKgZclSo18Z1URhaZm7a6agGtS5Xif7tuC2s52Q==", - "requires": { - "@emotion/is-prop-valid": "^0.8.1", - "@emotion/memoize": "^0.7.1", - "styled-system": "^5.1.5" - } - }, - "@styled-system/space": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/space/-/space-5.1.2.tgz", - "integrity": "sha512-+zzYpR8uvfhcAbaPXhH8QgDAV//flxqxSjHiS9cDFQQUSznXMQmxJegbhcdEF7/eNnJgHeIXv1jmny78kipgBA==", - "requires": { - "@styled-system/core": "^5.1.2" - } - }, - "@styled-system/typography": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@styled-system/typography/-/typography-5.1.2.tgz", - "integrity": "sha512-BxbVUnN8N7hJ4aaPOd7wEsudeT7CxarR+2hns8XCX1zp0DFfbWw4xYa/olA0oQaqx7F1hzDg+eRaGzAJbF+jOg==", - "requires": { - "@styled-system/core": "^5.1.2" - } - }, - "@styled-system/variant": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@styled-system/variant/-/variant-5.1.5.tgz", - "integrity": "sha512-Yn8hXAFoWIro8+Q5J8YJd/mP85Teiut3fsGVR9CAxwgNfIAiqlYxsk5iHU7VHJks/0KjL4ATSjmbtCDC/4l1qw==", - "requires": { - "@styled-system/core": "^5.1.2", - "@styled-system/css": "^5.1.5" - } + "license": "BSD-3-Clause" }, - "@types/babel-types": { + "node_modules/@types/babel-types": { "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.7.tgz", - "integrity": "sha512-dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ==", - "dev": true + "dev": true, + "license": "MIT" }, - "@types/babylon": { + "node_modules/@types/babylon": { "version": "6.16.5", - "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz", - "integrity": "sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@types/babel-types": "*" } }, - "@types/babylon-walk": { + "node_modules/@types/babylon-walk": { "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@types/babylon-walk/-/babylon-walk-3.10.1.tgz", - "integrity": "sha512-D6qJM43rzOe5DG8+15QgiTb6khoG1wqDs+M0ADMq0xImuh1ore8BO8upC0NyfUl8L7dia160cDVYi7eBnkaiig==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@types/babel-types": "*" } }, - "@types/base64-js": { + "node_modules/@types/base64-js": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@types/base64-js/-/base64-js-1.2.5.tgz", - "integrity": "sha1-WCskdhaabLpGCiFNR2x0REHYc9U=" + "license": "MIT" }, - "@types/bignumber.js": { + "node_modules/@types/bignumber.js": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/bignumber.js/-/bignumber.js-5.0.0.tgz", - "integrity": "sha512-0DH7aPGCClywOFaxxjE6UwpN2kQYe9LwuDQMv+zYA97j5GkOMo8e66LYT+a8JYU7jfmUFRZLa9KycxHDsKXJCA==", - "requires": { + "license": "MIT", + "dependencies": { "bignumber.js": "*" } }, - "@types/bip39": { + "node_modules/@types/bip39": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@types/bip39/-/bip39-2.4.2.tgz", - "integrity": "sha512-Vo9lqOIRq8uoIzEVrV87ZvcIM0PN9t0K3oYZ/CS61fIYKCBdOIM7mlWzXuRvSXrDtVa1uUO2w1cdfufxTC0bzg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@types/node": "*" } }, - "@types/chai": { + "node_modules/@types/chai": { "version": "4.2.7", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.7.tgz", - "integrity": "sha512-luq8meHGYwvky0O7u0eQZdA7B4Wd9owUCqvbw2m3XCrCU8mplYOujMBbvyS547AxJkC+pGnd0Cm15eNxEUNU8g==", - "dev": true + "dev": true, + "license": "MIT" }, - "@types/chai-as-promised": { + "node_modules/@types/chai-as-promised": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.2.tgz", - "integrity": "sha512-PO2gcfR3Oxa+u0QvECLe1xKXOqYTzCmWf0FhLhjREoW3fPAVamjihL7v1MOVLJLsnAMdLcjkfrs01yvDMwVK4Q==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@types/chai": "*" } }, - "@types/classnames": { + "node_modules/@types/classnames": { "version": "2.2.9", - "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.9.tgz", - "integrity": "sha512-MNl+rT5UmZeilaPxAVs6YaPC2m6aA8rofviZbhbxpPpl61uKodfdQVsBtgJGTqGizEf02oW3tsVe7FYB8kK14A==", - "dev": true + "dev": true, + "license": "MIT" }, - "@types/debounce": { + "node_modules/@types/debounce": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@types/debounce/-/debounce-1.2.0.tgz", - "integrity": "sha512-bWG5wapaWgbss9E238T0R6bfo5Fh3OkeoSt245CM7JJwVwpw6MEBCbIxLq5z8KzsE3uJhzcIuQkyiZmzV3M/Dw==", - "dev": true + "dev": true, + "license": "MIT" }, - "@types/events": { + "node_modules/@types/events": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", - "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", - "dev": true + "dev": true, + "license": "MIT" }, - "@types/file-saver": { + "node_modules/@types/file-saver": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.1.tgz", - "integrity": "sha512-g1QUuhYVVAamfCifK7oB7G3aIl4BbOyzDOqVyUfEr4tfBKrXfeH+M+Tg7HKCXSrbzxYdhyCP7z9WbKo0R2hBCw==", - "dev": true + "dev": true, + "license": "MIT" }, - "@types/glob": { + "node_modules/@types/glob": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", - "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@types/events": "*", "@types/minimatch": "*", "@types/node": "*" } }, - "@types/history": { + "node_modules/@types/history": { "version": "4.7.3", - "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.3.tgz", - "integrity": "sha512-cS5owqtwzLN5kY+l+KgKdRJ/Cee8tlmQoGQuIE9tWnSmS3JMKzmxo2HIAk2wODMifGwO20d62xZQLYz+RLfXmw==", - "dev": true + "dev": true, + "license": "MIT" }, - "@types/hoist-non-react-statics": { + "node_modules/@types/hoist-non-react-statics": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", - "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@types/react": "*", "hoist-non-react-statics": "^3.3.0" } }, - "@types/jszip": { + "node_modules/@types/jszip": { "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@types/jszip/-/jszip-3.1.7.tgz", - "integrity": "sha512-+XQKNI5zpxutK05hO67huUTw/2imXCuJWjnFdU63tRES/xXSX1yVR9cv/QAdO6Rii2y2tTHbzjQ4i2apLfuK0Q==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@types/node": "*" } }, - "@types/long": { + "node_modules/@types/long": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" + "license": "MIT" }, - "@types/minimatch": { + "node_modules/@types/minimatch": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true + "dev": true, + "license": "MIT" }, - "@types/mocha": { + "node_modules/@types/mocha": { "version": "5.2.7", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz", - "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==", - "dev": true + "dev": true, + "license": "MIT" }, - "@types/mousetrap": { + "node_modules/@types/mousetrap": { "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@types/mousetrap/-/mousetrap-1.6.3.tgz", - "integrity": "sha512-13gmo3M2qVvjQrWNseqM3+cR6S2Ss3grbR2NZltgMq94wOwqJYQdgn8qzwDshzgXqMlSUtyPZjysImmktu22ew==", - "dev": true + "dev": true, + "license": "MIT" }, - "@types/node": { - "version": "13.1.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.1.6.tgz", - "integrity": "sha512-Jg1F+bmxcpENHP23sVKkNuU3uaxPnsBMW0cLjleiikFKomJQbsn0Cqk2yDvQArqzZN6ABfBkZ0To7pQ8sLdWDg==" + "node_modules/@types/node": { + "version": "16.9.1", + "license": "MIT" }, - "@types/node-fetch": { + "node_modules/@types/node-fetch": { "version": "2.5.5", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.5.tgz", - "integrity": "sha512-IWwjsyYjGw+em3xTvWVQi5MgYKbRs0du57klfTaZkv/B24AEQ/p/IopNeqIYNy3EsfHOpg8ieQSDomPcsYMHpA==", - "requires": { + "license": "MIT", + "dependencies": { "@types/node": "*", "form-data": "^3.0.0" - }, - "dependencies": { - "form-data": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", - "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } } }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + "node_modules/@types/node-fetch/node_modules/form-data": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } }, - "@types/prop-types": { + "node_modules/@types/prop-types": { "version": "15.7.3", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", - "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" + "license": "MIT" }, - "@types/q": { + "node_modules/@types/q": { "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz", - "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==", - "dev": true - }, - "@types/ramda": { - "version": "0.26.42", - "resolved": "https://registry.npmjs.org/@types/ramda/-/ramda-0.26.42.tgz", - "integrity": "sha512-HjMKhIWHR6SPfAR24ghGkzoG/8aBRr1Pb7c2gskneuwgtDJBhO3KJ0tM0sLOX7gjf4LmQ3NLp6wTkDfjKEqimA==", - "requires": { - "ts-toolbelt": "^6.1.11" - } + "dev": true, + "license": "MIT" }, - "@types/react": { + "node_modules/@types/react": { "version": "16.9.17", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.17.tgz", - "integrity": "sha512-UP27In4fp4sWF5JgyV6pwVPAQM83Fj76JOcg02X5BZcpSu5Wx+fP9RMqc2v0ssBoQIFvD5JdKY41gjJJKmw6Bg==", - "requires": { + "license": "MIT", + "dependencies": { "@types/prop-types": "*", "csstype": "^2.2.0" } }, - "@types/react-copy-to-clipboard": { + "node_modules/@types/react-copy-to-clipboard": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@types/react-copy-to-clipboard/-/react-copy-to-clipboard-4.3.0.tgz", - "integrity": "sha512-iideNPRyroENqsOFh1i2Dv3zkviYS9r/9qD9Uh3Z9NNoAAqqa2x53i7iGndGNnJFIo20wIu7Hgh77tx1io8bgw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@types/react": "*" } }, - "@types/react-dom": { + "node_modules/@types/react-dom": { "version": "16.9.4", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.4.tgz", - "integrity": "sha512-fya9xteU/n90tda0s+FtN5Ym4tbgxpq/hb/Af24dvs6uYnYn+fspaxw5USlw0R8apDNwxsqumdRoCoKitckQqw==", - "requires": { + "dev": true, + "license": "MIT", + "dependencies": { "@types/react": "*" } }, - "@types/react-redux": { + "node_modules/@types/react-redux": { "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.5.tgz", - "integrity": "sha512-ZoNGQMDxh5ENY7PzU7MVonxDzS1l/EWiy8nUhDqxFqUZn4ovboCyvk4Djf68x6COb7vhGTKjyjxHxtFdAA5sUA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@types/hoist-non-react-statics": "^3.3.0", "@types/react": "*", "hoist-non-react-statics": "^3.3.0", "redux": "^4.0.0" } }, - "@types/react-resize-detector": { + "node_modules/@types/react-resize-detector": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@types/react-resize-detector/-/react-resize-detector-3.1.1.tgz", - "integrity": "sha512-3FVExywb3kC0p+dKRd2IC6wmUlfurx/9J0b1mtHd0rigwZWNJC79fnbTJaMmLNM8PhhgqDwaNOhFdv0u9YGAzA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@types/react": "*" } }, - "@types/react-router": { + "node_modules/@types/react-router": { "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-4.4.5.tgz", - "integrity": "sha512-12+VOu1+xiC8RPc9yrgHCyLI79VswjtuqeS2gPrMcywH6tkc8rGIUhs4LaL3AJPqo5d+RPnfRpNKiJ7MK2Qhcg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@types/history": "*", "@types/react": "*" } }, - "@types/react-router-dom": { + "node_modules/@types/react-router-dom": { "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-4.3.5.tgz", - "integrity": "sha512-eFajSUASYbPHg2BDM1G8Btx+YqGgvROPIg6sBhl3O4kbDdYXdFdfrgQFf/pcBuQVObjfT9AL/dd15jilR5DIEA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@types/history": "*", "@types/react": "*", "@types/react-router": "*" } }, - "@types/react-scrollbar": { + "node_modules/@types/react-scrollbar": { "version": "0.4.10", - "resolved": "https://registry.npmjs.org/@types/react-scrollbar/-/react-scrollbar-0.4.10.tgz", - "integrity": "sha512-pSkEJx+P6dPTj9/rRJ6qeh6UAokZ+YVAbeHfU5sVHdo7LfCNmdQmgvbqyb9L5kIEaApwZvEYSaWAZnMcbD/CHg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@types/react": "*" } }, - "@types/react-truncate": { + "node_modules/@types/react-truncate": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/@types/react-truncate/-/react-truncate-2.3.3.tgz", - "integrity": "sha512-wtbubWJSvT+A3zzacmxpXE1nkHKX0nybSXfwNTdHtBfwJEzm1Caau9AGAS6R7uBuYw0sHcK/DoqRALfSOexLew==", "dev": true, - "requires": { - "@types/react": "*" - } - }, - "@types/styled-system": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/@types/styled-system/-/styled-system-5.1.7.tgz", - "integrity": "sha512-0zMxF/B5Z4T6ZhCP8CKtxe8wBmH7sqDjK3lOMByNQ6gG/Qf6RDnBp1aZwkReS1uDVhrsPx9J+IbLigpAdYBkrQ==", - "requires": { - "csstype": "^2.6.9" - }, + "license": "MIT", "dependencies": { - "csstype": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.9.tgz", - "integrity": "sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q==" - } + "@types/react": "*" } }, - "@types/uuid": { + "node_modules/@types/uuid": { "version": "3.4.6", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-3.4.6.tgz", - "integrity": "sha512-cCdlC/1kGEZdEglzOieLDYBxHsvEOIg7kp/2FYyVR9Pxakq+Qf/inL3RKQ+PA8gOlI/NnL+fXmQH12nwcGzsHw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@types/node": "*" } }, - "@waves.exchange/provider-web": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@waves.exchange/provider-web/-/provider-web-0.2.1.tgz", - "integrity": "sha512-mbzDStq7jjZMnrdPSXinkNJs/dup1O4Iuj82bZnkqYScQP0vopeyhpeNptb8dkT01WSjWUNyA+KjQMvYtjJF3Q==", - "requires": { - "@emotion/core": "^10.0.22", - "@emotion/styled": "^10.0.23", - "@popperjs/core": "^2.0.0-rc.1", - "@styled-system/css": "^5.1.4", - "@styled-system/should-forward-prop": "^5.1.4", - "@types/ramda": "^0.26.38", - "@types/react": "^16.9.15", - "@types/react-dom": "^16.9.4", - "@types/styled-system": "^5.1.4", - "@waves.exchange/react-uikit": "^0.4.1", - "@waves/bignumber": "0.0.1", - "@waves/node-api-js": "^0.1.0", - "@waves/signer": "^0.1.0", - "@waves/ts-types": "^0.3.2", - "@waves/waves-browser-bus": "^0.2.3", - "@waves/waves-transactions": "^3.20.2", - "emotion-theming": "^10.0.19", - "ramda": "^0.26.1", - "react": "^16.12.0", - "react-dom": "^16.12.0", - "styled-system": "^5.1.4", - "tslib": "^1.10.0", - "typed-ts-events": "^1.0.5" + "node_modules/@waves.exchange/provider-web": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "@waves/waves-browser-bus": "0.2.5", + "tslib": "^2.1.0", + "typed-ts-events": "^1.2.1" }, + "peerDependencies": { + "@waves/signer": "1.x" + } + }, + "node_modules/@waves.exchange/provider-web/node_modules/@types/node": { + "version": "11.15.54", + "license": "MIT" + }, + "node_modules/@waves.exchange/provider-web/node_modules/@waves/waves-browser-bus": { + "version": "0.2.5", "dependencies": { - "@waves/marshall": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/@waves/marshall/-/marshall-0.9.1.tgz", - "integrity": "sha512-DWBUKDno7ahI4ogMtaTbXujF1j2RoIHK68Xi9ZTd1Tk1FwnSfHXjEnkRLJ7qoRwZibVYmrxiOPN0t+LNkueTnw==", - "requires": { - "@types/base64-js": "^1.2.5", - "@waves/bignumber": "0.0.1", - "@waves/parse-json-bignumber": "^1.0.1", - "base64-js": "^1.3.0" - } - }, - "@waves/ts-lib-crypto": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@waves/ts-lib-crypto/-/ts-lib-crypto-1.4.3.tgz", - "integrity": "sha512-2pKgyvtLapgM5vpaUEYzX7NYe2bkB+HdWn9W/4d7UFKwyg6zoOYhRQWyb6GuLi3OLHTETgiqpcMZvciFA0Ds6g==", - "requires": { - "js-sha3": "^0.8.0", - "node-forge": "^0.8.5" - } - }, - "@waves/waves-transactions": { - "version": "3.25.6", - "resolved": "https://registry.npmjs.org/@waves/waves-transactions/-/waves-transactions-3.25.6.tgz", - "integrity": "sha512-bVI+xX0XRUdthERPlEqZ2MVztHJr6tA1SP0uqZKUaRpL2VlBQ8xMX8XqFrLpK9ptRVcrBpVRNjPnqSQLKZ64zQ==", - "requires": { - "@waves/marshall": "^0.9.1", - "@waves/ts-lib-crypto": "^1.4.3", - "axios": "^0.19.0" - } - } + "@types/node": "^11.9.4", + "typed-ts-events": "^1.0.5" } }, - "@waves.exchange/react-uikit": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@waves.exchange/react-uikit/-/react-uikit-0.4.1.tgz", - "integrity": "sha512-TCqpV1E+dI9g3KjJVZTHXRSh+Q2ujNK+HSEEjoj+GkPuv4iLiygPORQS969EeVADRNwHHF2W4NyzPluhkmt/ag==", - "requires": { - "@popperjs/core": "^2.0.0-rc.1", - "@styled-system/css": "^5.1.4", - "@types/ramda": "^0.26.36", - "@waves/ts-lib-crypto": "^1.4.1", - "@waves/ts-types": "^0.3.1", - "identity-img": "^2.0.0", - "ramda": "^0.26.1" - }, + "node_modules/@waves.exchange/provider-web/node_modules/tslib": { + "version": "2.3.0", + "license": "0BSD" + }, + "node_modules/@waves/bignumber": { + "version": "1.1.1", + "license": "MIT", "dependencies": { - "identity-img": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/identity-img/-/identity-img-2.0.0.tgz", - "integrity": "sha512-Bnz6jfhrQ3g5/TkdrN9JthlBVo658k6vN24qgTS30LCA7vAhsRGdEUMOJJyRcudeEBb6g/lXXcdyAMKNR+RaaA==" - } + "bignumber.js": "^9.0.1" } }, - "@waves/bignumber": { + "node_modules/@waves/client-logs": { + "version": "1.0.0", + "license": "ISC" + }, + "node_modules/@waves/js-test-env": { + "version": "1.1.4-beta", + "license": "ISC", + "dependencies": { + "@waves/ride-js": "2.1.2-beta.2", + "@waves/waves-transactions": "4.1.8-beta2", + "chai": "^4.2.0", + "chai-as-promised": "^7.1.1", + "tslib": "^1.10.0" + } + }, + "node_modules/@waves/js-test-env/node_modules/@waves/bignumber": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@waves/bignumber/-/bignumber-0.0.1.tgz", - "integrity": "sha512-+bQCa8fPCYdkLtwKsKtgbvDD7MzZTv6bc2ZpGMqn9uq+RjO8Qf4XSrs0DVhtWWhCHplkVIqOeS4bzgW1i3P7rw==", - "requires": { + "license": "MIT", + "dependencies": { "@types/bignumber.js": "^5.0.0", "bignumber.js": "^8.1.1" } }, - "@waves/js-test-env": { + "node_modules/@waves/js-test-env/node_modules/@waves/node-api-js": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@waves/js-test-env/-/js-test-env-1.1.1.tgz", - "integrity": "sha512-Fs9ybkJq81+W8r7sooAreNq+xWqqNHPdvyqAgVKmSLiyr35XF810ly+mqZwjSQq24kWcCLs7KQUiJJb2UF8hVg==", - "requires": { - "@waves/ride-js": "^2.0.0", - "@waves/waves-transactions": "4.1.1", - "chai": "^4.2.0", - "chai-as-promised": "^7.1.1", - "tslib": "^1.10.0" + "dependencies": { + "@types/node-fetch": "^2.5.4", + "@waves/bignumber": "0.0.1", + "@waves/ts-types": "^0.3.2", + "node-fetch": "^2.6.0", + "typed-ts-events": "^1.1.1" } }, - "@waves/marshall": { + "node_modules/@waves/js-test-env/node_modules/@waves/ride-js": { + "version": "2.1.2-beta.2", + "license": "MIT", + "dependencies": { + "@waves/ts-lib-crypto": "^1.4.3", + "axios": "^0.19.0" + } + }, + "node_modules/@waves/js-test-env/node_modules/@waves/ts-types": { + "version": "0.3.2" + }, + "node_modules/@waves/js-test-env/node_modules/@waves/waves-transactions": { + "version": "4.1.8-beta2", + "license": "MIT", + "dependencies": { + "@waves/marshall": "0.14.0", + "@waves/node-api-js": "1.1.1", + "@waves/protobuf-serialization": "1.2.10-beta2", + "@waves/ts-lib-crypto": "1.4.3", + "@waves/ts-types": "0.3.2", + "axios": "^0.19.0", + "long": "^4.0.0" + } + }, + "node_modules/@waves/js-test-env/node_modules/bignumber.js": { + "version": "8.1.1", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/@waves/js-test-env/node_modules/node-fetch": { + "version": "2.6.1", + "license": "MIT", + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/@waves/marshall": { "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@waves/marshall/-/marshall-0.14.0.tgz", - "integrity": "sha512-zcmDEwlD3dgzaTX6d2UM57KaGO6DK759b9EfdGa48UzwsjLdqX+v/6hrcqZEPUYMeymD6fO8O4/S+0RDxue8Wg==", - "requires": { + "license": "MIT", + "dependencies": { "@types/base64-js": "^1.2.5", "@types/long": "^4.0.0", "@waves/parse-json-bignumber": "^1.0.1", @@ -771,274 +592,369 @@ "long": "^4.0.0" } }, - "@waves/node-api-js": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@waves/node-api-js/-/node-api-js-0.1.3.tgz", - "integrity": "sha512-KicEbtBsoCWzQSxrxjsUty77XBANukJdGPlcAAlEl9C2EKjXRlSgjhM+99PTh8YPnRM9Pakn3iLNliUrNNXOTQ==", - "requires": { - "@types/node-fetch": "^2.5.4", - "@waves/bignumber": "0.0.1", - "@waves/ts-types": "^0.3.2", - "node-fetch": "^2.6.0" - }, + "node_modules/@waves/node-api-js": { + "version": "1.2.3", "dependencies": { - "node-fetch": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", - "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" - } + "@types/node-fetch": "^2.5.4", + "@waves/bignumber": "^1.1.1", + "@waves/ts-types": "^1.0.5", + "node-fetch": "^2.6.1", + "typed-ts-events": "^1.1.1" } }, - "@waves/parse-json-bignumber": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@waves/parse-json-bignumber/-/parse-json-bignumber-1.0.3.tgz", - "integrity": "sha512-zBHIQUjjMYMQXNQcwJwzNShUZnoTM6JfVJDwa0eDGUVk+JAKVGiXxv/k29Ng9TsIDi97hwVravlPPwfZcy4XXQ==" + "node_modules/@waves/node-api-js/node_modules/node-fetch": { + "version": "2.6.1", + "license": "MIT", + "engines": { + "node": "4.x || >=6.0.0" + } }, - "@waves/protobuf-serialization": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@waves/protobuf-serialization/-/protobuf-serialization-1.2.4.tgz", - "integrity": "sha512-Qrq1Yle0oa4WC+R7KolK4LqdIKZXVlpDvJoT3Q+Sav8Q0oZ84W7zXPNRl99aqQtZ40YTN6JPmpHndDA28pQrlw==", - "requires": { + "node_modules/@waves/parse-json-bignumber": { + "version": "1.0.3" + }, + "node_modules/@waves/protobuf-serialization": { + "version": "1.2.10-beta2", + "license": "MIT", + "dependencies": { "@types/long": "^4.0.0", "protobufjs": "^6.8.8" } }, - "@waves/ride-js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@waves/ride-js/-/ride-js-2.0.0.tgz", - "integrity": "sha512-YfbikXNBdJeOWrwjSaWs1+cM25Sw3SdyMplhO4yw7101Aa+iqEouDyZKipK+CzyjpXVXXddPlCbJY9spA0dfMg==", - "requires": { - "@waves/ts-lib-crypto": "^1.4.3", - "axios": "^0.19.0" + "node_modules/@waves/protobuf-serialization/node_modules/protobufjs": { + "version": "6.11.2", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/@waves/ride-js": { + "version": "2.2.0-beta.5", + "resolved": "https://registry.npmjs.org/@waves/ride-js/-/ride-js-2.2.0-beta.5.tgz", + "integrity": "sha512-vJcleq4/wy7Vc/mRhMD3VvrfaCtghnFRr/B16zxabx5tIokq7jtl7jyJ+L6H4UZfyMbl8YGtGBRkNmAx66tQYw==", "dependencies": { - "@waves/ts-lib-crypto": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@waves/ts-lib-crypto/-/ts-lib-crypto-1.4.3.tgz", - "integrity": "sha512-2pKgyvtLapgM5vpaUEYzX7NYe2bkB+HdWn9W/4d7UFKwyg6zoOYhRQWyb6GuLi3OLHTETgiqpcMZvciFA0Ds6g==", - "requires": { - "js-sha3": "^0.8.0", - "node-forge": "^0.8.5" - } - } + "@waves/ts-lib-crypto": "^1.4.3", + "axios": "^0.19.0" } }, - "@waves/ride-language-server": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@waves/ride-language-server/-/ride-language-server-1.0.0.tgz", - "integrity": "sha512-f7KhD7W60KmrKtG3yK2Hxh/VpAZvkiV12Hv6/PsIcGmI7iHh59ApyzwXmDzYf0UTjjbHT2S/c6YETpywsfowkg==", - "requires": { - "@waves/ride-js": "^2.0.0", + "node_modules/@waves/ride-language-server": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "@waves/ride-js": "^2.1.3-beta.1", "vscode-languageserver": "^4.1.3" }, + "engines": { + "node": "*" + } + }, + "node_modules/@waves/ride-language-server/node_modules/@waves/ride-js": { + "version": "2.1.4", + "license": "MIT", "dependencies": { - "@waves/ride-js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@waves/ride-js/-/ride-js-2.0.0.tgz", - "integrity": "sha512-YfbikXNBdJeOWrwjSaWs1+cM25Sw3SdyMplhO4yw7101Aa+iqEouDyZKipK+CzyjpXVXXddPlCbJY9spA0dfMg==", - "requires": { - "@waves/ts-lib-crypto": "^1.4.3", - "axios": "^0.19.0" - } - }, - "@waves/ts-lib-crypto": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@waves/ts-lib-crypto/-/ts-lib-crypto-1.4.3.tgz", - "integrity": "sha512-2pKgyvtLapgM5vpaUEYzX7NYe2bkB+HdWn9W/4d7UFKwyg6zoOYhRQWyb6GuLi3OLHTETgiqpcMZvciFA0Ds6g==", - "requires": { - "js-sha3": "^0.8.0", - "node-forge": "^0.8.5" - } - } + "@waves/ts-lib-crypto": "^1.4.3", + "axios": "^0.19.0" } }, - "@waves/signer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@waves/signer/-/signer-0.1.2.tgz", - "integrity": "sha512-16DsSMosbTDa0PQYRbVtu0aTWRfhShToOizCqb6celcuPHxmr9KAN171Mqc2qeDkMYxtB7m4cwLxXaApA4woZw==", - "requires": { - "@waves/node-api-js": "^0.1.3", - "@waves/ts-types": "^0.3.2" + "node_modules/@waves/signer": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "@types/ramda": "^0.27.32", + "@waves/client-logs": "^1.0.0", + "@waves/node-api-js": "^1.2.0", + "@waves/ts-lib-crypto": "^1.4.3", + "@waves/ts-types": "^1.0.0", + "ramda": "^0.27.1" } }, - "@waves/ts-lib-crypto": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@waves/ts-lib-crypto/-/ts-lib-crypto-1.4.2.tgz", - "integrity": "sha512-jRLN26IaqoEIMxvJtO5geOUc18A1JoSuH9wPuw8wfIBjMq8Mw7Y/k3zT+d99lKuaMED9IrDyGX5bdcxe8FFGsQ==", - "requires": { + "node_modules/@waves/signer/node_modules/@types/ramda": { + "version": "0.27.44", + "license": "MIT", + "dependencies": { + "ts-toolbelt": "^6.15.1" + } + }, + "node_modules/@waves/signer/node_modules/ramda": { + "version": "0.27.1", + "license": "MIT" + }, + "node_modules/@waves/ts-lib-crypto": { + "version": "1.4.3", + "license": "MIT", + "dependencies": { "js-sha3": "^0.8.0", "node-forge": "^0.8.5" } }, - "@waves/ts-types": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@waves/ts-types/-/ts-types-0.3.2.tgz", - "integrity": "sha512-HMP8498rjlQ4Yslpzxnd0XFw6JPRmlQjmTFUZjsUMQpqJ5+4+xXF50TjKcDp/poteJLK4hPVx10B0kZoL+8xWQ==" + "node_modules/@waves/ts-types": { + "version": "1.0.5" }, - "@waves/tx-json-schemas": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@waves/tx-json-schemas/-/tx-json-schemas-1.2.0.tgz", - "integrity": "sha512-D1l777Xf8W07w+2NtPPJ+HPAlvj9RnoTwXCvf2qBbWJiX+pTULQ92udujcsLy+Rt0yzuiNwwK4FthIe6D08sTA==", - "requires": { - "@waves/waves-transactions": "^4.1.0", + "node_modules/@waves/tx-json-schemas": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@waves/tx-json-schemas/-/tx-json-schemas-1.2.4.tgz", + "integrity": "sha512-EyaSeBxWR3Xrr3R9fjtGUWS+JaCg2p4XpvkuG07eySdlj/lYE0nsmqWjIBakfcfs27qfXoDxanCRXHnI0j/HrA==", + "dependencies": { + "@waves/waves-transactions": "4.1.8", "ajv": "^6.10.0" } }, - "@waves/waves-browser-bus": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@waves/waves-browser-bus/-/waves-browser-bus-0.2.4.tgz", - "integrity": "sha512-cgo3NAvMCtVhqEMBEqc9ldRvrSW7QR2bL5XvpeNZWeLs7Ghc1LYa07x8yS0ng6H96RuN83+ZZ/yBRTiAehjowA==", - "requires": { - "@types/node": "^11.9.4", - "typed-ts-events": "^1.0.5" - }, + "node_modules/@waves/tx-json-schemas/node_modules/@waves/bignumber": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@waves/bignumber/-/bignumber-0.0.1.tgz", + "integrity": "sha512-+bQCa8fPCYdkLtwKsKtgbvDD7MzZTv6bc2ZpGMqn9uq+RjO8Qf4XSrs0DVhtWWhCHplkVIqOeS4bzgW1i3P7rw==", "dependencies": { - "@types/node": { - "version": "11.15.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-11.15.12.tgz", - "integrity": "sha512-iefeBfpmhoYaZfj+gJM5z9H9eiTwhuzhPsJgH/flx4HP2SBI2FNDra1D3vKljqPLGDr9Cazvh9gP9Xszc30ncA==" - } + "@types/bignumber.js": "^5.0.0", + "bignumber.js": "^8.1.1" } }, - "@waves/waves-transactions": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@waves/waves-transactions/-/waves-transactions-4.1.1.tgz", - "integrity": "sha512-nUPCHONlJS1Ina7jgJjdLPJCsOo+HsWXZuoWI9cguWjhOkS1n6y7HUeZOqshfxPtdVaj5YX0zh+1SySg3obGyw==", - "requires": { - "@waves/marshall": "^0.14.0", - "@waves/node-api-js": "1.1.1", - "@waves/protobuf-serialization": "^1.2.4", - "@waves/ts-lib-crypto": "^1.4.2", + "node_modules/@waves/tx-json-schemas/node_modules/@waves/node-api-js": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@waves/node-api-js/-/node-api-js-1.1.1.tgz", + "integrity": "sha512-mlDtV5xlbYTvZ6sdBk7yf4ZrXgkc5vqV/BEPLtc5RW7boWx0b4E8/of2SIf+G9VY2NvDTOtuu7jGsK3IEys8NQ==", + "dependencies": { + "@types/node-fetch": "^2.5.4", + "@waves/bignumber": "0.0.1", "@waves/ts-types": "^0.3.2", - "long": "^4.0.0" - }, + "node-fetch": "^2.6.0", + "typed-ts-events": "^1.1.1" + } + }, + "node_modules/@waves/tx-json-schemas/node_modules/@waves/protobuf-serialization": { + "version": "1.2.9-SNAPSHOT", + "resolved": "https://registry.npmjs.org/@waves/protobuf-serialization/-/protobuf-serialization-1.2.9-SNAPSHOT.tgz", + "integrity": "sha512-UlMVA8koDV5xKz9kB1rno4KftNaK5nFeJc9dyZVVicKQweEpGhwetUD7yxLuYMIMccqMKyNsBUC207MMs6ohFQ==", "dependencies": { - "@waves/node-api-js": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@waves/node-api-js/-/node-api-js-1.1.1.tgz", - "integrity": "sha512-mlDtV5xlbYTvZ6sdBk7yf4ZrXgkc5vqV/BEPLtc5RW7boWx0b4E8/of2SIf+G9VY2NvDTOtuu7jGsK3IEys8NQ==", - "requires": { - "@types/node-fetch": "^2.5.4", - "@waves/bignumber": "0.0.1", - "@waves/ts-types": "^0.3.2", - "node-fetch": "^2.6.0", - "typed-ts-events": "^1.1.1" - } - }, - "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" - } + "@types/long": "^4.0.0", + "protobufjs": "^6.8.8" } }, - "@waves/waveskeeper-types": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@waves/waveskeeper-types/-/waveskeeper-types-0.0.2.tgz", - "integrity": "sha512-iU719ZKImUy9KOz7FM4NV54Kzwc5SP2TlZd2dP0d7GsMyvSo4cSi8HrFziYJAAKfGaV9M63eAsX9ylRHdgOOvg==" + "node_modules/@waves/tx-json-schemas/node_modules/@waves/ts-types": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@waves/ts-types/-/ts-types-0.3.2.tgz", + "integrity": "sha512-HMP8498rjlQ4Yslpzxnd0XFw6JPRmlQjmTFUZjsUMQpqJ5+4+xXF50TjKcDp/poteJLK4hPVx10B0kZoL+8xWQ==" }, - "@webassemblyjs/ast": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", - "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5" + "node_modules/@waves/tx-json-schemas/node_modules/@waves/waves-transactions": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@waves/waves-transactions/-/waves-transactions-4.1.8.tgz", + "integrity": "sha512-pTdGs5/pvrXWaV4kxSkhWb6ir/g2FEhLV7KDyfRhlwxMtA3DjK8KDewmKbMw9kOLGy4g/FlfyhgKY6OPdzbf5w==", + "dependencies": { + "@waves/marshall": "0.14.0", + "@waves/node-api-js": "1.1.1", + "@waves/protobuf-serialization": "1.2.9-SNAPSHOT", + "@waves/ts-lib-crypto": "1.4.3", + "@waves/ts-types": "0.3.2", + "axios": "^0.19.0", + "long": "^4.0.0" } }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", - "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==", - "dev": true + "node_modules/@waves/tx-json-schemas/node_modules/bignumber.js": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-8.1.1.tgz", + "integrity": "sha512-QD46ppGintwPGuL1KqmwhR0O+N2cZUg8JG/VzwI2e28sM9TqHjQB10lI4QAaMHVbLzwVLLAwEglpKPViWX+5NQ==", + "engines": { + "node": "*" + } }, - "@webassemblyjs/helper-api-error": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", - "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==", - "dev": true + "node_modules/@waves/tx-json-schemas/node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } }, - "@webassemblyjs/helper-buffer": { + "node_modules/@waves/tx-json-schemas/node_modules/protobufjs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz", + "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/@waves/waves-browser-bus": { + "version": "0.2.6", + "dependencies": { + "@types/node": "^11.9.4", + "typed-ts-events": "^1.0.5" + } + }, + "node_modules/@waves/waves-browser-bus/node_modules/@types/node": { + "version": "11.15.54", + "license": "MIT" + }, + "node_modules/@waves/waves-transactions": { + "version": "4.2.5-beta.1", + "license": "MIT", + "dependencies": { + "@waves/marshall": "^0.14.0", + "@waves/node-api-js": "^1.2.3", + "@waves/protobuf-serialization": "1.4.1-beta.2", + "@waves/ts-lib-crypto": "1.4.3", + "@waves/ts-types": "1.0.6-beta.4", + "axios": "^0.19.0", + "long": "^4.0.0" + } + }, + "node_modules/@waves/waves-transactions/node_modules/@waves/protobuf-serialization": { + "version": "1.4.1-beta.2", + "license": "MIT", + "dependencies": { + "@types/long": "^4.0.0", + "protobufjs": "^6.8.8" + } + }, + "node_modules/@waves/waves-transactions/node_modules/@waves/protobuf-serialization/node_modules/protobufjs": { + "version": "6.11.2", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/@waves/waves-transactions/node_modules/@waves/ts-types": { + "version": "1.0.6-beta.4" + }, + "node_modules/@waves/waveskeeper-types": { + "version": "0.0.6", + "license": "ISC" + }, + "node_modules/@webassemblyjs/ast": { "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", - "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==", - "dev": true + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5" + } }, - "@webassemblyjs/helper-code-frame": { + "node_modules/@webassemblyjs/floating-point-hex-parser": { "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", - "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", - "dev": true, - "requires": { + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.8.5", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.8.5", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-code-frame": { + "version": "1.8.5", + "license": "MIT", + "dependencies": { "@webassemblyjs/wast-printer": "1.8.5" } }, - "@webassemblyjs/helper-fsm": { + "node_modules/@webassemblyjs/helper-fsm": { "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", - "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==", - "dev": true + "license": "ISC" }, - "@webassemblyjs/helper-module-context": { + "node_modules/@webassemblyjs/helper-module-context": { "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", - "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@webassemblyjs/ast": "1.8.5", "mamacro": "^0.0.3" } }, - "@webassemblyjs/helper-wasm-bytecode": { + "node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", - "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==", - "dev": true + "license": "MIT" }, - "@webassemblyjs/helper-wasm-section": { + "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", - "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/helper-buffer": "1.8.5", "@webassemblyjs/helper-wasm-bytecode": "1.8.5", "@webassemblyjs/wasm-gen": "1.8.5" } }, - "@webassemblyjs/ieee754": { + "node_modules/@webassemblyjs/ieee754": { "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", - "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, - "@webassemblyjs/leb128": { + "node_modules/@webassemblyjs/leb128": { "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", - "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@xtuc/long": "4.2.2" } }, - "@webassemblyjs/utf8": { + "node_modules/@webassemblyjs/utf8": { "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", - "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==", - "dev": true + "license": "MIT" }, - "@webassemblyjs/wasm-edit": { + "node_modules/@webassemblyjs/wasm-edit": { "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", - "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/helper-buffer": "1.8.5", "@webassemblyjs/helper-wasm-bytecode": "1.8.5", @@ -1049,12 +965,10 @@ "@webassemblyjs/wast-printer": "1.8.5" } }, - "@webassemblyjs/wasm-gen": { + "node_modules/@webassemblyjs/wasm-gen": { "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", - "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/helper-wasm-bytecode": "1.8.5", "@webassemblyjs/ieee754": "1.8.5", @@ -1062,24 +976,20 @@ "@webassemblyjs/utf8": "1.8.5" } }, - "@webassemblyjs/wasm-opt": { + "node_modules/@webassemblyjs/wasm-opt": { "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", - "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/helper-buffer": "1.8.5", "@webassemblyjs/wasm-gen": "1.8.5", "@webassemblyjs/wasm-parser": "1.8.5" } }, - "@webassemblyjs/wasm-parser": { + "node_modules/@webassemblyjs/wasm-parser": { "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", - "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/helper-api-error": "1.8.5", "@webassemblyjs/helper-wasm-bytecode": "1.8.5", @@ -1088,12 +998,10 @@ "@webassemblyjs/utf8": "1.8.5" } }, - "@webassemblyjs/wast-parser": { + "node_modules/@webassemblyjs/wast-parser": { "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", - "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/floating-point-hex-parser": "1.8.5", "@webassemblyjs/helper-api-error": "1.8.5", @@ -1102,347 +1010,362 @@ "@xtuc/long": "4.2.2" } }, - "@webassemblyjs/wast-printer": { + "node_modules/@webassemblyjs/wast-printer": { "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", - "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/wast-parser": "1.8.5", "@xtuc/long": "4.2.2" } }, - "@xtuc/ieee754": { + "node_modules/@xtuc/ieee754": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true + "license": "BSD-3-Clause" }, - "@xtuc/long": { + "node_modules/@xtuc/long": { "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true + "license": "Apache-2.0" }, - "accepts": { + "node_modules/accepts": { "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "mime-types": "~2.1.24", "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" } }, - "acorn": { + "node_modules/acorn": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", - "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==" + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } }, - "acorn-walk": { + "node_modules/acorn-walk": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", - "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } }, - "add-dom-event-listener": { + "node_modules/add-dom-event-listener": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz", - "integrity": "sha512-WCxx1ixHT0GQU9hb0KI/mhgRQhnU+U3GvwY6ZvVjYq8rsihIGoaIOUbY0yMPBxLH5MDtr0kz3fisWGNcbWW7Jw==", - "requires": { + "license": "MIT", + "dependencies": { "object-assign": "4.x" } }, - "address": { + "node_modules/address": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/address/-/address-1.0.3.tgz", - "integrity": "sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.12.0" + } }, - "aggregate-error": { + "node_modules/aggregate-error": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", - "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", - "requires": { - "fast-deep-equal": "^2.0.1", + "node_modules/ajv": { + "version": "6.12.6", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "ajv-errors": { + "node_modules/ajv-errors": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true + "license": "MIT", + "peerDependencies": { + "ajv": ">=5.0.0" + } }, - "ajv-keywords": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", - "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", - "dev": true + "node_modules/ajv-keywords": { + "version": "3.5.2", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } }, - "alphanum-sort": { + "node_modules/alphanum-sort": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true + "dev": true, + "license": "MIT" }, - "ansi-colors": { + "node_modules/ansi-colors": { "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "ansi-escapes": { + "node_modules/ansi-escapes": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "ansi-html": { + "node_modules/ansi-html": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" + } }, - "ansi-regex": { + "node_modules/ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "ansi-styles": { + "node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { + "dev": true, + "license": "MIT", + "dependencies": { "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "anymatch": { + "node_modules/anymatch": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { + "license": "ISC", + "dependencies": { "micromatch": "^3.1.4", "normalize-path": "^2.1.1" - }, + } + }, + "node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "license": "MIT", "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "aproba": { + "node_modules/aproba": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true + "license": "ISC" }, - "argparse": { + "node_modules/argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "sprintf-js": "~1.0.2" } }, - "arr-diff": { + "node_modules/arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "arr-flatten": { + "node_modules/arr-flatten": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "arr-union": { + "node_modules/arr-union": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "array-filter": { + "node_modules/array-filter": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=", - "dev": true + "dev": true, + "license": "MIT" }, - "array-flatten": { + "node_modules/array-flatten": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true + "dev": true, + "license": "MIT" }, - "array-map": { + "node_modules/array-map": { "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=", - "dev": true + "dev": true, + "license": "MIT" }, - "array-reduce": { + "node_modules/array-reduce": { "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=", - "dev": true + "dev": true, + "license": "MIT" }, - "array-union": { + "node_modules/array-union": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "array-uniq": { + "node_modules/array-uniq": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "array-unique": { + "node_modules/array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "arrify": { + "node_modules/arrify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "asap": { + "node_modules/asap": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + "license": "MIT" }, - "asn1": { + "node_modules/asn1": { "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "license": "MIT", "optional": true, - "requires": { + "dependencies": { "safer-buffer": "~2.1.0" } }, - "asn1.js": { + "node_modules/asn1.js": { "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "bn.js": "^4.0.0", "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" } }, - "assert": { + "node_modules/assert": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "object-assign": "^4.1.1", "util": "0.10.3" - }, + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "license": "ISC" + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "license": "MIT", "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } + "inherits": "2.0.1" } }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "optional": true - }, - "assertion-error": { + "node_modules/assertion-error": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" + "license": "MIT", + "engines": { + "node": "*" + } }, - "assign-symbols": { + "node_modules/assign-symbols": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "async": { + "node_modules/async": { "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "lodash": "^4.17.14" } }, - "async-each": { + "node_modules/async-each": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true + "license": "MIT" }, - "async-limiter": { + "node_modules/async-limiter": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true + "dev": true, + "license": "MIT" }, - "asynckit": { + "node_modules/asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "license": "MIT" }, - "atob": { + "node_modules/atob": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true + "license": "(MIT OR Apache-2.0)", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } }, - "autoprefixer": { + "node_modules/autoprefixer": { "version": "9.7.3", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.3.tgz", - "integrity": "sha512-8T5Y1C5Iyj6PgkPSFd0ODvK9DIleuPKUPYniNxybS47g2k2wFgLZ46lGQHlBuGKIAEV8fbCDfKCCRS1tvOgc3Q==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "browserslist": "^4.8.0", "caniuse-lite": "^1.0.30001012", "chalk": "^2.4.2", @@ -1450,207 +1373,130 @@ "num2fraction": "^1.2.2", "postcss": "^7.0.23", "postcss-value-parser": "^4.0.2" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" } }, - "aws-sign2": { + "node_modules/aws-sign2": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "optional": true + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": "*" + } }, - "aws4": { + "node_modules/aws4": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.0.tgz", - "integrity": "sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A==", + "license": "MIT", "optional": true }, - "axios": { + "node_modules/axios": { "version": "0.19.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.1.tgz", - "integrity": "sha512-Yl+7nfreYKaLRvAvjNPkvfjnQHJM1yLBY3zhqAwcJSwR/6ETkanUgylgtIvkvz0xJ+p/vZuNw8X7Hnb7Whsbpw==", - "requires": { + "license": "MIT", + "dependencies": { "follow-redirects": "1.5.10" } }, - "babel-code-frame": { + "node_modules/babel-code-frame": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "chalk": "^1.1.3", "esutils": "^2.0.2", "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } } }, - "babel-plugin-emotion": { - "version": "10.0.27", - "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.0.27.tgz", - "integrity": "sha512-SUNYcT4FqhOqvwv0z1oeYhqgheU8qrceLojuHyX17ngo7WtWqN5I9l3IGHzf21Xraj465CVzF4IvOlAF+3ed0A==", - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@emotion/hash": "0.7.4", - "@emotion/memoize": "0.7.4", - "@emotion/serialize": "^0.11.15", - "babel-plugin-macros": "^2.0.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^1.0.5", - "find-root": "^1.1.0", - "source-map": "^0.5.7" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } + "node_modules/babel-code-frame/node_modules/ansi-styles": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "babel-plugin-macros": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", - "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", - "requires": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" - }, + "node_modules/babel-code-frame/node_modules/chalk": { + "version": "1.1.3", + "dev": true, + "license": "MIT", "dependencies": { - "cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - } - }, - "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "parse-json": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", - "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1", - "lines-and-columns": "^1.1.6" - } - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" - } + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "babel-plugin-syntax-jsx": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" + "node_modules/babel-code-frame/node_modules/js-tokens": { + "version": "3.0.2", + "dev": true, + "license": "MIT" }, - "babel-runtime": { + "node_modules/babel-code-frame/node_modules/supports-color": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/babel-runtime": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { + "license": "MIT", + "dependencies": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" } }, - "babel-types": { + "node_modules/babel-types": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "requires": { + "license": "MIT", + "dependencies": { "babel-runtime": "^6.26.0", "esutils": "^2.0.2", "lodash": "^4.17.4", "to-fast-properties": "^1.0.3" } }, - "babylon": { + "node_modules/babylon": { "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + "license": "MIT", + "bin": { + "babylon": "bin/babylon.js" + } }, - "babylon-walk": { + "node_modules/babylon-walk": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/babylon-walk/-/babylon-walk-1.0.2.tgz", - "integrity": "sha1-OxWl3btIKni0zpwByLoYFwLZ1s4=", - "requires": { + "license": "MIT", + "dependencies": { "babel-runtime": "^6.11.6", "babel-types": "^6.15.0", "lodash.clone": "^4.5.0" } }, - "bail": { + "node_modules/bail": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.4.tgz", - "integrity": "sha512-S8vuDB4w6YpRhICUDET3guPlQpaJl7od94tpZ0Fvnyp+MKW/HyDTcRDck+29C9g+d/qQHnddRH3+94kZdrW0Ww==" + "license": "MIT" }, - "balanced-match": { + "node_modules/balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "license": "MIT" }, - "base": { + "node_modules/base": { "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", "component-emitter": "^1.2.1", @@ -1659,110 +1505,108 @@ "mixin-deep": "^1.2.0", "pascalcase": "^0.1.1" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "license": "MIT", "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "base64-js": { + "node_modules/base/node_modules/is-data-descriptor": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-descriptor": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64-js": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + "license": "MIT" }, - "batch": { + "node_modules/batch": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true + "dev": true, + "license": "MIT" }, - "bcrypt-pbkdf": { + "node_modules/bcrypt-pbkdf": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "license": "BSD-3-Clause", "optional": true, - "requires": { + "dependencies": { "tweetnacl": "^0.14.3" } }, - "bfj": { + "node_modules/bfj": { "version": "6.1.2", - "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz", - "integrity": "sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "bluebird": "^3.5.5", "check-types": "^8.0.3", "hoopy": "^0.1.4", "tryer": "^1.0.1" + }, + "engines": { + "node": ">= 6.0.0" } }, - "big.js": { + "node_modules/big.js": { "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + "license": "MIT", + "engines": { + "node": "*" + } }, - "bignumber.js": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-8.1.1.tgz", - "integrity": "sha512-QD46ppGintwPGuL1KqmwhR0O+N2cZUg8JG/VzwI2e28sM9TqHjQB10lI4QAaMHVbLzwVLLAwEglpKPViWX+5NQ==" + "node_modules/bignumber.js": { + "version": "9.0.1", + "license": "MIT", + "engines": { + "node": "*" + } }, - "binary-extensions": { + "node_modules/binary-extensions": { "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "bip39": { + "node_modules/bip39": { "version": "2.6.0", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.6.0.tgz", - "integrity": "sha512-RrnQRG2EgEoqO24ea+Q/fftuPUZLmrEM3qNhhGsA3PbaXaCW791LTzPuVyx/VprXQcTbPJ3K3UeTna8ZnVl2sg==", - "requires": { + "license": "ISC", + "dependencies": { "create-hash": "^1.1.0", "pbkdf2": "^3.0.9", "randombytes": "^2.0.1", @@ -1770,24 +1614,19 @@ "unorm": "^1.3.3" } }, - "bluebird": { + "node_modules/bluebird": { "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true + "license": "MIT" }, - "bn.js": { + "node_modules/bn.js": { "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true + "license": "MIT" }, - "body-parser": { + "node_modules/body-parser": { "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "bytes": "3.1.0", "content-type": "~1.0.4", "debug": "2.6.9", @@ -1799,68 +1638,61 @@ "raw-body": "2.4.0", "type-is": "~1.6.17" }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - } + "ms": "2.0.0" } }, - "bonjour": { + "node_modules/body-parser/node_modules/qs": { + "version": "6.7.0", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/bonjour": { "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "array-flatten": "^2.1.0", "deep-equal": "^1.0.1", "dns-equal": "^1.0.0", "dns-txt": "^2.0.2", "multicast-dns": "^6.0.1", "multicast-dns-service-types": "^1.1.0" - }, - "dependencies": { - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - } } }, - "boolbase": { + "node_modules/bonjour/node_modules/array-flatten": { + "version": "2.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/boolbase": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true + "dev": true, + "license": "ISC" }, - "brace-expansion": { + "node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "braces": { + "node_modules/braces": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", "extend-shallow": "^2.0.1", @@ -1872,36 +1704,33 @@ "split-string": "^3.0.2", "to-regex": "^3.0.1" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "license": "MIT", "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "brorand": { + "node_modules/brorand": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true + "license": "MIT" }, - "browser-stdout": { + "node_modules/browser-stdout": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true + "dev": true, + "license": "ISC" }, - "browserify-aes": { + "node_modules/browserify-aes": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", "create-hash": "^1.1.0", @@ -1910,45 +1739,37 @@ "safe-buffer": "^5.0.1" } }, - "browserify-cipher": { + "node_modules/browserify-cipher": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "browserify-aes": "^1.0.4", "browserify-des": "^1.0.0", "evp_bytestokey": "^1.0.0" } }, - "browserify-des": { + "node_modules/browserify-des": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "cipher-base": "^1.0.1", "des.js": "^1.0.0", "inherits": "^2.0.1", "safe-buffer": "^5.1.2" } }, - "browserify-rsa": { + "node_modules/browserify-rsa": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "bn.js": "^4.1.0", "randombytes": "^2.0.1" } }, - "browserify-sign": { + "node_modules/browserify-sign": { "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true, - "requires": { + "license": "ISC", + "dependencies": { "bn.js": "^4.1.1", "browserify-rsa": "^4.0.0", "create-hash": "^1.1.0", @@ -1958,79 +1779,77 @@ "parse-asn1": "^5.0.0" } }, - "browserify-zlib": { + "node_modules/browserify-zlib": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "pako": "~1.0.5" } }, - "browserslist": { + "node_modules/browserslist": { "version": "4.8.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.3.tgz", - "integrity": "sha512-iU43cMMknxG1ClEZ2MDKeonKE1CCrFVkQK2AqO2YWFmvIrx4JWrvQ4w4hQez6EpVI8rHTtqh/ruHHDHSOKxvUg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "caniuse-lite": "^1.0.30001017", "electron-to-chromium": "^1.3.322", "node-releases": "^1.1.44" + }, + "bin": { + "browserslist": "cli.js" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" } }, - "buffer": { + "node_modules/buffer": { "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "base64-js": "^1.0.2", "ieee754": "^1.1.4", "isarray": "^1.0.0" } }, - "buffer-from": { + "node_modules/buffer-from": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true + "license": "MIT" }, - "buffer-indexof": { + "node_modules/buffer-indexof": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true + "dev": true, + "license": "MIT" }, - "buffer-xor": { + "node_modules/buffer-xor": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true + "license": "MIT" }, - "builtin-modules": { + "node_modules/builtin-modules": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "builtin-status-codes": { + "node_modules/builtin-status-codes": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true + "license": "MIT" }, - "bytes": { + "node_modules/bytes": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } }, - "cacache": { + "node_modules/cacache": { "version": "10.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", - "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", "dev": true, - "requires": { + "license": "ISC", + "dependencies": { "bluebird": "^3.5.1", "chownr": "^1.0.1", "glob": "^7.1.2", @@ -2046,12 +1865,10 @@ "y18n": "^4.0.0" } }, - "cache-base": { + "node_modules/cache-base": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", "get-value": "^2.0.6", @@ -2061,145 +1878,153 @@ "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "caller-callsite": { + "node_modules/caller-callsite": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "callsites": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "caller-path": { + "node_modules/caller-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "caller-callsite": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "callsites": { + "node_modules/callsites": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "camel-case": { + "node_modules/camel-case": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "no-case": "^2.2.0", "upper-case": "^1.1.1" } }, - "camelcase": { + "node_modules/camelcase": { "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "caniuse-api": { + "node_modules/caniuse-api": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "browserslist": "^4.0.0", "caniuse-lite": "^1.0.0", "lodash.memoize": "^4.1.2", "lodash.uniq": "^4.5.0" } }, - "caniuse-lite": { + "node_modules/caniuse-lite": { "version": "1.0.30001020", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001020.tgz", - "integrity": "sha512-yWIvwA68wRHKanAVS1GjN8vajAv7MBFshullKCeq/eKpK7pJBVDgFFEqvgWTkcP2+wIDeQGYFRXECjKZnLkUjA==", - "dev": true + "dev": true, + "license": "CC-BY-4.0" }, - "caseless": { + "node_modules/caseless": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "license": "Apache-2.0", "optional": true }, - "chai": { + "node_modules/chai": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", - "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", - "requires": { + "license": "MIT", + "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", "deep-eql": "^3.0.1", "get-func-name": "^2.0.0", "pathval": "^1.1.0", "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" } }, - "chai-as-promised": { + "node_modules/chai-as-promised": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", - "requires": { + "license": "WTFPL", + "dependencies": { "check-error": "^1.0.2" + }, + "peerDependencies": { + "chai": ">= 2.1.2 < 5" } }, - "chalk": { + "node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { + "dev": true, + "license": "MIT", + "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "character-entities": { + "node_modules/character-entities": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.3.tgz", - "integrity": "sha512-yB4oYSAa9yLcGyTbB4ItFwHw43QHdH129IJ5R+WvxOkWlyFnR5FAaBNnUq4mcxsTVZGh28bHoeTHMKXH1wZf3w==" + "license": "MIT" }, - "character-entities-legacy": { + "node_modules/character-entities-legacy": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.3.tgz", - "integrity": "sha512-YAxUpPoPwxYFsslbdKkhrGnXAtXoHNgYjlBM3WMXkWGTl5RsY3QmOyhwAgL8Nxm9l5LBThXGawxKPn68y6/fww==" + "license": "MIT" }, - "character-reference-invalid": { + "node_modules/character-reference-invalid": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.3.tgz", - "integrity": "sha512-VOq6PRzQBam/8Jm6XBGk2fNEnHXAdGd6go0rtd4weAGECBamHDwwCQSOT12TACIYUZegUXnV6xBXqUssijtxIg==" + "license": "MIT" }, - "chardet": { + "node_modules/chardet": { "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "dev": true + "dev": true, + "license": "MIT" }, - "check-error": { + "node_modules/check-error": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=" + "license": "MIT", + "engines": { + "node": "*" + } }, - "check-types": { + "node_modules/check-types": { "version": "8.0.3", - "resolved": "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz", - "integrity": "sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==", - "dev": true + "dev": true, + "license": "MIT" }, - "chokidar": { + "node_modules/chokidar": { "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "anymatch": "^2.0.0", "async-each": "^1.0.1", "braces": "^2.3.2", - "fsevents": "^1.2.7", "glob-parent": "^3.1.0", "inherits": "^2.0.3", "is-binary-path": "^1.0.0", @@ -2208,262 +2033,268 @@ "path-is-absolute": "^1.0.0", "readdirp": "^2.2.1", "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" } }, - "chownr": { + "node_modules/chownr": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", - "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", - "dev": true + "license": "ISC" }, - "chrome-trace-event": { + "node_modules/chrome-trace-event": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "tslib": "^1.9.0" + }, + "engines": { + "node": ">=6.0" } }, - "cipher-base": { + "node_modules/cipher-base": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "requires": { + "license": "MIT", + "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" } }, - "class-utils": { + "node_modules/class-utils": { "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "arr-union": "^3.1.0", "define-property": "^0.2.5", "isobject": "^3.0.0", "static-extend": "^0.1.1" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "license": "MIT", "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "classnames": { + "node_modules/classnames": { "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + "license": "MIT" }, - "clean-css": { + "node_modules/clean-css": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", - "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 4.0" } }, - "clean-stack": { + "node_modules/clean-stack": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "clean-webpack-plugin": { + "node_modules/clean-webpack-plugin": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-1.0.1.tgz", - "integrity": "sha512-gvwfMsqu3HBgTVvaBa1H3AZKO03CHpr5uP92SPIktP3827EovAitwW+1xoqXyTxCuXnLYpMHG5ytS4AoukHDWA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "rimraf": "^2.6.1" } }, - "cli-cursor": { + "node_modules/cli-cursor": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "cli-width": { + "node_modules/cli-width": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true + "dev": true, + "license": "ISC" }, - "cliui": { + "node_modules/cliui": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, - "requires": { + "license": "ISC", + "dependencies": { "string-width": "^3.1.0", "strip-ansi": "^5.2.0", "wrap-ansi": "^5.1.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "5.2.0", + "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" } }, - "clone": { + "node_modules/clone": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" + "license": "MIT", + "engines": { + "node": ">=0.8" + } }, - "coa": { + "node_modules/coa": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@types/q": "^1.5.1", "chalk": "^2.4.1", "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" } }, - "code-point-at": { + "node_modules/code-point-at": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "collapse-white-space": { + "node_modules/collapse-white-space": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.5.tgz", - "integrity": "sha512-703bOOmytCYAX9cXYqoikYIx6twmFCXsnzRQheBcTG3nzKYBR4P/+wkYeH+Mvj7qUz8zZDtdyzbxfnEi/kYzRQ==" + "license": "MIT" }, - "collection-visit": { + "node_modules/collection-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "color": { + "node_modules/color": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz", - "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "color-convert": "^1.9.1", "color-string": "^1.5.2" } }, - "color-convert": { + "node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { + "dev": true, + "license": "MIT", + "dependencies": { "color-name": "1.1.3" } }, - "color-name": { + "node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "dev": true, + "license": "MIT" }, - "color-string": { + "node_modules/color-string": { "version": "1.5.3", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", - "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" } }, - "combined-stream": { + "node_modules/combined-stream": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { + "license": "MIT", + "dependencies": { "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "commander": { + "node_modules/commander": { "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", - "dev": true + "dev": true, + "license": "MIT" }, - "commondir": { + "node_modules/commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true + "license": "MIT" }, - "component-classes": { + "node_modules/component-classes": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/component-classes/-/component-classes-1.2.6.tgz", - "integrity": "sha1-xkI5TDYYpNiwuJGe/Mu9kw5c1pE=", - "requires": { + "license": "MIT", + "dependencies": { "component-indexof": "0.0.3" } }, - "component-emitter": { + "node_modules/component-emitter": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true + "license": "MIT" }, - "component-indexof": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-indexof/-/component-indexof-0.0.3.tgz", - "integrity": "sha1-EdCRMSI5648yyPJa6csAL/6NPCQ=" + "node_modules/component-indexof": { + "version": "0.0.3" }, - "compressible": { + "node_modules/compressible": { "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" } }, - "compression": { + "node_modules/compression": { "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "accepts": "~1.3.5", "bytes": "3.0.0", "compressible": "~2.0.16", @@ -2472,122 +2303,104 @@ "safe-buffer": "5.1.2", "vary": "~1.1.2" }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", "dependencies": { - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } + "ms": "2.0.0" } }, - "concat-map": { + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "license": "MIT" }, - "concat-stream": { + "node_modules/concat-stream": { "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^2.2.2", "typedarray": "^0.0.6" } }, - "connect-history-api-fallback": { + "node_modules/connect-history-api-fallback": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true + "node_modules/console-browserify": { + "version": "1.2.0" }, - "constants-browserify": { + "node_modules/constants-browserify": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true + "license": "MIT" }, - "content-disposition": { + "node_modules/content-disposition": { "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "safe-buffer": "5.1.2" }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } + "engines": { + "node": ">= 0.6" } }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true + "node_modules/content-disposition/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "requires": { - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } + "node_modules/content-type": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, - "cookie": { + "node_modules/cookie": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, - "cookie-signature": { + "node_modules/cookie-signature": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true + "dev": true, + "license": "MIT" }, - "copy-concurrently": { + "node_modules/copy-concurrently": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "requires": { + "license": "ISC", + "dependencies": { "aproba": "^1.1.1", "fs-write-stream-atomic": "^1.0.8", "iferr": "^0.1.5", @@ -2596,26 +2409,25 @@ "run-queue": "^1.0.0" } }, - "copy-descriptor": { + "node_modules/copy-descriptor": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "copy-to-clipboard": { + "node_modules/copy-to-clipboard": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.2.0.tgz", - "integrity": "sha512-eOZERzvCmxS8HWzugj4Uxl8OJxa7T2k1Gi0X5qavwydHIfuSHq2dTD09LOg/XyGq4Zpb5IsR/2OJ5lbOegz78w==", - "requires": { + "license": "MIT", + "dependencies": { "toggle-selection": "^1.0.6" } }, - "copy-webpack-plugin": { + "node_modules/copy-webpack-plugin": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz", - "integrity": "sha512-Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "cacache": "^10.0.4", "find-cache-dir": "^1.0.0", "globby": "^7.1.1", @@ -2624,45 +2436,46 @@ "minimatch": "^3.0.4", "p-limit": "^1.0.0", "serialize-javascript": "^1.4.0" + }, + "engines": { + "node": ">= 4" } }, - "core-js": { + "node_modules/core-js": { "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" + "hasInstallScript": true, + "license": "MIT" }, - "core-util-is": { + "node_modules/core-util-is": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "license": "MIT" }, - "cosmiconfig": { + "node_modules/cosmiconfig": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "import-fresh": "^2.0.0", "is-directory": "^0.3.1", "js-yaml": "^3.13.1", "parse-json": "^4.0.0" + }, + "engines": { + "node": ">=4" } }, - "create-ecdh": { + "node_modules/create-ecdh": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "bn.js": "^4.1.0", "elliptic": "^6.0.0" } }, - "create-hash": { + "node_modules/create-hash": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "requires": { + "license": "MIT", + "dependencies": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", "md5.js": "^1.3.4", @@ -2670,11 +2483,10 @@ "sha.js": "^2.4.0" } }, - "create-hmac": { + "node_modules/create-hmac": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "requires": { + "license": "MIT", + "dependencies": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", "inherits": "^2.0.1", @@ -2683,23 +2495,20 @@ "sha.js": "^2.4.8" } }, - "cross-spawn": { + "node_modules/cross-spawn": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "lru-cache": "^4.0.1", "shebang-command": "^1.2.0", "which": "^1.2.9" } }, - "crypto-browserify": { + "node_modules/crypto-browserify": { "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "browserify-cipher": "^1.0.0", "browserify-sign": "^4.0.0", "create-ecdh": "^4.0.0", @@ -2711,39 +2520,44 @@ "public-encrypt": "^4.0.0", "randombytes": "^2.0.0", "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" } }, - "css-animation": { + "node_modules/css-animation": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/css-animation/-/css-animation-1.6.1.tgz", - "integrity": "sha512-/48+/BaEaHRY6kNQ2OIPzKf9A6g8WjZYjhiNDNuIVbsm5tXCGIAsHDjB4Xu1C4vXJtUWZo26O68OQkDpNBaPog==", - "requires": { + "license": "MIT", + "dependencies": { "babel-runtime": "6.x", "component-classes": "^1.2.5" } }, - "css-color-names": { + "node_modules/css-color-names": { "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } }, - "css-declaration-sorter": { + "node_modules/css-declaration-sorter": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", - "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "postcss": "^7.0.1", "timsort": "^0.3.0" + }, + "engines": { + "node": ">4" } }, - "css-loader": { + "node_modules/css-loader": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.1.tgz", - "integrity": "sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "babel-code-frame": "^6.26.0", "css-selector-tokenizer": "^0.7.0", "icss-utils": "^2.1.0", @@ -2757,119 +2571,121 @@ "postcss-value-parser": "^3.3.0", "source-list-map": "^2.0.0" }, + "engines": { + "node": ">= 6.9.0 <7.0.0 || >= 8.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/css-loader/node_modules/postcss": { + "version": "6.0.23", + "dev": true, + "license": "MIT", "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" } }, - "css-select": { + "node_modules/css-loader/node_modules/postcss-value-parser": { + "version": "3.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/css-select": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", "dev": true, - "requires": { + "license": "BSD-like", + "dependencies": { "boolbase": "~1.0.0", "css-what": "2.1", "domutils": "1.5.1", "nth-check": "~1.0.1" - }, - "dependencies": { - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - } } }, - "css-select-base-adapter": { + "node_modules/css-select-base-adapter": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", - "dev": true + "dev": true, + "license": "MIT" }, - "css-selector-tokenizer": { + "node_modules/css-select/node_modules/domelementtype": { + "version": "1.3.1", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/css-select/node_modules/domutils": { + "version": "1.5.1", + "dev": true, + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/css-selector-tokenizer": { "version": "0.7.1", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz", - "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "cssesc": "^0.1.0", "fastparse": "^1.1.1", "regexpu-core": "^1.0.0" } }, - "css-tree": { + "node_modules/css-tree": { "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "mdn-data": "2.0.4", "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" } }, - "css-unit-converter": { + "node_modules/css-unit-converter": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz", - "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=", - "dev": true + "dev": true, + "license": "MIT" }, - "css-what": { + "node_modules/css-what": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", - "dev": true + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": "*" + } }, - "cssesc": { + "node_modules/cssesc": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", - "dev": true + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + } }, - "cssnano": { + "node_modules/cssnano": { "version": "4.1.10", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", - "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "cosmiconfig": "^5.0.0", "cssnano-preset-default": "^4.0.7", "is-resolvable": "^1.0.0", "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "cssnano-preset-default": { + "node_modules/cssnano-preset-default": { "version": "4.0.7", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", - "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "css-declaration-sorter": "^4.0.1", "cssnano-util-raw-cache": "^4.0.1", "postcss": "^7.0.0", @@ -2900,177 +2716,199 @@ "postcss-reduce-transforms": "^4.0.2", "postcss-svgo": "^4.0.2", "postcss-unique-selectors": "^4.0.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "cssnano-util-get-arguments": { + "node_modules/cssnano-util-get-arguments": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } }, - "cssnano-util-get-match": { + "node_modules/cssnano-util-get-match": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } }, - "cssnano-util-raw-cache": { + "node_modules/cssnano-util-raw-cache": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", - "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "cssnano-util-same-parent": { + "node_modules/cssnano-util-same-parent": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", - "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } }, - "csso": { + "node_modules/csso": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.2.tgz", - "integrity": "sha512-kS7/oeNVXkHWxby5tHVxlhjizRCSv8QdU7hB2FpdAibDU8FjTAolhNjKNTiLzXtUrKT6HwClE81yXwEk1309wg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "css-tree": "1.0.0-alpha.37" + }, + "engines": { + "node": ">=8.0.0" } }, - "csstype": { + "node_modules/csstype": { "version": "2.6.8", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.8.tgz", - "integrity": "sha512-msVS9qTuMT5zwAGCVm4mxfrZ18BNc6Csd0oJAtiFMZ1FAx1CCvy2+5MDmYoix63LM/6NDbNtodCiGYGmFgO0dA==" + "license": "MIT" }, - "cyclist": { + "node_modules/cyclist": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true + "license": "MIT" }, - "dashdash": { + "node_modules/dashdash": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "license": "MIT", "optional": true, - "requires": { + "dependencies": { "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" } }, - "debounce": { + "node_modules/debounce": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz", - "integrity": "sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg==" + "license": "MIT" }, - "debug": { + "node_modules/debug": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { + "license": "MIT", + "dependencies": { "ms": "2.0.0" } }, - "decamelize": { + "node_modules/decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "decode-uri-component": { + "node_modules/decode-uri-component": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true + "license": "MIT", + "engines": { + "node": ">=0.10" + } }, - "deep-eql": { + "node_modules/deep-eql": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "requires": { + "license": "MIT", + "dependencies": { "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" } }, - "deep-equal": { + "node_modules/deep-equal": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "is-arguments": "^1.0.4", "is-date-object": "^1.0.1", "is-regex": "^1.0.4", "object-is": "^1.0.1", "object-keys": "^1.1.1", "regexp.prototype.flags": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "default-gateway": { + "node_modules/default-gateway": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", "dev": true, - "requires": { + "license": "BSD-2-Clause", + "dependencies": { "execa": "^1.0.0", "ip-regex": "^2.1.0" + }, + "engines": { + "node": ">=6" } }, - "define-properties": { + "node_modules/define-properties": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" } }, - "define-property": { + "node_modules/define-property": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "license": "MIT", "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "del": { + "node_modules/define-property/node_modules/is-data-descriptor": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-descriptor": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "@types/glob": "^7.1.1", "globby": "^6.1.0", "is-path-cwd": "^2.0.0", @@ -3079,265 +2917,268 @@ "pify": "^4.0.1", "rimraf": "^2.6.3" }, + "engines": { + "node": ">=6" + } + }, + "node_modules/del/node_modules/globby": { + "version": "6.1.0", + "dev": true, + "license": "MIT", "dependencies": { - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - } + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "delayed-stream": { + "node_modules/del/node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/pify": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } }, - "depd": { + "node_modules/depd": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, - "des.js": { + "node_modules/des.js": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" } }, - "destroy": { + "node_modules/destroy": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true + "dev": true, + "license": "MIT" }, - "detect-file": { + "node_modules/detect-file": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "detect-node": { + "node_modules/detect-node": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", - "dev": true + "dev": true, + "license": "ISC" }, - "detect-port-alt": { + "node_modules/detect-port-alt": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "address": "^1.0.1", "debug": "^2.6.0" }, + "bin": { + "detect": "bin/detect-port", + "detect-port": "bin/detect-port" + }, + "engines": { + "node": ">= 4.2.1" + } + }, + "node_modules/detect-port-alt/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } + "ms": "2.0.0" } }, - "diff": { + "node_modules/diff": { "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } }, - "diffie-hellman": { + "node_modules/diffie-hellman": { "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", "randombytes": "^2.0.0" } }, - "dir-glob": { + "node_modules/dir-glob": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "dns-equal": { + "node_modules/dns-equal": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true + "dev": true, + "license": "MIT" }, - "dns-packet": { + "node_modules/dns-packet": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "ip": "^1.1.0", "safe-buffer": "^5.0.1" } }, - "dns-txt": { + "node_modules/dns-txt": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "buffer-indexof": "^1.0.0" } }, - "dom-align": { + "node_modules/dom-align": { "version": "1.10.4", - "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.10.4.tgz", - "integrity": "sha512-wytDzaru67AmqFOY4B9GUb/hrwWagezoYYK97D/vpK+ezg+cnuZO0Q2gltUPa7KfNmIqfRIYVCF8UhRDEHAmgQ==" + "license": "MIT" }, - "dom-converter": { + "node_modules/dom-converter": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "utila": "~0.4" } }, - "dom-scroll-into-view": { + "node_modules/dom-scroll-into-view": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/dom-scroll-into-view/-/dom-scroll-into-view-1.2.1.tgz", - "integrity": "sha1-6PNnMt0ImwIBqI14Fdw/iObWbH4=" + "license": "MIT" }, - "dom-serializer": { + "node_modules/dom-serializer": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "requires": { + "license": "MIT", + "dependencies": { "domelementtype": "^2.0.1", "entities": "^2.0.0" } }, - "domain-browser": { + "node_modules/domain-browser": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true + "license": "MIT", + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } }, - "domelementtype": { + "node_modules/domelementtype": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", - "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==" + "license": "BSD-2-Clause" }, - "domhandler": { + "node_modules/domhandler": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.0.0.tgz", - "integrity": "sha512-eKLdI5v9m67kbXQbJSNn1zjh0SDzvzWVWtX+qEI3eMjZw8daH9k8rlj1FZY9memPwjiskQFbe7vHVVJIAqoEhw==", - "requires": { + "license": "BSD-2-Clause", + "dependencies": { "domelementtype": "^2.0.1" + }, + "engines": { + "node": ">= 4" } }, - "domutils": { + "node_modules/domutils": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.0.0.tgz", - "integrity": "sha512-n5SelJ1axbO636c2yUtOGia/IcJtVtlhQbFiVDBZHKV5ReJO1ViX7sFEemtuyoAnBxk5meNSYgA8V4s0271efg==", - "requires": { + "license": "BSD-2-Clause", + "dependencies": { "dom-serializer": "^0.2.1", "domelementtype": "^2.0.1", "domhandler": "^3.0.0" } }, - "dot-prop": { + "node_modules/dot-prop": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "is-obj": "^1.0.0" + }, + "engines": { + "node": ">=4" } }, - "duplexer": { + "node_modules/duplexer": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", "dev": true }, - "duplexify": { + "node_modules/duplexify": { "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", "readable-stream": "^2.0.0", "stream-shift": "^1.0.0" } }, - "ecc-jsbn": { + "node_modules/ecc-jsbn": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "license": "MIT", "optional": true, - "requires": { + "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" } }, - "ee-first": { + "node_modules/ee-first": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true + "dev": true, + "license": "MIT" }, - "ejs": { + "node_modules/ejs": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", - "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==", - "dev": true + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "engines": { + "node": ">=0.10.0" + } }, - "electron-to-chromium": { + "node_modules/electron-to-chromium": { "version": "1.3.332", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.332.tgz", - "integrity": "sha512-AP2HkLhfSOIxP7gDjlyZ4ywGWIcxRMZoU9+JriuVkQe2pSLDdWBsE6+eI6BQOqun1dohLrUTOPHsQLLhhFA7Eg==", - "dev": true + "dev": true, + "license": "ISC" }, - "elliptic": { + "node_modules/elliptic": { "version": "6.5.2", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", - "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "bn.js": "^4.4.0", "brorand": "^1.0.1", "hash.js": "^1.0.0", @@ -3347,88 +3188,78 @@ "minimalistic-crypto-utils": "^1.0.0" } }, - "emoji-regex": { + "node_modules/emoji-regex": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true + "dev": true, + "license": "MIT" }, - "emojis-list": { + "node_modules/emojis-list": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" - }, - "emotion-theming": { - "version": "10.0.27", - "resolved": "https://registry.npmjs.org/emotion-theming/-/emotion-theming-10.0.27.tgz", - "integrity": "sha512-MlF1yu/gYh8u+sLUqA0YuA9JX0P4Hb69WlKc/9OLo+WCXuX6sy/KoIa+qJimgmr2dWqnypYKYPX37esjDBbhdw==", - "requires": { - "@babel/runtime": "^7.5.5", - "@emotion/weak-memoize": "0.2.5", - "hoist-non-react-statics": "^3.3.0" + "license": "MIT", + "engines": { + "node": ">= 0.10" } }, - "encodeurl": { + "node_modules/encodeurl": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } }, - "encoding": { + "node_modules/encoding": { "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "requires": { + "license": "MIT", + "dependencies": { "iconv-lite": "~0.4.13" } }, - "end-of-stream": { + "node_modules/end-of-stream": { "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "once": "^1.4.0" } }, - "enhanced-resolve": { + "node_modules/enhanced-resolve": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz", - "integrity": "sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==", - "dev": true, - "requires": { + "dependencies": { "graceful-fs": "^4.1.2", "memory-fs": "^0.5.0", "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "entities": { + "node_modules/entities": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", - "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" + "license": "BSD-2-Clause" }, - "errno": { + "node_modules/errno": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "requires": { + "license": "MIT", + "dependencies": { "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" } }, - "error-ex": { + "node_modules/error-ex": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { + "dev": true, + "license": "MIT", + "dependencies": { "is-arrayish": "^0.2.1" } }, - "es-abstract": { + "node_modules/es-abstract": { "version": "1.17.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0.tgz", - "integrity": "sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", @@ -3440,109 +3271,133 @@ "object.assign": "^4.1.0", "string.prototype.trimleft": "^2.1.1", "string.prototype.trimright": "^2.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "es-to-primitive": { + "node_modules/es-to-primitive": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "escape-html": { + "node_modules/escape-html": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true + "dev": true, + "license": "MIT" }, - "escape-string-regexp": { + "node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } }, - "eslint-scope": { + "node_modules/eslint-scope": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "requires": { + "license": "BSD-2-Clause", + "dependencies": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" } }, - "esprima": { + "node_modules/esprima": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } }, - "esrecurse": { + "node_modules/esrecurse": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "requires": { + "license": "BSD-2-Clause", + "dependencies": { "estraverse": "^4.1.0" + }, + "engines": { + "node": ">=4.0" } }, - "estraverse": { + "node_modules/estraverse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } }, - "esutils": { + "node_modules/esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } }, - "etag": { + "node_modules/etag": { "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, - "eventemitter3": { + "node_modules/eventemitter3": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz", - "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==", - "dev": true + "dev": true, + "license": "MIT" }, - "events": { + "node_modules/events": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", - "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", - "dev": true + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } }, - "eventsource": { + "node_modules/eventsource": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", - "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", "dev": true, - "requires": { + "dependencies": { "original": ">=0.0.5" + }, + "engines": { + "node": ">=0.8.0" } }, - "evp_bytestokey": { + "node_modules/evp_bytestokey": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" } }, - "execa": { + "node_modules/execa": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "cross-spawn": "^6.0.0", "get-stream": "^4.0.0", "is-stream": "^1.1.0", @@ -3551,34 +3406,37 @@ "signal-exit": "^3.0.0", "strip-eof": "^1.0.0" }, + "engines": { + "node": ">=6" + } + }, + "node_modules/execa/node_modules/cross-spawn": { + "version": "6.0.5", + "dev": true, + "license": "MIT", "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "node_modules/execa/node_modules/semver": { + "version": "5.7.1", "dev": true, - "requires": { + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "license": "MIT", + "dependencies": { "debug": "^2.3.3", "define-property": "^0.2.5", "extend-shallow": "^2.0.1", @@ -3587,51 +3445,53 @@ "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "ms": "2.0.0" } }, - "expand-tilde": { + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-tilde": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "express": { + "node_modules/express": { "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "accepts": "~1.3.7", "array-flatten": "1.1.1", "body-parser": "1.19.0", @@ -3663,79 +3523,78 @@ "utils-merge": "1.0.1", "vary": "~1.1.2" }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } + "ms": "2.0.0" } }, - "extend": { + "node_modules/express/node_modules/path-to-regexp": { + "version": "0.1.7", + "dev": true, + "license": "MIT" + }, + "node_modules/express/node_modules/qs": { + "version": "6.7.0", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/express/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/extend": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "license": "MIT" }, - "extend-shallow": { + "node_modules/extend-shallow": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow/node_modules/is-extendable": { + "version": "1.0.1", + "license": "MIT", "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" } }, - "external-editor": { + "node_modules/external-editor": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "chardet": "^0.4.0", "iconv-lite": "^0.4.17", "tmp": "^0.0.33" + }, + "engines": { + "node": ">=0.12" } }, - "extglob": { + "node_modules/extglob": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "array-unique": "^0.3.2", "define-property": "^1.0.0", "expand-brackets": "^2.1.4", @@ -3745,92 +3604,98 @@ "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "license": "MIT", "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "extsprintf": { + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-data-descriptor": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-descriptor": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extsprintf": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", "optional": true }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "license": "MIT" }, - "fast-json-stable-stringify": { + "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "license": "MIT" }, - "fastparse": { + "node_modules/fastparse": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", - "dev": true + "dev": true, + "license": "MIT" }, - "faye-websocket": { + "node_modules/faye-websocket": { "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", "dev": true, - "requires": { + "license": "Apache-2.0", + "dependencies": { "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" } }, - "fbjs": { + "node_modules/fbjs": { "version": "0.8.17", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", - "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", - "requires": { + "license": "MIT", + "dependencies": { "core-js": "^1.0.0", "isomorphic-fetch": "^2.1.1", "loose-envify": "^1.0.0", @@ -3838,87 +3703,82 @@ "promise": "^7.1.1", "setimmediate": "^1.0.5", "ua-parser-js": "^0.7.18" - }, - "dependencies": { - "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" - } } }, - "figgy-pudding": { + "node_modules/fbjs/node_modules/core-js": { + "version": "1.2.7", + "license": "MIT" + }, + "node_modules/figgy-pudding": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "dev": true + "license": "ISC" }, - "figures": { + "node_modules/figures": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" } }, - "file-loader": { + "node_modules/file-loader": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz", - "integrity": "sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "loader-utils": "^1.0.2", "schema-utils": "^1.0.0" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" } }, - "file-saver": { + "node_modules/file-saver": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.2.tgz", - "integrity": "sha512-Wz3c3XQ5xroCxd1G8b7yL0Ehkf0TC9oYC6buPFkNnU9EnaPlifeAFCyCh+iewXTyFRcg0a6j3J7FmJsIhlhBdw==" - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true + "license": "MIT" }, - "filesize": { + "node_modules/filesize": { "version": "3.5.11", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.5.11.tgz", - "integrity": "sha512-ZH7loueKBoDb7yG9esn1U+fgq7BzlzW6NRi5/rMdxIZ05dj7GFD/Xc5rq2CDt5Yq86CyfSYVyx4242QQNZbx1g==", - "dev": true + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 0.4.0" + } }, - "fill-range": { + "node_modules/fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", "repeat-string": "^1.6.1", "to-regex-range": "^2.1.0" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "license": "MIT", "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "finalhandler": { + "node_modules/finalhandler": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -3927,91 +3787,94 @@ "statuses": "~1.5.0", "unpipe": "~1.0.0" }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } + "ms": "2.0.0" } }, - "find-cache-dir": { + "node_modules/find-cache-dir": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "commondir": "^1.0.1", "make-dir": "^1.0.0", "pkg-dir": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" - }, - "find-up": { + "node_modules/find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "findup-sync": { + "node_modules/findup-sync": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "detect-file": "^1.0.0", "is-glob": "^4.0.0", "micromatch": "^3.0.4", "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" } }, - "flush-write-stream": { + "node_modules/flush-write-stream": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "inherits": "^2.0.3", "readable-stream": "^2.3.6" } }, - "follow-redirects": { + "node_modules/follow-redirects": { "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", - "requires": { + "license": "MIT", + "dependencies": { "debug": "=3.1.0" + }, + "engines": { + "node": ">=4.0" } }, - "for-in": { + "node_modules/for-in": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "forever-agent": { + "node_modules/forever-agent": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "optional": true + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": "*" + } }, - "fork-ts-checker-webpack-plugin": { + "node_modules/fork-ts-checker-webpack-plugin": { "version": "0.4.15", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-0.4.15.tgz", - "integrity": "sha512-qNYuygh2GxXehBvQZ5rI5YlQFn+7ZV6kmkyD9Sgs33dWl73NZdUOB5aCp8v0EXJn176AhPrZP8YCMT3h01fs+g==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "babel-code-frame": "^6.22.0", "chalk": "^2.4.1", "chokidar": "^2.0.4", @@ -4020,656 +3883,10702 @@ "minimatch": "^3.0.4", "resolve": "^1.5.0", "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.11.5" + }, + "peerDependencies": { + "tslint": "^4.0.0 || ^5.0.0", + "typescript": "^2.1.0 || ^3.0.0", + "webpack": "^2.3.0 || ^3.0.0 || ^4.0.0" } }, - "form-data": { + "node_modules/form-data": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "license": "MIT", "optional": true, - "requires": { + "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" } }, - "forwarded": { + "node_modules/forwarded": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, - "fragment-cache": { + "node_modules/fragment-cache": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "fresh": { + "node_modules/fresh": { "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, - "from2": { + "node_modules/from2": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" } }, - "fs-minipass": { + "node_modules/fs-minipass": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, - "requires": { + "license": "ISC", + "dependencies": { "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" } }, - "fs-write-stream-atomic": { + "node_modules/fs-write-stream-atomic": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "requires": { + "license": "ISC", + "dependencies": { "graceful-fs": "^4.1.2", "iferr": "^0.1.5", "imurmurhash": "^0.1.4", "readable-stream": "1 || 2" } }, - "fs.realpath": { + "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "license": "ISC" + }, + "node_modules/function-bind": { + "version": "1.1.1", + "dev": true, + "license": "MIT" }, - "fsevents": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", - "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", + "node_modules/get-caller-file": { + "version": "2.0.5", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/get-stream/node_modules/pump": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "license": "MIT", "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1", - "node-pre-gyp": "*" + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "3.1.0", + "license": "ISC", "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.3", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "3.2.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.3", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "bundled": true, - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.9.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.3.0", + "license": "BSD" + }, + "node_modules/global-modules": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globby": { + "version": "7.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.3", + "license": "ISC" + }, + "node_modules/growl": { + "version": "1.10.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.x" + } + }, + "node_modules/gud": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/gzip-size": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "duplexer": "^0.1.1" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/hammerjs": { + "version": "2.0.8", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/handle-thing": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/har-schema": { + "version": "2.0.0", + "license": "ISC", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.3", + "license": "MIT", + "optional": true, + "dependencies": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hash-base": { + "version": "3.0.4", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/he": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hex-color-regex": { + "version": "1.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/history": { + "version": "4.10.1", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.1", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hoopy": { + "version": "0.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hsl-regex": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/hsla-regex": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/html-comment-regex": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/html-entities": { + "version": "1.2.1", + "dev": true, + "engines": [ + "node >= 0.4.0" + ], + "license": "MIT" + }, + "node_modules/html-minifier": { + "version": "3.5.21", + "dev": true, + "license": "MIT", + "dependencies": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "bin": { + "html-minifier": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/html-to-react": { + "version": "1.4.2", + "license": "MIT", + "dependencies": { + "domhandler": "^3.0", + "htmlparser2": "^4.0", + "lodash.camelcase": "^4.3.0", + "ramda": "^0.26" + }, + "peerDependencies": { + "react": "^16.0" + } + }, + "node_modules/html-webpack-externals-plugin": { + "version": "3.8.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.1.1", + "copy-webpack-plugin": "^4.4.1", + "html-webpack-include-assets-plugin": "^1.0.2" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + }, + "peerDependencies": { + "html-webpack-plugin": "^2.0.0" + } + }, + "node_modules/html-webpack-include-assets-plugin": { + "version": "1.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "glob": "^7.1.3", + "minimatch": "^3.0.4", + "slash": "^2.0.0" + } + }, + "node_modules/html-webpack-include-assets-plugin/node_modules/slash": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/html-webpack-plugin": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "html-minifier": "^3.2.3", + "loader-utils": "^0.2.16", + "lodash": "^4.17.3", + "pretty-error": "^2.0.2", + "tapable": "^1.0.0", + "toposort": "^1.0.0", + "util.promisify": "1.0.0" + }, + "engines": { + "node": ">=6.9" + }, + "peerDependencies": { + "webpack": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/html-webpack-plugin/node_modules/big.js": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/html-webpack-plugin/node_modules/json5": { + "version": "0.5.1", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/html-webpack-plugin/node_modules/loader-utils": { + "version": "0.2.17", + "dev": true, + "license": "MIT", + "dependencies": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + }, + "node_modules/htmlparser2": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^3.0.0", + "domutils": "^2.0.0", + "entities": "^2.0.0" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "dev": true, + "license": "MIT" + }, + "node_modules/http-errors": { + "version": "1.7.2", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/inherits": { + "version": "2.0.3", + "dev": true, + "license": "ISC" + }, + "node_modules/http-parser-js": { + "version": "0.4.10", + "dev": true, + "license": "MIT" + }, + "node_modules/http-proxy": { + "version": "1.18.0", + "dev": true, + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "0.19.1", + "dev": true, + "license": "MIT", + "dependencies": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "license": "MIT", + "optional": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-replace-symbols": { + "version": "1.1.0", + "dev": true, + "license": "ISC" + }, + "node_modules/icss-utils": { + "version": "2.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "postcss": "^6.0.1" + } + }, + "node_modules/icss-utils/node_modules/postcss": { + "version": "6.0.23", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/idb": { + "version": "4.0.5", + "license": "ISC" + }, + "node_modules/identity-img": { + "version": "1.0.0" + }, + "node_modules/ieee754": { + "version": "1.1.13", + "license": "BSD-3-Clause" + }, + "node_modules/iferr": { + "version": "0.1.5", + "license": "MIT" + }, + "node_modules/ignore": { + "version": "3.3.10", + "dev": true, + "license": "MIT" + }, + "node_modules/image-size": { + "version": "0.5.5", + "license": "MIT", + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "license": "MIT" + }, + "node_modules/import-cwd": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "import-from": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-fresh": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-from": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-local/node_modules/find-up": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-local/node_modules/locate-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-local/node_modules/p-limit": { + "version": "2.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local/node_modules/p-locate": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-local/node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/import-local/node_modules/pkg-dir": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/indexes-of": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "license": "ISC" + }, + "node_modules/inflight": { + "version": "1.0.6", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.5", + "dev": true, + "license": "ISC", + "engines": { + "node": "*" + } + }, + "node_modules/inquirer": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + } + }, + "node_modules/inquirer/node_modules/ansi-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/strip-ansi": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/install": { + "version": "0.12.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/internal-ip": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/interpret": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/invert-kv": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/ip": { + "version": "1.1.5", + "dev": true, + "license": "MIT" + }, + "node_modules/ip-regex": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-absolute-url": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-alphabetical": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/is-alphanumerical": { + "version": "1.0.3", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + } + }, + "node_modules/is-arguments": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "license": "MIT" + }, + "node_modules/is-callable": { + "version": "1.1.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-color-stop": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "node_modules/is-data-descriptor": { + "version": "0.1.4", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/is-descriptor": { + "version": "0.1.6", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-directory": { + "version": "0.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/is-number": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-path-inside": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "path-is-inside": "^1.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-promise": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-resolvable": { + "version": "1.1.0", + "dev": true, + "license": "ISC" + }, + "node_modules/is-root": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-svg": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "html-comment-regex": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-symbol": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "license": "MIT", + "optional": true + }, + "node_modules/is-whitespace-character": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/is-windows": { + "version": "1.0.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-word-character": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/is-wsl": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isomorphic-fetch": { + "version": "2.2.1", + "license": "MIT", + "dependencies": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "license": "MIT", + "optional": true + }, + "node_modules/jest-worker": { + "version": "25.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 8.3" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "7.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "license": "MIT" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "3.13.1", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "license": "MIT", + "optional": true + }, + "node_modules/jsesc": { + "version": "0.5.0", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/json-schema": { + "version": "0.2.3", + "optional": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "license": "ISC", + "optional": true + }, + "node_modules/json3": { + "version": "3.3.3", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/json5/node_modules/minimist": { + "version": "1.2.0", + "license": "MIT" + }, + "node_modules/jsonc-parser": { + "version": "2.2.0", + "license": "MIT" + }, + "node_modules/jsonify": { + "version": "0.0.0", + "dev": true, + "license": "Public Domain" + }, + "node_modules/jsprim": { + "version": "1.4.1", + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/jszip": { + "version": "3.2.2", + "license": "(MIT OR GPL-3.0)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "node_modules/killable": { + "version": "1.0.1", + "dev": true, + "license": "ISC" + }, + "node_modules/kind-of": { + "version": "6.0.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/last-call-webpack-plugin": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.5", + "webpack-sources": "^1.1.0" + } + }, + "node_modules/lcid": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "invert-kv": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/less": { + "version": "3.10.3", + "license": "Apache-2.0", + "dependencies": { + "clone": "^2.1.2" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.4.1", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", + "request": "^2.83.0", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "clone": "^2.1.1", + "loader-utils": "^1.1.0", + "pify": "^3.0.0" + }, + "engines": { + "node": ">= 4.8 < 5.0.0 || >= 5.10" + }, + "peerDependencies": { + "less": "^2.3.1 || ^3.0.0", + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/loader-runner": { + "version": "2.4.0", + "license": "MIT", + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/loader-utils": { + "version": "1.2.3", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.15", + "license": "MIT" + }, + "node_modules/lodash-es": { + "version": "4.17.15", + "license": "MIT" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "license": "MIT" + }, + "node_modules/lodash.clone": { + "version": "4.5.0", + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "dev": true, + "license": "MIT" + }, + "node_modules/loglevel": { + "version": "1.6.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-loglevel?utm_medium=referral&utm_source=npm_fund" + } + }, + "node_modules/long": { + "version": "4.0.0", + "license": "Apache-2.0" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "4.1.5", + "dev": true, + "license": "ISC", + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/make-dir": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/make-error": { + "version": "1.3.5", + "dev": true, + "license": "ISC" + }, + "node_modules/mamacro": { + "version": "0.0.3", + "license": "MIT" + }, + "node_modules/map-age-cleaner": { + "version": "0.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/markdown-escapes": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/md5.js": { + "version": "1.3.5", + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/mdast-add-list-metadata": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "unist-util-visit-parents": "1.1.2" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mem": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mem/node_modules/mimic-fn": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/memory-fs": { + "version": "0.5.0", + "license": "MIT", + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/methods": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "3.1.10", + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "devOptional": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.43.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.26", + "license": "MIT", + "dependencies": { + "mime-db": "1.43.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "0.8.2", + "dev": true, + "license": "MIT", + "dependencies": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^4.4.0" + } + }, + "node_modules/mini-store": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "hoist-non-react-statics": "^2.3.1", + "prop-types": "^15.6.0", + "react-lifecycles-compat": "^3.0.4", + "shallowequal": "^1.0.2" + } + }, + "node_modules/mini-store/node_modules/hoist-non-react-statics": { + "version": "2.5.5", + "license": "BSD-3-Clause" + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "license": "ISC" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/minimatch": { + "version": "3.0.4", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "0.0.8", + "license": "MIT" + }, + "node_modules/minipass": { + "version": "3.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.2", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/mississippi": { + "version": "2.0.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "license": "MIT", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.1", + "license": "MIT", + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mobx": { + "version": "5.15.2", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/mobx-react": { + "version": "5.4.4", + "license": "MIT", + "dependencies": { + "hoist-non-react-statics": "^3.0.0", + "react-lifecycles-compat": "^3.0.2" + }, + "peerDependencies": { + "mobx": "^4.0.0 || ^5.0.0", + "react": "^0.13.0 || ^0.14.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/mobx-utils": { + "version": "5.5.2", + "license": "MIT", + "peerDependencies": { + "mobx": "^4.13.1 || ^5.13.1" + } + }, + "node_modules/mocha": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "browser-stdout": "1.3.1", + "commander": "2.15.1", + "debug": "3.1.0", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.5", + "he": "1.1.1", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "supports-color": "5.4.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/mocha/node_modules/commander": { + "version": "2.15.1", + "dev": true, + "license": "MIT" + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/he": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "5.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/monaco-editor": { + "version": "0.18.1", + "license": "MIT" + }, + "node_modules/monaco-editor-core": { + "version": "0.12.0", + "license": "MIT" + }, + "node_modules/monaco-languageclient": { + "version": "0.6.3", + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.3.0", + "monaco-editor-core": "^0.12.0", + "vscode-base-languageclient": "^0.0.1-alpha.5", + "vscode-languageserver-types": "^3.7.0" + } + }, + "node_modules/mousetrap": { + "version": "1.6.3", + "license": "Apache-2.0 WITH LLVM-exception" + }, + "node_modules/mousetrap-global-bind": { + "version": "1.1.0", + "license": "Apache-2.0", + "peerDependencies": { + "mousetrap": "^1.6.0" + } + }, + "node_modules/move-concurrently": { + "version": "1.0.1", + "license": "ISC", + "dependencies": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/multicast-dns": { + "version": "6.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/multicast-dns-service-types": { + "version": "1.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/mutationobserver-shim": { + "version": "0.3.3", + "license": "MIT" + }, + "node_modules/mute-stream": { + "version": "0.0.7", + "dev": true, + "license": "ISC" + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.1", + "license": "MIT" + }, + "node_modules/nice-try": { + "version": "1.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/no-case": { + "version": "2.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "lower-case": "^1.1.1" + } + }, + "node_modules/node-fetch": { + "version": "1.7.3", + "license": "MIT", + "dependencies": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + }, + "node_modules/node-forge": { + "version": "0.8.5", + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/node-libs-browser": { + "version": "2.2.1", + "license": "MIT", + "dependencies": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/punycode": { + "version": "1.4.1", + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "1.1.45", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.3.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "1.9.1", + "dev": true, + "license": "MIT", + "dependencies": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/normalize.css": { + "version": "8.0.1", + "license": "MIT" + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nth-check": { + "version": "1.0.2", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/num2fraction": { + "version": "1.2.2", + "dev": true, + "license": "MIT" + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "license": "MIT", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.7.0", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/on-finished": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/opener": { + "version": "1.5.1", + "dev": true, + "license": "(WTFPL OR MIT)", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/opn": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/optimize-css-assets-webpack-plugin": { + "version": "5.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "cssnano": "^4.1.10", + "last-call-webpack-plugin": "^3.0.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/original": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "url-parse": "^1.4.3" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "license": "MIT" + }, + "node_modules/os-locale": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-defer": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-is-promise": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-limit": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-map": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-retry": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "retry": "^0.12.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pako": { + "version": "1.0.10", + "license": "(MIT AND Zlib)" + }, + "node_modules/parallel-transform": { + "version": "1.2.0", + "license": "MIT", + "dependencies": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/param-case": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^2.2.0" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.5", + "license": "ISC", + "dependencies": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-entities": { + "version": "1.2.2", + "license": "MIT", + "dependencies": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + }, + "node_modules/parse-json": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-browserify": { + "version": "0.0.1", + "license": "MIT" + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "dev": true, + "license": "(WTFPL OR MIT)" + }, + "node_modules/path-key": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "1.8.0", + "license": "MIT", + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/path-to-regexp/node_modules/isarray": { + "version": "0.0.1", + "license": "MIT" + }, + "node_modules/path-type": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pathval": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/pbkdf2": { + "version": "3.0.17", + "license": "MIT", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/perfect-scrollbar": { + "version": "1.4.0", + "license": "MIT" + }, + "node_modules/performance-now": { + "version": "2.1.0", + "license": "MIT" + }, + "node_modules/pify": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-dir": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/portfinder": { + "version": "1.0.25", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.1" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.6", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/portfinder/node_modules/ms": { + "version": "2.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "7.0.26", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + }, + "node_modules/postcss-calc": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "css-unit-converter": "^1.1.1", + "postcss": "^7.0.5", + "postcss-selector-parser": "^5.0.0-rc.4", + "postcss-value-parser": "^3.3.1" + } + }, + "node_modules/postcss-calc/node_modules/postcss-value-parser": { + "version": "3.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-colormin": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-colormin/node_modules/postcss-value-parser": { + "version": "3.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-convert-values": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-convert-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-discard-comments": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-empty": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-flexbugs-fixes": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss": "^7.0.0" + } + }, + "node_modules/postcss-inline-svg": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "css-select": "^1.2.0", + "dom-serializer": "^0.1.0", + "htmlparser2": "^3.9.0", + "postcss": "^6.0.1", + "postcss-value-parser": "^3.2.3" + } + }, + "node_modules/postcss-inline-svg/node_modules/dom-serializer": { + "version": "0.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "node_modules/postcss-inline-svg/node_modules/domelementtype": { + "version": "1.3.1", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/postcss-inline-svg/node_modules/domhandler": { + "version": "2.4.2", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/postcss-inline-svg/node_modules/domutils": { + "version": "1.7.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/postcss-inline-svg/node_modules/entities": { + "version": "1.1.2", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/postcss-inline-svg/node_modules/htmlparser2": { + "version": "3.10.1", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "node_modules/postcss-inline-svg/node_modules/postcss": { + "version": "6.0.23", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-inline-svg/node_modules/postcss-value-parser": { + "version": "3.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-inline-svg/node_modules/readable-stream": { + "version": "3.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-load-config": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/postcss-loader": { + "version": "2.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "loader-utils": "^1.1.0", + "postcss": "^6.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^0.4.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/postcss-loader/node_modules/postcss": { + "version": "6.0.23", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-loader/node_modules/schema-utils": { + "version": "0.4.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "4.0.11", + "dev": true, + "license": "MIT", + "dependencies": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-merge-longhand/node_modules/postcss-value-parser": { + "version": "3.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-merge-rules": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-font-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-minify-gradients": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-gradients/node_modules/postcss-value-parser": { + "version": "3.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-minify-params": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-params/node_modules/postcss-value-parser": { + "version": "3.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-minify-selectors": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "1.2.1", + "dev": true, + "license": "ISC", + "dependencies": { + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-modules-extract-imports/node_modules/postcss": { + "version": "6.0.23", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/postcss": { + "version": "6.0.23", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "1.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-modules-scope/node_modules/postcss": { + "version": "6.0.23", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "1.3.0", + "dev": true, + "license": "ISC", + "dependencies": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-modules-values/node_modules/postcss": { + "version": "6.0.23", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-display-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-normalize-positions": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-positions/node_modules/postcss-value-parser": { + "version": "3.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-repeat-style/node_modules/postcss-value-parser": { + "version": "3.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-normalize-string": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-string/node_modules/postcss-value-parser": { + "version": "3.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-timing-functions/node_modules/postcss-value-parser": { + "version": "3.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-normalize-unicode": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/postcss-value-parser": { + "version": "3.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-normalize-url": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-url/node_modules/normalize-url": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-normalize-url/node_modules/postcss-value-parser": { + "version": "3.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-normalize-whitespace": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-whitespace/node_modules/postcss-value-parser": { + "version": "3.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-ordered-values": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-ordered-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-reduce-initial": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-reduce-transforms/node_modules/postcss-value-parser": { + "version": "3.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-selector-parser": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-selector-parser/node_modules/cssesc": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-svgo/node_modules/postcss-value-parser": { + "version": "3.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-unique-selectors": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss/node_modules/supports-color": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/prepend-http": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pretty-error": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "renderkid": "^2.0.1", + "utila": "~0.4" + } + }, + "node_modules/process": { + "version": "0.11.10", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "license": "MIT" + }, + "node_modules/promise": { + "version": "7.3.1", + "license": "MIT", + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "license": "ISC" + }, + "node_modules/prop-types": { + "version": "15.7.2", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "node_modules/protobufjs": { + "version": "6.8.7", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.0", + "@types/node": "^10.1.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/protobufjs/node_modules/@types/node": { + "version": "10.17.60", + "license": "MIT" + }, + "node_modules/proxy-addr": { + "version": "2.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "dev": true, + "license": "ISC" + }, + "node_modules/psl": { + "version": "1.7.0", + "license": "MIT", + "optional": true + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/pump": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "license": "MIT", + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.5.2", + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/query-string": { + "version": "4.3.4", + "dev": true, + "license": "MIT", + "dependencies": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystringify": { + "version": "2.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/raf": { + "version": "3.4.1", + "license": "MIT", + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/raf-schd": { + "version": "4.0.2", + "license": "MIT" + }, + "node_modules/ramda": { + "version": "0.26.1", + "license": "MIT" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-loader": { + "version": "0.5.1", + "dev": true + }, + "node_modules/rc-align": { + "version": "2.4.5", + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.26.0", + "dom-align": "^1.7.0", + "prop-types": "^15.5.8", + "rc-util": "^4.0.4" + } + }, + "node_modules/rc-animate": { + "version": "2.10.2", + "dependencies": { + "babel-runtime": "6.x", + "classnames": "^2.2.6", + "css-animation": "^1.3.2", + "prop-types": "15.x", + "raf": "^3.4.0", + "rc-util": "^4.15.3", + "react-lifecycles-compat": "^3.0.4" + } + }, + "node_modules/rc-collapse": { + "version": "1.11.8", + "license": "MIT", + "dependencies": { + "classnames": "2.x", + "css-animation": "1.x", + "prop-types": "^15.5.6", + "rc-animate": "2.x", + "react-is": "^16.7.0", + "react-lifecycles-compat": "^3.0.4", + "shallowequal": "^1.1.0" + } + }, + "node_modules/rc-dialog": { + "version": "7.6.0", + "license": "MIT", + "dependencies": { + "babel-runtime": "6.x", + "rc-animate": "2.x", + "rc-util": "^4.16.1" + } + }, + "node_modules/rc-dropdown": { + "version": "2.4.1", + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.26.0", + "classnames": "^2.2.6", + "prop-types": "^15.5.8", + "rc-trigger": "^2.5.1", + "react-lifecycles-compat": "^3.0.2" + } + }, + "node_modules/rc-hammerjs": { + "version": "0.6.9", + "license": "MIT", + "dependencies": { + "babel-runtime": "6.x", + "hammerjs": "^2.0.8", + "prop-types": "^15.5.9" + }, + "peerDependencies": { + "react": "^0.14.3 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/rc-menu": { + "version": "7.5.4", + "license": "MIT", + "dependencies": { + "classnames": "2.x", + "dom-scroll-into-view": "1.x", + "mini-store": "^2.0.0", + "mutationobserver-shim": "^0.3.2", + "rc-animate": "^2.10.1", + "rc-trigger": "^2.3.0", + "rc-util": "^4.13.0", + "resize-observer-polyfill": "^1.5.0", + "shallowequal": "^1.1.0" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-notification": { + "version": "3.3.1", + "license": "MIT", + "dependencies": { + "babel-runtime": "6.x", + "classnames": "2.x", + "prop-types": "^15.5.8", + "rc-animate": "2.x", + "rc-util": "^4.0.4" + } + }, + "node_modules/rc-select": { + "version": "9.2.2", + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.23.0", + "classnames": "2.x", + "component-classes": "1.x", + "dom-scroll-into-view": "1.x", + "prop-types": "^15.5.8", + "raf": "^3.4.0", + "rc-animate": "2.x", + "rc-menu": "^7.3.0", + "rc-trigger": "^2.5.4", + "rc-util": "^4.0.4", + "react-lifecycles-compat": "^3.0.2", + "warning": "^4.0.2" + } + }, + "node_modules/rc-tabs": { + "version": "9.7.0", + "license": "MIT", + "dependencies": { + "@ant-design/create-react-context": "^0.2.4", + "babel-runtime": "6.x", + "classnames": "2.x", + "lodash": "^4.17.5", + "prop-types": "15.x", + "raf": "^3.4.1", + "rc-hammerjs": "~0.6.0", + "rc-util": "^4.0.4", + "react-lifecycles-compat": "^3.0.4", + "resize-observer-polyfill": "^1.5.1", + "warning": "^4.0.3" + }, + "peerDependencies": { + "react": ">=15.0.0" + } + }, + "node_modules/rc-tooltip": { + "version": "3.7.3", + "license": "MIT", + "dependencies": { + "babel-runtime": "6.x", + "prop-types": "^15.5.8", + "rc-trigger": "^2.2.2" + } + }, + "node_modules/rc-tree": { + "version": "1.15.3", + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.23.0", + "classnames": "2.x", + "prop-types": "^15.5.8", + "rc-animate": "^3.0.0-rc.5", + "rc-util": "^4.5.1", + "react-lifecycles-compat": "^3.0.4", + "warning": "^3.0.0" + } + }, + "node_modules/rc-tree/node_modules/rc-animate": { + "version": "3.0.0-rc.6", + "dependencies": { + "babel-runtime": "6.x", + "classnames": "^2.2.5", + "component-classes": "^1.2.6", + "fbjs": "^0.8.16", + "prop-types": "15.x", + "raf": "^3.4.0", + "rc-util": "^4.5.0", + "react-lifecycles-compat": "^3.0.4" + } + }, + "node_modules/rc-tree/node_modules/warning": { + "version": "3.0.0", + "license": "BSD-3-Clause", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/rc-trigger": { + "version": "2.6.5", + "dependencies": { + "babel-runtime": "6.x", + "classnames": "^2.2.6", + "prop-types": "15.x", + "rc-align": "^2.4.0", + "rc-animate": "2.x", + "rc-util": "^4.4.0", + "react-lifecycles-compat": "^3.0.4" + } + }, + "node_modules/rc-util": { + "version": "4.18.1", + "dependencies": { + "add-dom-event-listener": "^1.1.0", + "babel-runtime": "6.x", + "prop-types": "^15.5.10", + "react-lifecycles-compat": "^3.0.4", + "shallowequal": "^1.1.0" + }, + "peerDependencies": { + "react": "^15.0.0 || ^16.0.0", + "react-dom": "^15.0.0 || ^16.0.0" + } + }, + "node_modules/re-resizable": { + "version": "4.11.0", + "license": "MIT" + }, + "node_modules/react": { + "version": "16.12.0", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-copy-to-clipboard": { + "version": "5.0.2", + "license": "MIT", + "dependencies": { + "copy-to-clipboard": "^3", + "prop-types": "^15.5.8" + }, + "peerDependencies": { + "react": "^15.3.0 || ^16.0.0" + } + }, + "node_modules/react-custom-scroll": { + "version": "3.2.2", + "license": "MIT", + "peerDependencies": { + "prop-types": "*", + "react": "*", + "react-dom": "*" + } + }, + "node_modules/react-dev-utils": { + "version": "5.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "address": "1.0.3", + "babel-code-frame": "6.26.0", + "chalk": "1.1.3", + "cross-spawn": "5.1.0", + "detect-port-alt": "1.1.6", + "escape-string-regexp": "1.0.5", + "filesize": "3.5.11", + "global-modules": "1.0.0", + "gzip-size": "3.0.0", + "inquirer": "3.3.0", + "is-root": "1.0.0", + "opn": "5.2.0", + "react-error-overlay": "^4.0.1", + "recursive-readdir": "2.2.1", + "shell-quote": "1.6.1", + "sockjs-client": "1.1.5", + "strip-ansi": "3.0.1", + "text-table": "0.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/react-dev-utils/node_modules/ansi-styles": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dev-utils/node_modules/chalk": { + "version": "1.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dev-utils/node_modules/supports-color": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/react-dom": { + "version": "16.12.0", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.18.0" + }, + "peerDependencies": { + "react": "^16.0.0" + } + }, + "node_modules/react-error-overlay": { + "version": "4.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/react-files": { + "version": "2.4.8", + "license": "MIT", + "peerDependencies": { + "react": "^15.0.0 || ^16" + } + }, + "node_modules/react-is": { + "version": "16.12.0", + "license": "MIT" + }, + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "license": "MIT" + }, + "node_modules/react-markdown": { + "version": "4.3.1", + "license": "MIT", + "dependencies": { + "html-to-react": "^1.3.4", + "mdast-add-list-metadata": "1.0.1", + "prop-types": "^15.7.2", + "react-is": "^16.8.6", + "remark-parse": "^5.0.0", + "unified": "^6.1.5", + "unist-util-visit": "^1.3.0", + "xtend": "^4.0.1" + }, + "peerDependencies": { + "react": "^15.0.0 || ^16.0.0" + } + }, + "node_modules/react-monaco-editor": { + "version": "0.29.0", + "license": "MIT", + "dependencies": { + "@types/react": "^16.9.1", + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "monaco-editor": "*", + "react": "^15.x || ^16.x" + } + }, + "node_modules/react-perfect-scrollbar": { + "version": "1.5.3", + "license": "MIT", + "dependencies": { + "perfect-scrollbar": "^1.4.0", + "prop-types": "^15.6.1" + }, + "peerDependencies": { + "react": ">=16.3.3", + "react-dom": ">=16.3.3" + } + }, + "node_modules/react-redux": { + "version": "7.1.3", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.5.5", + "hoist-non-react-statics": "^3.3.0", + "invariant": "^2.2.4", + "loose-envify": "^1.4.0", + "prop-types": "^15.7.2", + "react-is": "^16.9.0" + }, + "peerDependencies": { + "react": "^16.8.3", + "redux": "^2.0.0 || ^3.0.0 || ^4.0.0-0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/react-resize-detector": { + "version": "4.2.1", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.15", + "lodash-es": "^4.17.15", + "prop-types": "^15.7.2", + "raf-schd": "^4.0.2", + "resize-observer-polyfill": "^1.5.1" + }, + "peerDependencies": { + "react": "^16.0.0", + "react-dom": "^16.0.0" + } + }, + "node_modules/react-router": { + "version": "4.3.1", + "license": "MIT", + "dependencies": { + "history": "^4.7.2", + "hoist-non-react-statics": "^2.5.0", + "invariant": "^2.2.4", + "loose-envify": "^1.3.1", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.1", + "warning": "^4.0.1" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/react-router-dom": { + "version": "4.3.1", + "license": "MIT", + "dependencies": { + "history": "^4.7.2", + "invariant": "^2.2.4", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.1", + "react-router": "^4.3.1", + "warning": "^4.0.1" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/react-router/node_modules/hoist-non-react-statics": { + "version": "2.5.5", + "license": "BSD-3-Clause" + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "license": "MIT" + }, + "node_modules/readdirp": { + "version": "2.2.1", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "minimatch": "3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/recursive-readdir/node_modules/minimatch": { + "version": "3.0.3", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/redux": { + "version": "4.0.5", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "symbol-observable": "^1.2.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/regenerator-runtime": { + "version": "0.11.1", + "license": "MIT" + }, + "node_modules/regex-not": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "node_modules/regjsgen": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.1.5", + "dev": true, + "license": "BSD", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remark-parse": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^1.1.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^1.0.0", + "vfile-location": "^2.0.0", + "xtend": "^4.0.1" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "license": "ISC" + }, + "node_modules/renderkid": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "css-select": "^1.1.0", + "dom-converter": "^0.2", + "htmlparser2": "^3.3.0", + "strip-ansi": "^3.0.0", + "utila": "^0.4.0" + } + }, + "node_modules/renderkid/node_modules/domelementtype": { + "version": "1.3.1", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/renderkid/node_modules/domhandler": { + "version": "2.4.2", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/renderkid/node_modules/domutils": { + "version": "1.7.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/renderkid/node_modules/entities": { + "version": "1.1.2", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/renderkid/node_modules/htmlparser2": { + "version": "3.10.1", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "node_modules/renderkid/node_modules/readable-stream": { + "version": "3.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/repeat-element": { + "version": "1.1.3", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/replace-ext": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/request": { + "version": "2.88.0", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/requires-port": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.14.2", + "dev": true, + "license": "MIT", + "dependencies": { + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pathname": { + "version": "3.0.0", + "license": "MIT" + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "license": "MIT" + }, + "node_modules/restore-cursor": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "license": "MIT", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/rgb-regex": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/rgba-regex": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/rimraf": { + "version": "2.7.1", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/run-async": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-promise": "^2.1.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-queue": { + "version": "1.0.3", + "license": "ISC", + "dependencies": { + "aproba": "^1.1.1" + } + }, + "node_modules/rx-lite": { + "version": "4.0.8", + "dev": true + }, + "node_modules/rx-lite-aggregates": { + "version": "4.0.8", + "dev": true, + "dependencies": { + "rx-lite": "*" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.0", + "license": "MIT" + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.2.4", + "dev": true, + "license": "ISC" + }, + "node_modules/scheduler": { + "version": "0.18.0", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "node_modules/schema-utils": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/script-loader": { + "version": "0.7.2", + "dev": true, + "license": "MIT", + "dependencies": { + "raw-loader": "~0.5.1" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/selfsigned": { + "version": "1.10.7", + "dev": true, + "license": "MIT", + "dependencies": { + "node-forge": "0.9.0" + } + }, + "node_modules/selfsigned/node_modules/node-forge": { + "version": "0.9.0", + "dev": true, + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.17.1", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/serialize-javascript": { + "version": "1.9.1", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/serve-index": { + "version": "1.9.1", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "dev": true, + "license": "ISC" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "dev": true, + "license": "ISC" + }, + "node_modules/serve-static": { + "version": "1.14.1", + "dev": true, + "license": "MIT", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/set-immediate-shim": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "license": "MIT" + }, + "node_modules/setprototypeof": { + "version": "1.1.1", + "dev": true, + "license": "ISC" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "license": "(MIT AND BSD-3-Clause)", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shallowequal": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.6.1", + "dev": true, + "license": "MIT", + "dependencies": { + "array-filter": "~0.0.0", + "array-map": "~0.0.0", + "array-reduce": "~0.0.0", + "jsonify": "~0.0.0" + } + }, + "node_modules/signal-exit": { + "version": "3.0.2", + "dev": true, + "license": "ISC" + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "dev": true, + "license": "MIT" + }, + "node_modules/slash": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "license": "MIT", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "license": "MIT", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "license": "MIT", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sockjs": { + "version": "0.3.19", + "dev": true, + "license": "MIT", + "dependencies": { + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" + } + }, + "node_modules/sockjs-client": { + "version": "1.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^2.6.6", + "eventsource": "0.1.6", + "faye-websocket": "~0.11.0", + "inherits": "^2.0.1", + "json3": "^3.3.2", + "url-parse": "^1.1.8" + } + }, + "node_modules/sockjs-client/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/sockjs/node_modules/faye-websocket": { + "version": "0.10.0", + "dev": true, + "license": "MIT", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/sort-keys": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "license": "MIT" + }, + "node_modules/source-map": { + "version": "0.6.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "license": "MIT", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.16", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.0", + "license": "MIT" + }, + "node_modules/spdy": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/spdy-transport/node_modules/debug": { + "version": "4.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/spdy-transport/node_modules/ms": { + "version": "2.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/spdy-transport/node_modules/readable-stream": { + "version": "3.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/spdy/node_modules/debug": { + "version": "4.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/spdy/node_modules/ms": { + "version": "2.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/split-string": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/sshpk": { + "version": "1.16.1", + "license": "MIT", + "optional": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ssri": { + "version": "5.3.0", + "dev": true, + "license": "ISC", + "dependencies": { + "safe-buffer": "^5.1.1" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "dev": true, + "license": "MIT" + }, + "node_modules/state-toggle": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/static-extend": { + "version": "0.1.2", + "license": "MIT", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stream-browserify": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-each": { + "version": "1.2.3", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/stream-http": { + "version": "2.8.3", + "license": "MIT", + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/stream-shift": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/strict-uri-encode": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "license": "MIT" + }, + "node_modules/string-width": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string.prototype.trimleft": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimright": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/style-loader": { + "version": "0.21.0", + "dev": true, + "license": "MIT", + "dependencies": { + "loader-utils": "^1.1.0", + "schema-utils": "^0.4.5" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/style-loader/node_modules/schema-utils": { + "version": "0.4.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/stylehacks": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/stylehacks/node_modules/postcss-selector-parser": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo": { + "version": "1.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/svgo/node_modules/css-select": { + "version": "2.1.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/svgo/node_modules/css-what": { + "version": "3.2.1", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + } + }, + "node_modules/svgo/node_modules/domelementtype": { + "version": "1.3.1", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/svgo/node_modules/domutils": { + "version": "1.7.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/symbol-observable": { + "version": "1.2.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tapable": { + "version": "1.1.3", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "4.6.10", + "license": "BSD-2-Clause", + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "2.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "cacache": "^13.0.1", + "find-cache-dir": "^3.2.0", + "jest-worker": "^25.1.0", + "p-limit": "^2.2.2", + "schema-utils": "^2.6.4", + "serialize-javascript": "^2.1.2", + "source-map": "^0.6.1", + "terser": "^4.4.3", + "webpack-sources": "^1.4.3" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/cacache": { + "version": "13.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "p-map": "^3.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^2.7.1", + "ssri": "^7.0.0", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/terser-webpack-plugin/node_modules/find-cache-dir": { + "version": "3.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/terser-webpack-plugin/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/terser-webpack-plugin/node_modules/lru-cache": { + "version": "5.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/terser-webpack-plugin/node_modules/make-dir": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser-webpack-plugin/node_modules/p-limit": { + "version": "2.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser-webpack-plugin/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/terser-webpack-plugin/node_modules/p-map": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/terser-webpack-plugin/node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/path-exists": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/terser-webpack-plugin/node_modules/pkg-dir": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "2.6.5", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.0", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser-webpack-plugin/node_modules/serialize-javascript": { + "version": "2.1.2", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/terser-webpack-plugin/node_modules/ssri": { + "version": "7.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "figgy-pudding": "^3.5.1", + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/terser-webpack-plugin/node_modules/yallist": { + "version": "3.1.1", + "dev": true, + "license": "ISC" + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "license": "MIT" + }, + "node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/through": { + "version": "2.3.8", + "dev": true, + "license": "MIT" + }, + "node_modules/through2": { + "version": "2.0.5", + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/timers-browserify": { + "version": "2.0.11", + "license": "MIT", + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/timsort": { + "version": "0.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/tiny-invariant": { + "version": "1.0.6", + "license": "MIT" + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/tmp": { + "version": "0.0.33", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/to-fast-properties": { + "version": "1.0.3", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "license": "MIT", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "2.1.1", + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/toggle-selection": { + "version": "1.0.6", + "license": "MIT" + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/toposort": { + "version": "1.0.7", + "dev": true, + "license": "MIT" + }, + "node_modules/tough-cookie": { + "version": "2.4.3", + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tough-cookie/node_modules/punycode": { + "version": "1.4.1", + "license": "MIT", + "optional": true + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "node_modules/trim": { + "version": "0.0.1" + }, + "node_modules/trim-trailing-lines": { + "version": "1.1.2", + "license": "MIT" + }, + "node_modules/trough": { + "version": "1.0.4", + "license": "MIT" + }, + "node_modules/tryer": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ts-loader": { + "version": "5.4.5", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.3.0", + "enhanced-resolve": "^4.0.0", + "loader-utils": "^1.0.2", + "micromatch": "^3.1.4", + "semver": "^5.0.1" + }, + "engines": { + "node": ">=6.11.5" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/ts-loader/node_modules/semver": { + "version": "5.7.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/ts-node": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "arrify": "^1.0.0", + "buffer-from": "^1.1.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.6", + "yn": "^2.0.0" + }, + "bin": { + "ts-node": "dist/bin.js" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ts-node/node_modules/minimist": { + "version": "1.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ts-toolbelt": { + "version": "6.15.5", + "license": "Apache-2.0" + }, + "node_modules/tslib": { + "version": "1.10.0", + "license": "Apache-2.0" + }, + "node_modules/tslint": { + "version": "5.20.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.29.0" + }, + "bin": { + "tslint": "bin/tslint" + }, + "engines": { + "node": ">=4.8.0" + }, + "peerDependencies": { + "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev" + } + }, + "node_modules/tslint/node_modules/diff": { + "version": "4.0.2", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/tslint/node_modules/semver": { + "version": "5.7.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/tsutils": { + "version": "2.29.0", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "peerDependencies": { + "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" + } + }, + "node_modules/tty-browserify": { + "version": "0.0.0", + "license": "MIT" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "license": "Unlicense", + "optional": true + }, + "node_modules/type-detect": { + "version": "4.0.8", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "dev": true, + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-ts-events": { + "version": "1.2.1", + "license": "ISC" + }, + "node_modules/typedarray": { + "version": "0.0.6", + "license": "MIT" + }, + "node_modules/typescript": { + "version": "3.7.4", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ua-parser-js": { + "version": "0.7.21", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/uglify-js": { + "version": "3.4.10", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/uglify-js/node_modules/commander": { + "version": "2.19.0", + "dev": true, + "license": "MIT" + }, + "node_modules/unherit": { + "version": "1.1.2", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "xtend": "^4.0.1" + } + }, + "node_modules/unified": { + "version": "6.2.0", + "license": "MIT", + "dependencies": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^1.1.0", + "trough": "^1.0.0", + "vfile": "^2.0.0", + "x-is-string": "^0.1.0" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uniq": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/uniqs": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "license": "ISC", + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/unist-util-is": { + "version": "3.0.0", + "license": "MIT" + }, + "node_modules/unist-util-remove-position": { + "version": "1.1.4", + "license": "MIT", + "dependencies": { + "unist-util-visit": "^1.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "1.1.2", + "license": "MIT" + }, + "node_modules/unist-util-visit": { + "version": "1.4.1", + "license": "MIT", + "dependencies": { + "unist-util-visit-parents": "^2.0.0" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "1.1.2", + "license": "MIT" + }, + "node_modules/unist-util-visit/node_modules/unist-util-visit-parents": { + "version": "2.1.2", + "license": "MIT", + "dependencies": { + "unist-util-is": "^3.0.0" + } + }, + "node_modules/unorm": { + "version": "1.6.0", + "license": "MIT or GPL-2.0", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/unset-value": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "license": "MIT", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/upper-case": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/uri-js": { + "version": "4.2.2", + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "license": "MIT" + }, + "node_modules/url": { + "version": "0.11.0", + "license": "MIT", + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url-loader": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "loader-utils": "^1.1.0", + "mime": "^2.0.3", + "schema-utils": "^1.0.0" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^3.0.0 || ^4.0.0" + } + }, + "node_modules/url-loader/node_modules/mime": { + "version": "2.4.4", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/url-parse": { + "version": "1.4.7", + "dev": true, + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "license": "MIT" + }, + "node_modules/use": { + "version": "3.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util": { + "version": "0.11.1", + "license": "MIT", + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/util.promisify": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "license": "ISC" + }, + "node_modules/utila": { + "version": "0.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "3.3.3", + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/value-equal": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/vary": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vendors": { + "version": "1.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/verror": { + "version": "1.10.0", + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/vfile": { + "version": "2.3.0", + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.4", + "replace-ext": "1.0.0", + "unist-util-stringify-position": "^1.0.0", + "vfile-message": "^1.0.0" + } + }, + "node_modules/vfile-location": { + "version": "2.0.6", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "unist-util-stringify-position": "^1.1.1" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "license": "MIT" + }, + "node_modules/vscode-base-languageclient": { + "version": "0.0.1-alpha.5", + "license": "MIT", + "dependencies": { + "vscode-jsonrpc": "^3.2.0", + "vscode-languageserver-types": "^3.2.0", + "vscode-uri": "^1.0.0" + }, + "engines": { + "vscode": "^1.8.0" + } + }, + "node_modules/vscode-base-languageclient/node_modules/vscode-jsonrpc": { + "version": "3.6.2", + "license": "MIT", + "engines": { + "node": ">=4.0.0 || >=6.0.0" + } + }, + "node_modules/vscode-json-languageservice": { + "version": "3.4.11", + "license": "MIT", + "dependencies": { + "jsonc-parser": "^2.2.0", + "vscode-languageserver-textdocument": "^1.0.0-next.5", + "vscode-languageserver-types": "^3.15.0-next.9", + "vscode-nls": "^4.1.1", + "vscode-uri": "^2.1.1" + } + }, + "node_modules/vscode-json-languageservice/node_modules/vscode-languageserver-types": { + "version": "3.15.0-next.10", + "license": "MIT" + }, + "node_modules/vscode-json-languageservice/node_modules/vscode-uri": { + "version": "2.1.1", + "license": "MIT" + }, + "node_modules/vscode-jsonrpc": { + "version": "5.0.1", + "license": "MIT", + "engines": { + "node": ">=8.0.0 || >=10.0.0" + } + }, + "node_modules/vscode-languageserver": { + "version": "4.4.2", + "license": "MIT", + "dependencies": { + "vscode-languageserver-protocol": "^3.10.3", + "vscode-uri": "^1.0.5" + }, + "bin": { + "installServerIntoExtension": "bin/installServerIntoExtension" + } + }, + "node_modules/vscode-languageserver-protocol": { + "version": "3.15.3", + "license": "MIT", + "dependencies": { + "vscode-jsonrpc": "^5.0.1", + "vscode-languageserver-types": "3.15.1" + } + }, + "node_modules/vscode-languageserver-protocol/node_modules/vscode-languageserver-types": { + "version": "3.15.1", + "license": "MIT" + }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.0-next.6", + "license": "MIT" + }, + "node_modules/vscode-languageserver-types": { + "version": "3.14.0", + "license": "MIT" + }, + "node_modules/vscode-nls": { + "version": "4.1.1", + "license": "MIT" + }, + "node_modules/vscode-uri": { + "version": "1.0.8", + "license": "MIT" + }, + "node_modules/warning": { + "version": "4.0.3", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/watchpack": { + "version": "1.6.0", + "license": "MIT", + "dependencies": { + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "dev": true, + "license": "MIT", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "node_modules/webpack": { + "version": "4.41.5", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/wasm-edit": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "acorn": "^6.2.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.6.0", + "webpack-sources": "^1.4.1" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-bundle-analyzer": { + "version": "3.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^6.0.7", + "acorn-walk": "^6.1.1", + "bfj": "^6.1.1", + "chalk": "^2.4.1", + "commander": "^2.18.0", + "ejs": "^2.6.1", + "express": "^4.16.3", + "filesize": "^3.6.1", + "gzip-size": "^5.0.0", + "lodash": "^4.17.15", + "mkdirp": "^0.5.1", + "opener": "^1.5.1", + "ws": "^6.0.0" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 6.14.4" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/acorn": { + "version": "6.4.0", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "2.20.3", + "dev": true, + "license": "MIT" + }, + "node_modules/webpack-bundle-analyzer/node_modules/filesize": { + "version": "3.6.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/gzip-size": { + "version": "5.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/pify": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-cli": { + "version": "3.3.10", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "2.4.2", + "cross-spawn": "6.0.5", + "enhanced-resolve": "4.1.0", + "findup-sync": "3.0.0", + "global-modules": "2.0.0", + "import-local": "2.0.0", + "interpret": "1.2.0", + "loader-utils": "1.2.3", + "supports-color": "6.1.0", + "v8-compile-cache": "2.0.3", + "yargs": "13.2.4" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=6.11.5" + }, + "peerDependencies": { + "webpack": "4.x.x" + } + }, + "node_modules/webpack-cli/node_modules/cross-spawn": { + "version": "6.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/webpack-cli/node_modules/enhanced-resolve": { + "version": "4.1.0", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/webpack-cli/node_modules/global-modules": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-cli/node_modules/global-prefix": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-cli/node_modules/memory-fs": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/webpack-cli/node_modules/semver": { + "version": "5.7.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/webpack-cli/node_modules/supports-color": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "3.7.2", + "dev": true, + "license": "MIT", + "dependencies": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/memory-fs": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime": { + "version": "2.4.4", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "3.10.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.2.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.6", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.25", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.19", + "sockjs-client": "1.4.0", + "spdy": "^4.0.1", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "12.0.5" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 6.11.5" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/ansi-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack-dev-server/node_modules/cliui": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/cliui/node_modules/strip-ansi": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack-dev-server/node_modules/debug": { + "version": "4.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/webpack-dev-server/node_modules/eventsource": { + "version": "1.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "original": "^1.0.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/webpack-dev-server/node_modules/find-up": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/get-caller-file": { + "version": "1.0.3", + "dev": true, + "license": "ISC" + }, + "node_modules/webpack-dev-server/node_modules/is-absolute-url": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-dev-server/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/locate-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/ms": { + "version": "2.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/webpack-dev-server/node_modules/opn": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack-dev-server/node_modules/p-limit": { + "version": "2.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-dev-server/node_modules/p-locate": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/require-main-filename": { + "version": "1.0.1", + "dev": true, + "license": "ISC" + }, + "node_modules/webpack-dev-server/node_modules/sockjs-client": { + "version": "1.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + } + }, + "node_modules/webpack-dev-server/node_modules/sockjs-client/node_modules/debug": { + "version": "3.2.6", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/webpack-dev-server/node_modules/supports-color": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/wrap-ansi": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/wrap-ansi/node_modules/string-width": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/yargs": { + "version": "12.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "node_modules/webpack-dev-server/node_modules/yargs-parser": { + "version": "11.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/webpack-log": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-sources": { + "version": "1.4.3", + "license": "MIT", + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/webpack/node_modules/acorn": { + "version": "6.4.0", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/webpack/node_modules/cacache": { + "version": "12.0.4", + "license": "ISC", + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/webpack/node_modules/find-cache-dir": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/find-up": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/locate-path": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/lru-cache": { + "version": "5.1.1", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/webpack/node_modules/make-dir": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/memory-fs": { + "version": "0.4.1", + "license": "MIT", + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/webpack/node_modules/mississippi": { + "version": "3.0.0", + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/webpack/node_modules/p-limit": { + "version": "2.2.2", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack/node_modules/p-locate": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/p-try": { + "version": "2.2.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/pify": { + "version": "4.0.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/pkg-dir": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/pump": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/webpack/node_modules/semver": { + "version": "5.7.1", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/webpack/node_modules/serialize-javascript": { + "version": "2.1.2", + "license": "BSD-3-Clause" + }, + "node_modules/webpack/node_modules/ssri": { + "version": "6.0.1", + "license": "ISC", + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/webpack/node_modules/terser-webpack-plugin": { + "version": "1.4.3", + "license": "MIT", + "dependencies": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^2.1.2", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/webpack/node_modules/yallist": { + "version": "3.1.1", + "license": "ISC" + }, + "node_modules/websocket-driver": { + "version": "0.7.3", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "http-parser-js": ">=0.4.0 <0.4.11", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.0.0", + "license": "MIT" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/wolfy87-eventemitter": { + "version": "5.2.8", + "license": "Unlicense" + }, + "node_modules/worker-farm": { + "version": "1.7.0", + "license": "MIT", + "dependencies": { + "errno": "~0.1.7" + } + }, + "node_modules/wrap-ansi": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "license": "ISC" + }, + "node_modules/ws": { + "version": "6.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/x-is-string": { + "version": "0.1.0" + }, + "node_modules/xtend": { + "version": "4.0.2", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "4.0.0", + "license": "ISC" + }, + "node_modules/yallist": { + "version": "2.1.2", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "13.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.0" + } + }, + "node_modules/yargs-parser": { + "version": "13.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/find-up": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/locate-path": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/p-limit": { + "version": "2.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/p-locate": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yn": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + } + }, + "dependencies": { + "@ant-design/create-react-context": { + "version": "0.2.5", + "requires": { + "gud": "^1.0.0", + "warning": "^4.0.3" + } + }, + "@babel/code-frame": { + "version": "7.8.0", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.0" + } + }, + "@babel/highlight": { + "version": "7.8.0", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/runtime": { + "version": "7.8.0", + "requires": { + "regenerator-runtime": "^0.13.2" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.13.3" + } + } + }, + "@protobufjs/aspromise": { + "version": "1.1.2" + }, + "@protobufjs/base64": { + "version": "1.1.2" + }, + "@protobufjs/codegen": { + "version": "2.0.4" + }, + "@protobufjs/eventemitter": { + "version": "1.1.0" + }, + "@protobufjs/fetch": { + "version": "1.1.0", + "requires": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "@protobufjs/float": { + "version": "1.0.2" + }, + "@protobufjs/inquire": { + "version": "1.1.0" + }, + "@protobufjs/path": { + "version": "1.1.2" + }, + "@protobufjs/pool": { + "version": "1.1.0" + }, + "@protobufjs/utf8": { + "version": "1.1.0" + }, + "@types/babel-types": { + "version": "7.0.7", + "dev": true + }, + "@types/babylon": { + "version": "6.16.5", + "dev": true, + "requires": { + "@types/babel-types": "*" + } + }, + "@types/babylon-walk": { + "version": "3.10.1", + "dev": true, + "requires": { + "@types/babel-types": "*" + } + }, + "@types/base64-js": { + "version": "1.2.5" + }, + "@types/bignumber.js": { + "version": "5.0.0", + "requires": { + "bignumber.js": "*" + } + }, + "@types/bip39": { + "version": "2.4.2", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/chai": { + "version": "4.2.7", + "dev": true + }, + "@types/chai-as-promised": { + "version": "7.1.2", + "dev": true, + "requires": { + "@types/chai": "*" + } + }, + "@types/classnames": { + "version": "2.2.9", + "dev": true + }, + "@types/debounce": { + "version": "1.2.0", + "dev": true + }, + "@types/events": { + "version": "3.0.0", + "dev": true + }, + "@types/file-saver": { + "version": "2.0.1", + "dev": true + }, + "@types/glob": { + "version": "7.1.1", + "dev": true, + "requires": { + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/history": { + "version": "4.7.3", + "dev": true + }, + "@types/hoist-non-react-statics": { + "version": "3.3.1", + "dev": true, + "requires": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "@types/jszip": { + "version": "3.1.7", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/long": { + "version": "4.0.1" + }, + "@types/minimatch": { + "version": "3.0.3", + "dev": true + }, + "@types/mocha": { + "version": "5.2.7", + "dev": true + }, + "@types/mousetrap": { + "version": "1.6.3", + "dev": true + }, + "@types/node": { + "version": "16.9.1" + }, + "@types/node-fetch": { + "version": "2.5.5", + "requires": { + "@types/node": "*", + "form-data": "^3.0.0" + }, + "dependencies": { + "form-data": { + "version": "3.0.0", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, + "@types/prop-types": { + "version": "15.7.3" + }, + "@types/q": { + "version": "1.5.2", + "dev": true + }, + "@types/react": { + "version": "16.9.17", + "requires": { + "@types/prop-types": "*", + "csstype": "^2.2.0" + } + }, + "@types/react-copy-to-clipboard": { + "version": "4.3.0", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/react-dom": { + "version": "16.9.4", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/react-redux": { + "version": "7.1.5", + "dev": true, + "requires": { + "@types/hoist-non-react-statics": "^3.3.0", + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0", + "redux": "^4.0.0" + } + }, + "@types/react-resize-detector": { + "version": "3.1.1", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/react-router": { + "version": "4.4.5", + "dev": true, + "requires": { + "@types/history": "*", + "@types/react": "*" + } + }, + "@types/react-router-dom": { + "version": "4.3.5", + "dev": true, + "requires": { + "@types/history": "*", + "@types/react": "*", + "@types/react-router": "*" + } + }, + "@types/react-scrollbar": { + "version": "0.4.10", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/react-truncate": { + "version": "2.3.3", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/uuid": { + "version": "3.4.6", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@waves.exchange/provider-web": { + "version": "1.0.2", + "requires": { + "@waves/waves-browser-bus": "0.2.5", + "tslib": "^2.1.0", + "typed-ts-events": "^1.2.1" + }, + "dependencies": { + "@types/node": { + "version": "11.15.54" + }, + "@waves/waves-browser-bus": { + "version": "0.2.5", + "requires": { + "@types/node": "^11.9.4", + "typed-ts-events": "^1.0.5" + } + }, + "tslib": { + "version": "2.3.0" + } + } + }, + "@waves/bignumber": { + "version": "1.1.1", + "requires": { + "bignumber.js": "^9.0.1" + } + }, + "@waves/client-logs": { + "version": "1.0.0" + }, + "@waves/js-test-env": { + "version": "1.1.4-beta", + "requires": { + "@waves/ride-js": "2.1.2-beta.2", + "@waves/waves-transactions": "4.1.8-beta2", + "chai": "^4.2.0", + "chai-as-promised": "^7.1.1", + "tslib": "^1.10.0" + }, + "dependencies": { + "@waves/bignumber": { + "version": "0.0.1", + "requires": { + "@types/bignumber.js": "^5.0.0", + "bignumber.js": "^8.1.1" + } + }, + "@waves/node-api-js": { + "version": "1.1.1", + "requires": { + "@types/node-fetch": "^2.5.4", + "@waves/bignumber": "0.0.1", + "@waves/ts-types": "^0.3.2", + "node-fetch": "^2.6.0", + "typed-ts-events": "^1.1.1" + } + }, + "@waves/ride-js": { + "version": "2.1.2-beta.2", + "requires": { + "@waves/ts-lib-crypto": "^1.4.3", + "axios": "^0.19.0" + } + }, + "@waves/ts-types": { + "version": "0.3.2" + }, + "@waves/waves-transactions": { + "version": "4.1.8-beta2", + "requires": { + "@waves/marshall": "0.14.0", + "@waves/node-api-js": "1.1.1", + "@waves/protobuf-serialization": "1.2.10-beta2", + "@waves/ts-lib-crypto": "1.4.3", + "@waves/ts-types": "0.3.2", + "axios": "^0.19.0", + "long": "^4.0.0" + } + }, + "bignumber.js": { + "version": "8.1.1" + }, + "node-fetch": { + "version": "2.6.1" + } + } + }, + "@waves/marshall": { + "version": "0.14.0", + "requires": { + "@types/base64-js": "^1.2.5", + "@types/long": "^4.0.0", + "@waves/parse-json-bignumber": "^1.0.1", + "base64-js": "^1.3.0", + "long": "^4.0.0" + } + }, + "@waves/node-api-js": { + "version": "1.2.3", + "requires": { + "@types/node-fetch": "^2.5.4", + "@waves/bignumber": "^1.1.1", + "@waves/ts-types": "^1.0.5", + "node-fetch": "^2.6.1", + "typed-ts-events": "^1.1.1" + }, + "dependencies": { + "node-fetch": { + "version": "2.6.1" + } + } + }, + "@waves/parse-json-bignumber": { + "version": "1.0.3" + }, + "@waves/protobuf-serialization": { + "version": "1.2.10-beta2", + "requires": { + "@types/long": "^4.0.0", + "protobufjs": "^6.8.8" + }, + "dependencies": { + "protobufjs": { + "version": "6.11.2", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + } + } + }, + "@waves/ride-js": { + "version": "2.2.0-beta.5", + "resolved": "https://registry.npmjs.org/@waves/ride-js/-/ride-js-2.2.0-beta.5.tgz", + "integrity": "sha512-vJcleq4/wy7Vc/mRhMD3VvrfaCtghnFRr/B16zxabx5tIokq7jtl7jyJ+L6H4UZfyMbl8YGtGBRkNmAx66tQYw==", + "requires": { + "@waves/ts-lib-crypto": "^1.4.3", + "axios": "^0.19.0" + } + }, + "@waves/ride-language-server": { + "version": "1.1.1", + "requires": { + "@waves/ride-js": "^2.1.3-beta.1", + "vscode-languageserver": "^4.1.3" + }, + "dependencies": { + "@waves/ride-js": { + "version": "2.1.4", + "requires": { + "@waves/ts-lib-crypto": "^1.4.3", + "axios": "^0.19.0" + } + } + } + }, + "@waves/signer": { + "version": "1.0.2", + "requires": { + "@types/ramda": "^0.27.32", + "@waves/client-logs": "^1.0.0", + "@waves/node-api-js": "^1.2.0", + "@waves/ts-lib-crypto": "^1.4.3", + "@waves/ts-types": "^1.0.0", + "ramda": "^0.27.1" + }, + "dependencies": { + "@types/ramda": { + "version": "0.27.44", + "requires": { + "ts-toolbelt": "^6.15.1" + } + }, + "ramda": { + "version": "0.27.1" + } + } + }, + "@waves/ts-lib-crypto": { + "version": "1.4.3", + "requires": { + "js-sha3": "^0.8.0", + "node-forge": "^0.8.5" + } + }, + "@waves/ts-types": { + "version": "1.0.5" + }, + "@waves/tx-json-schemas": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@waves/tx-json-schemas/-/tx-json-schemas-1.2.4.tgz", + "integrity": "sha512-EyaSeBxWR3Xrr3R9fjtGUWS+JaCg2p4XpvkuG07eySdlj/lYE0nsmqWjIBakfcfs27qfXoDxanCRXHnI0j/HrA==", + "requires": { + "@waves/waves-transactions": "4.1.8", + "ajv": "^6.10.0" + }, + "dependencies": { + "@waves/bignumber": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@waves/bignumber/-/bignumber-0.0.1.tgz", + "integrity": "sha512-+bQCa8fPCYdkLtwKsKtgbvDD7MzZTv6bc2ZpGMqn9uq+RjO8Qf4XSrs0DVhtWWhCHplkVIqOeS4bzgW1i3P7rw==", + "requires": { + "@types/bignumber.js": "^5.0.0", + "bignumber.js": "^8.1.1" + } + }, + "@waves/node-api-js": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@waves/node-api-js/-/node-api-js-1.1.1.tgz", + "integrity": "sha512-mlDtV5xlbYTvZ6sdBk7yf4ZrXgkc5vqV/BEPLtc5RW7boWx0b4E8/of2SIf+G9VY2NvDTOtuu7jGsK3IEys8NQ==", + "requires": { + "@types/node-fetch": "^2.5.4", + "@waves/bignumber": "0.0.1", + "@waves/ts-types": "^0.3.2", + "node-fetch": "^2.6.0", + "typed-ts-events": "^1.1.1" + } + }, + "@waves/protobuf-serialization": { + "version": "1.2.9-SNAPSHOT", + "resolved": "https://registry.npmjs.org/@waves/protobuf-serialization/-/protobuf-serialization-1.2.9-SNAPSHOT.tgz", + "integrity": "sha512-UlMVA8koDV5xKz9kB1rno4KftNaK5nFeJc9dyZVVicKQweEpGhwetUD7yxLuYMIMccqMKyNsBUC207MMs6ohFQ==", + "requires": { + "@types/long": "^4.0.0", + "protobufjs": "^6.8.8" + } + }, + "@waves/ts-types": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@waves/ts-types/-/ts-types-0.3.2.tgz", + "integrity": "sha512-HMP8498rjlQ4Yslpzxnd0XFw6JPRmlQjmTFUZjsUMQpqJ5+4+xXF50TjKcDp/poteJLK4hPVx10B0kZoL+8xWQ==" + }, + "@waves/waves-transactions": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@waves/waves-transactions/-/waves-transactions-4.1.8.tgz", + "integrity": "sha512-pTdGs5/pvrXWaV4kxSkhWb6ir/g2FEhLV7KDyfRhlwxMtA3DjK8KDewmKbMw9kOLGy4g/FlfyhgKY6OPdzbf5w==", + "requires": { + "@waves/marshall": "0.14.0", + "@waves/node-api-js": "1.1.1", + "@waves/protobuf-serialization": "1.2.9-SNAPSHOT", + "@waves/ts-lib-crypto": "1.4.3", + "@waves/ts-types": "0.3.2", + "axios": "^0.19.0", + "long": "^4.0.0" + } + }, + "bignumber.js": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-8.1.1.tgz", + "integrity": "sha512-QD46ppGintwPGuL1KqmwhR0O+N2cZUg8JG/VzwI2e28sM9TqHjQB10lI4QAaMHVbLzwVLLAwEglpKPViWX+5NQ==" + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "protobufjs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz", + "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + } + } + }, + "@waves/waves-browser-bus": { + "version": "0.2.6", + "requires": { + "@types/node": "^11.9.4", + "typed-ts-events": "^1.0.5" + }, + "dependencies": { + "@types/node": { + "version": "11.15.54" + } + } + }, + "@waves/waves-transactions": { + "version": "4.2.5-beta.1", + "requires": { + "@waves/marshall": "^0.14.0", + "@waves/node-api-js": "^1.2.3", + "@waves/protobuf-serialization": "1.4.1-beta.2", + "@waves/ts-lib-crypto": "1.4.3", + "@waves/ts-types": "1.0.6-beta.4", + "axios": "^0.19.0", + "long": "^4.0.0" + }, + "dependencies": { + "@waves/protobuf-serialization": { + "version": "1.4.1-beta.2", + "requires": { + "@types/long": "^4.0.0", + "protobufjs": "^6.8.8" + }, + "dependencies": { + "protobufjs": { + "version": "6.11.2", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + } + } + }, + "@waves/ts-types": { + "version": "1.0.6-beta.4" + } + } + }, + "@waves/waveskeeper-types": { + "version": "0.0.6" + }, + "@webassemblyjs/ast": { + "version": "1.8.5", + "requires": { + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.8.5" + }, + "@webassemblyjs/helper-api-error": { + "version": "1.8.5" + }, + "@webassemblyjs/helper-buffer": { + "version": "1.8.5" + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.8.5", + "requires": { + "@webassemblyjs/wast-printer": "1.8.5" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.8.5" + }, + "@webassemblyjs/helper-module-context": { + "version": "1.8.5", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "mamacro": "^0.0.3" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.8.5" + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.8.5", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.8.5", + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.8.5", + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.8.5" + }, + "@webassemblyjs/wasm-edit": { + "version": "1.8.5", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/helper-wasm-section": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-opt": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "@webassemblyjs/wast-printer": "1.8.5" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.8.5", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.8.5", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.8.5", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.8.5", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/floating-point-hex-parser": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-code-frame": "1.8.5", + "@webassemblyjs/helper-fsm": "1.8.5", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.8.5", + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0" + }, + "@xtuc/long": { + "version": "4.2.2" + }, + "accepts": { + "version": "1.3.7", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "7.1.1" + }, + "acorn-walk": { + "version": "6.2.0", + "dev": true + }, + "add-dom-event-listener": { + "version": "1.1.0", + "requires": { + "object-assign": "4.x" + } + }, + "address": { + "version": "1.0.3", + "dev": true + }, + "aggregate-error": { + "version": "3.0.1", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "requires": {} + }, + "ajv-keywords": { + "version": "3.5.2", + "requires": {} + }, + "alphanum-sort": { + "version": "1.0.2", + "dev": true + }, + "ansi-colors": { + "version": "3.2.4", + "dev": true + }, + "ansi-escapes": { + "version": "3.2.0", + "dev": true + }, + "ansi-html": { + "version": "0.0.7", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "2.0.0", + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "aproba": { + "version": "1.2.0" + }, + "argparse": { + "version": "1.0.10", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0" + }, + "arr-flatten": { + "version": "1.1.0" + }, + "arr-union": { + "version": "3.1.0" + }, + "array-filter": { + "version": "0.0.1", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "dev": true + }, + "array-map": { + "version": "0.0.0", + "dev": true + }, + "array-reduce": { + "version": "0.0.0", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "dev": true + }, + "array-unique": { + "version": "0.3.2" + }, + "arrify": { + "version": "1.0.1", + "dev": true + }, + "asap": { + "version": "2.0.6" + }, + "asn1": { + "version": "0.2.4", + "optional": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "4.10.1", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "assert": { + "version": "1.5.0", + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1" + }, + "util": { + "version": "0.10.3", + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "optional": true + }, + "assertion-error": { + "version": "1.1.0" + }, + "assign-symbols": { + "version": "1.0.0" + }, + "async": { + "version": "2.6.3", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.3" + }, + "async-limiter": { + "version": "1.0.1", + "dev": true + }, + "asynckit": { + "version": "0.4.0" + }, + "atob": { + "version": "2.1.2" + }, + "autoprefixer": { + "version": "9.7.3", + "dev": true, + "requires": { + "browserslist": "^4.8.0", + "caniuse-lite": "^1.0.30001012", + "chalk": "^2.4.2", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.23", + "postcss-value-parser": "^4.0.2" + } + }, + "aws-sign2": { + "version": "0.7.0", + "optional": true + }, + "aws4": { + "version": "1.9.0", + "optional": true + }, + "axios": { + "version": "0.19.1", + "requires": { + "follow-redirects": "1.5.10" + } + }, + "babel-code-frame": { + "version": "6.26.0", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "js-tokens": { + "version": "3.0.2", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "dev": true + } + } + }, + "babel-runtime": { + "version": "6.26.0", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "babel-types": { + "version": "6.26.0", + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "babylon": { + "version": "6.18.0" + }, + "babylon-walk": { + "version": "1.0.2", + "requires": { + "babel-runtime": "^6.11.6", + "babel-types": "^6.15.0", + "lodash.clone": "^4.5.0" + } + }, + "bail": { + "version": "1.0.4" + }, + "balanced-match": { + "version": "1.0.0" + }, + "base": { + "version": "0.11.2", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-js": { + "version": "1.3.1" + }, + "batch": { + "version": "0.6.1", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bfj": { + "version": "6.1.2", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "check-types": "^8.0.3", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + } + }, + "big.js": { + "version": "5.2.2" + }, + "bignumber.js": { + "version": "9.0.1" + }, + "binary-extensions": { + "version": "1.13.1" + }, + "bip39": { + "version": "2.6.0", + "requires": { + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1", + "safe-buffer": "^5.0.1", + "unorm": "^1.3.3" + } + }, + "bluebird": { + "version": "3.7.2" + }, + "bn.js": { + "version": "4.11.8" + }, + "body-parser": { + "version": "1.19.0", + "dev": true, + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "qs": { + "version": "6.7.0", + "dev": true + } + } + }, + "bonjour": { + "version": "3.5.0", + "dev": true, + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + }, + "dependencies": { + "array-flatten": { + "version": "2.1.2", + "dev": true + } + } + }, + "boolbase": { + "version": "1.0.0", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "brorand": { + "version": "1.1.0" + }, + "browser-stdout": { + "version": "1.3.1", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.0.4", + "requires": { + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.8.3", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001017", + "electron-to-chromium": "^1.3.322", + "node-releases": "^1.1.44" + } + }, + "buffer": { + "version": "4.9.2", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.1.1" + }, + "buffer-indexof": { + "version": "1.1.1", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3" + }, + "builtin-modules": { + "version": "1.1.1", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0" + }, + "bytes": { + "version": "3.1.0", + "dev": true + }, + "cacache": { + "version": "10.0.4", + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" + } + }, + "cache-base": { + "version": "1.0.1", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "caller-callsite": { + "version": "2.0.0", + "dev": true, + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "2.0.0", + "dev": true + }, + "camel-case": { + "version": "3.0.0", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "camelcase": { + "version": "5.3.1", + "dev": true + }, + "caniuse-api": { + "version": "3.0.0", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001020", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "optional": true + }, + "chai": { + "version": "4.2.0", + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" + } + }, + "chai-as-promised": { + "version": "7.1.1", + "requires": { + "check-error": "^1.0.2" + } + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "character-entities": { + "version": "1.2.3" + }, + "character-entities-legacy": { + "version": "1.1.3" + }, + "character-reference-invalid": { + "version": "1.1.3" + }, + "chardet": { + "version": "0.4.2", + "dev": true + }, + "check-error": { + "version": "1.0.2" + }, + "check-types": { + "version": "8.0.3", + "dev": true + }, + "chokidar": { + "version": "2.1.8", + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "chownr": { + "version": "1.1.3" + }, + "chrome-trace-event": { + "version": "1.0.2", + "requires": { + "tslib": "^1.9.0" + } + }, + "cipher-base": { + "version": "1.0.4", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "class-utils": { + "version": "0.3.6", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "classnames": { + "version": "2.2.6" + }, + "clean-css": { + "version": "4.2.1", + "dev": true, + "requires": { + "source-map": "~0.6.0" + } + }, + "clean-stack": { + "version": "2.2.0", + "dev": true + }, + "clean-webpack-plugin": { + "version": "1.0.1", + "dev": true, + "requires": { + "rimraf": "^2.6.1" + } + }, + "cli-cursor": { + "version": "2.1.0", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-width": { + "version": "2.2.0", + "dev": true + }, + "cliui": { + "version": "5.0.0", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "clone": { + "version": "2.1.2" + }, + "coa": { + "version": "2.0.2", + "dev": true, + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, + "code-point-at": { + "version": "1.1.0", + "dev": true + }, + "collapse-white-space": { + "version": "1.0.5" + }, + "collection-visit": { + "version": "1.0.0", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.1.2", + "dev": true, + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.2" + } + }, + "color-convert": { + "version": "1.9.3", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "dev": true + }, + "color-string": { + "version": "1.5.3", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "combined-stream": { + "version": "1.0.8", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.17.1", + "dev": true + }, + "commondir": { + "version": "1.0.1" + }, + "component-classes": { + "version": "1.2.6", + "requires": { + "component-indexof": "0.0.3" + } + }, + "component-emitter": { + "version": "1.3.0" + }, + "component-indexof": { + "version": "0.0.3" + }, + "compressible": { + "version": "2.0.18", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "bytes": { + "version": "3.0.0", + "dev": true + }, + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1" + }, + "concat-stream": { + "version": "1.6.2", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "dev": true + }, + "console-browserify": { + "version": "1.2.0" + }, + "constants-browserify": { + "version": "1.0.0" + }, + "content-disposition": { + "version": "0.5.3", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "dev": true + } + } + }, + "content-type": { + "version": "1.0.4", + "dev": true + }, + "cookie": { + "version": "0.4.0", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1" + }, + "copy-to-clipboard": { + "version": "3.2.0", + "requires": { + "toggle-selection": "^1.0.6" + } + }, + "copy-webpack-plugin": { + "version": "4.6.0", + "dev": true, + "requires": { + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "globby": "^7.1.1", + "is-glob": "^4.0.0", + "loader-utils": "^1.1.0", + "minimatch": "^3.0.4", + "p-limit": "^1.0.0", + "serialize-javascript": "^1.4.0" + } + }, + "core-js": { + "version": "2.6.11" + }, + "core-util-is": { + "version": "1.0.2" + }, + "cosmiconfig": { + "version": "5.2.1", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "create-ecdh": { + "version": "4.0.3", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "create-hash": { + "version": "1.2.0", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "5.1.0", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css-animation": { + "version": "1.6.1", + "requires": { + "babel-runtime": "6.x", + "component-classes": "^1.2.5" + } + }, + "css-color-names": { + "version": "0.0.4", + "dev": true + }, + "css-declaration-sorter": { + "version": "4.0.1", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + } + }, + "css-loader": { + "version": "1.0.1", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "css-selector-tokenizer": "^0.7.0", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash": "^4.17.11", + "postcss": "^6.0.23", + "postcss-modules-extract-imports": "^1.2.0", + "postcss-modules-local-by-default": "^1.2.0", + "postcss-modules-scope": "^1.1.0", + "postcss-modules-values": "^1.3.0", + "postcss-value-parser": "^3.3.0", + "source-list-map": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "dev": true + } + } + }, + "css-select": { + "version": "1.2.0", + "dev": true, + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + }, + "dependencies": { + "domelementtype": { + "version": "1.3.1", + "dev": true + }, + "domutils": { + "version": "1.5.1", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + } + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "dev": true + }, + "css-selector-tokenizer": { + "version": "0.7.1", + "dev": true, + "requires": { + "cssesc": "^0.1.0", + "fastparse": "^1.1.1", + "regexpu-core": "^1.0.0" + } + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "dev": true, + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + } + }, + "css-unit-converter": { + "version": "1.1.1", + "dev": true + }, + "css-what": { + "version": "2.1.3", + "dev": true + }, + "cssesc": { + "version": "0.1.0", + "dev": true + }, + "cssnano": { + "version": "4.1.10", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "cssnano-preset-default": { + "version": "4.0.7", + "dev": true, + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "dev": true + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "dev": true + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "dev": true + }, + "csso": { + "version": "4.0.2", + "dev": true, + "requires": { + "css-tree": "1.0.0-alpha.37" + } + }, + "csstype": { + "version": "2.6.8" + }, + "cyclist": { + "version": "1.0.1" + }, + "dashdash": { + "version": "1.14.1", + "optional": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debounce": { + "version": "1.2.0" + }, + "debug": { + "version": "3.1.0", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0" + }, + "deep-eql": { + "version": "3.0.1", + "requires": { + "type-detect": "^4.0.0" + } + }, + "deep-equal": { + "version": "1.1.1", + "dev": true, + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "default-gateway": { + "version": "4.2.0", + "dev": true, + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + }, + "define-properties": { + "version": "1.1.3", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "requires": { + "kind-of": "^6.0.0" } }, - "minizlib": { - "version": "1.3.3", - "bundled": true, + "is-descriptor": { + "version": "1.0.2", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "del": { + "version": "4.1.1", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "dependencies": { + "globby": { + "version": "6.1.0", "dev": true, - "optional": true, "requires": { - "minipass": "^2.9.0" + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "dev": true + } } }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, + "pify": { + "version": "4.0.1", + "dev": true + } + } + }, + "delayed-stream": { + "version": "1.0.0" + }, + "depd": { + "version": "1.1.2", + "dev": true + }, + "des.js": { + "version": "1.0.1", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "dev": true + }, + "detect-file": { + "version": "1.0.0", + "dev": true + }, + "detect-node": { + "version": "2.0.4", + "dev": true + }, + "detect-port-alt": { + "version": "1.1.6", + "dev": true, + "requires": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "diff": { + "version": "3.5.0", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "dir-glob": { + "version": "2.2.2", + "dev": true, + "requires": { + "path-type": "^3.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "dev": true + }, + "dns-packet": { + "version": "1.3.1", + "dev": true, + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "dom-align": { + "version": "1.10.4" + }, + "dom-converter": { + "version": "0.2.0", + "dev": true, + "requires": { + "utila": "~0.4" + } + }, + "dom-scroll-into-view": { + "version": "1.2.1" + }, + "dom-serializer": { + "version": "0.2.2", + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "domain-browser": { + "version": "1.2.0" + }, + "domelementtype": { + "version": "2.0.1" + }, + "domhandler": { + "version": "3.0.0", + "requires": { + "domelementtype": "^2.0.1" + } + }, + "domutils": { + "version": "2.0.0", + "requires": { + "dom-serializer": "^0.2.1", + "domelementtype": "^2.0.1", + "domhandler": "^3.0.0" + } + }, + "dot-prop": { + "version": "4.2.0", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "duplexer": { + "version": "0.1.1", + "dev": true + }, + "duplexify": { + "version": "3.7.1", + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "optional": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "dev": true + }, + "ejs": { + "version": "2.7.4", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.332", + "dev": true + }, + "elliptic": { + "version": "6.5.2", + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "dev": true + }, + "emojis-list": { + "version": "2.1.0" + }, + "encodeurl": { + "version": "1.0.2", + "dev": true + }, + "encoding": { + "version": "0.1.12", + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.4", + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "4.1.1", + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + } + }, + "entities": { + "version": "2.0.0" + }, + "errno": { + "version": "0.1.7", + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.17.0", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escape-html": { + "version": "1.0.3", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "eslint-scope": { + "version": "4.0.3", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "esprima": { + "version": "4.0.1", + "dev": true + }, + "esrecurse": { + "version": "4.2.1", + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0" + }, + "esutils": { + "version": "2.0.3" + }, + "etag": { + "version": "1.8.1", + "dev": true + }, + "eventemitter3": { + "version": "4.0.0", + "dev": true + }, + "events": { + "version": "3.1.0" + }, + "eventsource": { + "version": "0.1.6", + "dev": true, + "requires": { + "original": ">=0.0.5" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "1.0.0", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", "dev": true, - "optional": true, "requires": { - "minimist": "0.0.8" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, - "ms": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.4.0", - "bundled": true, - "dev": true, - "optional": true, + "semver": { + "version": "5.7.1", + "dev": true + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" + "ms": "2.0.0" } }, - "node-pre-gyp": { - "version": "0.14.0", - "bundled": true, - "dev": true, - "optional": true, + "define-property": { + "version": "0.2.5", "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4.4.2" + "is-descriptor": "^0.1.0" } }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, + "extend-shallow": { + "version": "2.0.1", "requires": { - "abbrev": "1", - "osenv": "^0.1.4" + "is-extendable": "^0.1.0" } - }, - "npm-bundled": { - "version": "1.1.1", - "bundled": true, + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "express": { + "version": "4.17.1", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", "dev": true, - "optional": true, "requires": { - "npm-normalize-package-bin": "^1.0.1" + "ms": "2.0.0" } }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } + "path-to-regexp": { + "version": "0.1.7", + "dev": true }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } + "qs": { + "version": "6.7.0", + "dev": true }, - "number-is-nan": { + "safe-buffer": { + "version": "5.1.2", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2" + }, + "extend-shallow": { + "version": "3.0.2", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, "requires": { - "wrappy": "1" + "is-plain-object": "^2.0.4" } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, + } + } + }, + "external-editor": { + "version": "2.2.0", + "dev": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "is-descriptor": "^1.0.0" } }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { + "extend-shallow": { "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "dev": true, - "optional": true, "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } + "is-extendable": "^0.1.0" } }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, + "is-accessor-descriptor": { + "version": "1.0.0", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "kind-of": "^6.0.0" } }, - "rimraf": { - "version": "2.7.1", - "bundled": true, - "dev": true, - "optional": true, + "is-data-descriptor": { + "version": "1.0.0", "requires": { - "glob": "^7.1.3" + "kind-of": "^6.0.0" } }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.1", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { + "is-descriptor": { "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, "requires": { - "ansi-regex": "^2.0.0" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } - }, - "strip-json-comments": { + } + } + }, + "extsprintf": { + "version": "1.3.0", + "optional": true + }, + "fast-deep-equal": { + "version": "3.1.3" + }, + "fast-json-stable-stringify": { + "version": "2.1.0" + }, + "fastparse": { + "version": "1.1.2", + "dev": true + }, + "faye-websocket": { + "version": "0.11.3", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fbjs": { + "version": "0.8.17", + "requires": { + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + }, + "dependencies": { + "core-js": { + "version": "1.2.7" + } + } + }, + "figgy-pudding": { + "version": "3.5.2" + }, + "figures": { + "version": "2.0.0", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-loader": { + "version": "3.0.1", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "schema-utils": "^1.0.0" + } + }, + "file-saver": { + "version": "2.0.2" + }, + "filesize": { + "version": "3.5.11", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.13", - "bundled": true, - "dev": true, - "optional": true, "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" + "is-extendable": "^0.1.0" } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, + } + } + }, + "finalhandler": { + "version": "1.1.2", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", "dev": true, - "optional": true, "requires": { - "string-width": "^1.0.2 || 2" + "ms": "2.0.0" } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.1.1", - "bundled": true, - "dev": true, - "optional": true } } }, + "find-cache-dir": { + "version": "1.0.0", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "findup-sync": { + "version": "3.0.0", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + }, + "flush-write-stream": { + "version": "1.1.1", + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.5.10", + "requires": { + "debug": "=3.1.0" + } + }, + "for-in": { + "version": "1.0.2" + }, + "forever-agent": { + "version": "0.6.1", + "optional": true + }, + "fork-ts-checker-webpack-plugin": { + "version": "0.4.15", + "dev": true, + "requires": { + "babel-code-frame": "^6.22.0", + "chalk": "^2.4.1", + "chokidar": "^2.0.4", + "lodash": "^4.17.11", + "micromatch": "^3.1.10", + "minimatch": "^3.0.4", + "resolve": "^1.5.0", + "tapable": "^1.0.0" + } + }, + "form-data": { + "version": "2.3.3", + "optional": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "dev": true + }, + "from2": { + "version": "2.3.0", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0" + }, "function-bind": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, "get-caller-file": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=" + "version": "2.0.0" }, "get-stream": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { "pump": "^3.0.0" @@ -4677,8 +14586,6 @@ "dependencies": { "pump": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "requires": { "end-of-stream": "^1.1.0", @@ -4688,15 +14595,10 @@ } }, "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true + "version": "2.0.6" }, "getpass": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "optional": true, "requires": { "assert-plus": "^1.0.0" @@ -4704,9 +14606,6 @@ }, "glob": { "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -4718,9 +14617,6 @@ }, "glob-parent": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, "requires": { "is-glob": "^3.1.0", "path-dirname": "^1.0.0" @@ -4728,9 +14624,6 @@ "dependencies": { "is-glob": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, "requires": { "is-extglob": "^2.1.0" } @@ -4738,14 +14631,10 @@ } }, "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" + "version": "0.3.0" }, "global-modules": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", "dev": true, "requires": { "global-prefix": "^1.0.1", @@ -4755,8 +14644,6 @@ }, "global-prefix": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", "dev": true, "requires": { "expand-tilde": "^2.0.2", @@ -4768,8 +14655,6 @@ }, "globby": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", "dev": true, "requires": { "array-union": "^1.0.1", @@ -4781,51 +14666,35 @@ } }, "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" + "version": "4.2.3" }, "growl": { "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, "gud": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", - "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==" + "version": "1.0.0" }, "gzip-size": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz", - "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=", "dev": true, "requires": { "duplexer": "^0.1.1" } }, "hammerjs": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", - "integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE=" + "version": "2.0.8" }, "handle-thing": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz", - "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==", "dev": true }, "har-schema": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", "optional": true }, "har-validator": { "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "optional": true, "requires": { "ajv": "^6.5.5", @@ -4834,8 +14703,6 @@ }, "has": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { "function-bind": "^1.1.1" @@ -4843,8 +14710,6 @@ }, "has-ansi": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { "ansi-regex": "^2.0.0" @@ -4852,20 +14717,14 @@ }, "has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "dev": true }, "has-symbols": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", "dev": true }, "has-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, "requires": { "get-value": "^2.0.6", "has-values": "^1.0.0", @@ -4874,9 +14733,6 @@ }, "has-values": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, "requires": { "is-number": "^3.0.0", "kind-of": "^4.0.0" @@ -4884,9 +14740,6 @@ "dependencies": { "kind-of": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -4895,8 +14748,6 @@ }, "hash-base": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -4904,9 +14755,6 @@ }, "hash.js": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, "requires": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" @@ -4914,20 +14762,14 @@ }, "he": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, "hex-color-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", "dev": true }, "history": { "version": "4.10.1", - "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", - "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", "requires": { "@babel/runtime": "^7.1.2", "loose-envify": "^1.2.0", @@ -4939,9 +14781,6 @@ }, "hmac-drbg": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, "requires": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", @@ -4950,16 +14789,12 @@ }, "hoist-non-react-statics": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", - "integrity": "sha512-wbg3bpgA/ZqWrZuMOeJi8+SKMhr7X9TesL/rXMjTzh0p0JUBo3II8DHboYbuIXWRlttrUFxwcu/5kygrCw8fJw==", "requires": { "react-is": "^16.7.0" } }, "homedir-polyfill": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", "dev": true, "requires": { "parse-passwd": "^1.0.0" @@ -4967,14 +14802,10 @@ }, "hoopy": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", - "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", "dev": true }, "hpack.js": { "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, "requires": { "inherits": "^2.0.1", @@ -4985,32 +14816,22 @@ }, "hsl-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", "dev": true }, "hsla-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", "dev": true }, "html-comment-regex": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", - "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", "dev": true }, "html-entities": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", - "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", "dev": true }, "html-minifier": { "version": "3.5.21", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", - "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", "dev": true, "requires": { "camel-case": "3.0.x", @@ -5024,8 +14845,6 @@ }, "html-to-react": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/html-to-react/-/html-to-react-1.4.2.tgz", - "integrity": "sha512-TdTfxd95sRCo6QL8admCkE7mvNNrXtGoVr1dyS+7uvc8XCqAymnf/6ckclvnVbQNUo2Nh21VPwtfEHd0khiV7g==", "requires": { "domhandler": "^3.0", "htmlparser2": "^4.0", @@ -5035,8 +14854,6 @@ }, "html-webpack-externals-plugin": { "version": "3.8.0", - "resolved": "https://registry.npmjs.org/html-webpack-externals-plugin/-/html-webpack-externals-plugin-3.8.0.tgz", - "integrity": "sha512-LYrlPk/F8E+4xXNTVGuePalVx+efBlms3jaDCJE5yXEUBIORdzY5m2CMM45oBAZonUY50htXRsMyMizEbABUjw==", "dev": true, "requires": { "ajv": "^6.1.1", @@ -5046,8 +14863,6 @@ }, "html-webpack-include-assets-plugin": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/html-webpack-include-assets-plugin/-/html-webpack-include-assets-plugin-1.0.10.tgz", - "integrity": "sha512-F+VqD4Vt5zxqzYikT7+B/oZOHCi3xvBy5NaE8AtZGRB840mZ4+cti2p5z0PwXTs3pQShO3MEuhG+vakk0XtTig==", "dev": true, "requires": { "glob": "^7.1.3", @@ -5057,16 +14872,12 @@ "dependencies": { "slash": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", "dev": true } } }, "html-webpack-plugin": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", - "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", "dev": true, "requires": { "html-minifier": "^3.2.3", @@ -5080,20 +14891,14 @@ "dependencies": { "big.js": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", "dev": true }, "json5": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, "loader-utils": { "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", "dev": true, "requires": { "big.js": "^3.1.3", @@ -5106,8 +14911,6 @@ }, "htmlparser2": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.0.0.tgz", - "integrity": "sha512-cChwXn5Vam57fyXajDtPXL1wTYc8JtLbr2TN76FYu05itVVVealxLowe2B3IEznJG4p9HAYn/0tJaRlGuEglFQ==", "requires": { "domelementtype": "^2.0.1", "domhandler": "^3.0.0", @@ -5117,14 +14920,10 @@ }, "http-deceiver": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", "dev": true }, "http-errors": { "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", "dev": true, "requires": { "depd": "~1.1.2", @@ -5136,22 +14935,16 @@ "dependencies": { "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true } } }, "http-parser-js": { "version": "0.4.10", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", - "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=", "dev": true }, "http-proxy": { "version": "1.18.0", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz", - "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==", "dev": true, "requires": { "eventemitter3": "^4.0.0", @@ -5161,8 +14954,6 @@ }, "http-proxy-middleware": { "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", "dev": true, "requires": { "http-proxy": "^1.17.0", @@ -5173,8 +14964,6 @@ }, "http-signature": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "optional": true, "requires": { "assert-plus": "^1.0.0", @@ -5183,29 +14972,20 @@ } }, "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true + "version": "1.0.0" }, "iconv-lite": { "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { "safer-buffer": ">= 2.1.2 < 3" } }, "icss-replace-symbols": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", "dev": true }, "icss-utils": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", - "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", "dev": true, "requires": { "postcss": "^6.0.1" @@ -5213,8 +14993,6 @@ "dependencies": { "postcss": { "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { "chalk": "^2.4.1", @@ -5225,48 +15003,30 @@ } }, "idb": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/idb/-/idb-4.0.5.tgz", - "integrity": "sha512-P+Fk9HT2h1DhXoE1YNK183SY+CRh2GHNh28de94sGwhe0bUA75JJeVJWt3SenE5p0BXK7maflIq29dl6UZHrFw==" + "version": "4.0.5" }, "identity-img": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/identity-img/-/identity-img-1.0.0.tgz", - "integrity": "sha512-lOl0WslzXMFChhtnE6XeuSg68QjkfL5A1kNgQMlooo5+FDM6qBGiITlg1jMXHnXYoQ+t+4uPpCdjfjpV/wBwOw==" + "version": "1.0.0" }, "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", - "dev": true + "version": "1.1.13" }, "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true + "version": "0.1.5" }, "ignore": { "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", "dev": true }, "image-size": { "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", "optional": true }, "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" + "version": "3.0.6" }, "import-cwd": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", "dev": true, "requires": { "import-from": "^2.1.0" @@ -5274,8 +15034,6 @@ }, "import-fresh": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", "dev": true, "requires": { "caller-path": "^2.0.0", @@ -5284,8 +15042,6 @@ }, "import-from": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", "dev": true, "requires": { "resolve-from": "^3.0.0" @@ -5293,8 +15049,6 @@ }, "import-local": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", "dev": true, "requires": { "pkg-dir": "^3.0.0", @@ -5303,8 +15057,6 @@ "dependencies": { "find-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { "locate-path": "^3.0.0" @@ -5312,8 +15064,6 @@ }, "locate-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { "p-locate": "^3.0.0", @@ -5322,8 +15072,6 @@ }, "p-limit": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", - "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -5331,8 +15079,6 @@ }, "p-locate": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { "p-limit": "^2.0.0" @@ -5340,14 +15086,10 @@ }, "p-try": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, "pkg-dir": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "dev": true, "requires": { "find-up": "^3.0.0" @@ -5356,54 +15098,35 @@ } }, "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true + "version": "0.1.4" }, "indent-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true }, "indexes-of": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", "dev": true }, "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true + "version": "1.0.4" }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" } }, "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "version": "2.0.4" }, "ini": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true }, "inquirer": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, "requires": { "ansi-escapes": "^3.0.0", @@ -5424,14 +15147,10 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { "ansi-regex": "^3.0.0" @@ -5441,14 +15160,10 @@ }, "install": { "version": "0.12.2", - "resolved": "https://registry.npmjs.org/install/-/install-0.12.2.tgz", - "integrity": "sha512-+7thTb4Rpvs9mnlhHKGZFJbGOO6kyMgy+gg0sgM5vFzIFK0wrCYXqdlaM71Bi289DTuPHf61puMFsaZBcwDIrg==", "dev": true }, "internal-ip": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", "dev": true, "requires": { "default-gateway": "^4.2.0", @@ -5457,62 +15172,42 @@ }, "interpret": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", "dev": true }, "invariant": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { "loose-envify": "^1.0.0" } }, "invert-kv": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", "dev": true }, "ip": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", "dev": true }, "ip-regex": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", "dev": true }, "ipaddr.js": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", - "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==", "dev": true }, "is-absolute-url": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", "dev": true }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -5520,14 +15215,10 @@ } }, "is-alphabetical": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.3.tgz", - "integrity": "sha512-eEMa6MKpHFzw38eKm56iNNi6GJ7lf6aLLio7Kr23sJPAECscgRtZvOBYybejWDQ2bM949Y++61PY+udzj5QMLA==" + "version": "1.0.3" }, "is-alphanumerical": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.3.tgz", - "integrity": "sha512-A1IGAPO5AW9vSh7omxIlOGwIqEvpW/TA+DksVOPM5ODuxKlZS09+TEM1E3275lJqO2oJ38vDpeAL3DCIiHE6eA==", "requires": { "is-alphabetical": "^1.0.0", "is-decimal": "^1.0.0" @@ -5535,39 +15226,27 @@ }, "is-arguments": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", - "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", "dev": true }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "dev": true }, "is-binary-path": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, "requires": { "binary-extensions": "^1.0.0" } }, "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "version": "1.1.6" }, "is-callable": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", "dev": true }, "is-color-stop": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", "dev": true, "requires": { "css-color-names": "^0.0.4", @@ -5580,18 +15259,12 @@ }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -5600,20 +15273,13 @@ }, "is-date-object": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", "dev": true }, "is-decimal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.3.tgz", - "integrity": "sha512-bvLSwoDg2q6Gf+E2LEPiklHZxxiSi3XAh4Mav65mKqTfCO1HM3uBs24TjEH8iJX3bbDdLXKJXBTmGzuTUuAEjQ==" + "version": "1.0.3" }, "is-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -5621,65 +15287,41 @@ }, "dependencies": { "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true + "version": "5.1.0" } } }, "is-directory": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", "dev": true }, "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "version": "0.1.1" }, "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "version": "2.1.1" }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "is-glob": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, "requires": { "is-extglob": "^2.1.1" } }, "is-hexadecimal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.3.tgz", - "integrity": "sha512-zxQ9//Q3D/34poZf8fiy3m3XVpbQc7ren15iKqrTtLPwkPD/t3Scy9Imp63FujULGxuK0ZlCwoo5xNpktFgbOA==" + "version": "1.0.3" }, "is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -5688,20 +15330,14 @@ }, "is-obj": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true }, "is-path-cwd": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", "dev": true }, "is-path-in-cwd": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", "dev": true, "requires": { "is-path-inside": "^2.1.0" @@ -5709,37 +15345,26 @@ }, "is-path-inside": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", "dev": true, "requires": { "path-is-inside": "^1.0.2" } }, "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + "version": "1.1.0" }, "is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, "requires": { "isobject": "^3.0.1" } }, "is-promise": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", "dev": true }, "is-regex": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", "dev": true, "requires": { "has": "^1.0.3" @@ -5747,25 +15372,17 @@ }, "is-resolvable": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", "dev": true }, "is-root": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-1.0.0.tgz", - "integrity": "sha1-B7bCM7w5TNnQK6FclmvWZg1jQtU=", "dev": true }, "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "version": "1.1.0" }, "is-svg": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", - "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", "dev": true, "requires": { "html-comment-regex": "^1.1.0" @@ -5773,8 +15390,6 @@ }, "is-symbol": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", "dev": true, "requires": { "has-symbols": "^1.0.1" @@ -5782,53 +15397,32 @@ }, "is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "optional": true }, "is-whitespace-character": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.3.tgz", - "integrity": "sha512-SNPgMLz9JzPccD3nPctcj8sZlX9DAMJSKH8bP7Z6bohCwuNgX8xbWr1eTAYXX9Vpi/aSn8Y1akL9WgM3t43YNQ==" + "version": "1.0.3" }, "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true + "version": "1.0.2" }, "is-word-character": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.3.tgz", - "integrity": "sha512-0wfcrFgOOOBdgRNT9H33xe6Zi6yhX/uoc4U8NBZGeQQB0ctU1dnlNTyL9JM2646bHDTpsDm1Brb3VPoCIMrd/A==" + "version": "1.0.3" }, "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true + "version": "1.1.0" }, "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "version": "1.0.0" }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "version": "3.0.1" }, "isomorphic-fetch": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", "requires": { "node-fetch": "^1.0.1", "whatwg-fetch": ">=0.10.0" @@ -5836,14 +15430,10 @@ }, "isstream": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "optional": true }, "jest-worker": { "version": "25.2.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.2.1.tgz", - "integrity": "sha512-IHnpekk8H/hCUbBlfeaPZzU6v75bqwJp3n4dUrQuQOAgOneI4tx3jV2o8pvlXnDfcRsfkFIUD//HWXpCmR+evQ==", "dev": true, "requires": { "merge-stream": "^2.0.0", @@ -5852,14 +15442,10 @@ "dependencies": { "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "supports-color": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -5868,19 +15454,13 @@ } }, "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + "version": "0.8.0" }, "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "version": "4.0.0" }, "js-yaml": { "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -5889,74 +15469,50 @@ }, "jsbn": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "optional": true }, "jsesc": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", "dev": true }, "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + "version": "1.0.2" }, "json-schema": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "optional": true }, "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "version": "0.4.1" }, "json-stringify-safe": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "optional": true }, "json3": { "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", "dev": true }, "json5": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "requires": { "minimist": "^1.2.0" }, "dependencies": { "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "version": "1.2.0" } } }, "jsonc-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.2.0.tgz", - "integrity": "sha512-4fLQxW1j/5fWj6p78vAlAafoCKtuBm6ghv+Ij5W2DrDx0qE+ZdEl2c6Ko1mgJNF5ftX1iEWQQ4Ap7+3GlhjkOA==" + "version": "2.2.0" }, "jsonify": { "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", "dev": true }, "jsprim": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "optional": true, "requires": { "assert-plus": "1.0.0", @@ -5967,8 +15523,6 @@ }, "jszip": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.2.2.tgz", - "integrity": "sha512-NmKajvAFQpbg3taXQXr/ccS2wcucR1AZ+NtyWp2Nq7HHVsXhcJFR8p0Baf32C2yVvBylFWVeKf+WI2AnvlPhpA==", "requires": { "lie": "~3.3.0", "pako": "~1.0.2", @@ -5978,20 +15532,13 @@ }, "killable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", "dev": true }, "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true + "version": "6.0.2" }, "last-call-webpack-plugin": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", - "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", "dev": true, "requires": { "lodash": "^4.17.5", @@ -6000,8 +15547,6 @@ }, "lcid": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", "dev": true, "requires": { "invert-kv": "^2.0.0" @@ -6009,8 +15554,6 @@ }, "less": { "version": "3.10.3", - "resolved": "https://registry.npmjs.org/less/-/less-3.10.3.tgz", - "integrity": "sha512-vz32vqfgmoxF1h3K4J+yKCtajH0PWmjkIFgbs5d78E/c/e+UQTnI+lWK+1eQRE95PXM2mC3rJlLSSP9VQHnaow==", "requires": { "clone": "^2.1.2", "errno": "^0.1.1", @@ -6025,8 +15568,6 @@ }, "less-loader": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.1.0.tgz", - "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==", "requires": { "clone": "^2.1.1", "loader-utils": "^1.1.0", @@ -6035,27 +15576,15 @@ }, "lie": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", "requires": { "immediate": "~3.0.5" } }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" - }, "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "dev": true + "version": "2.4.0" }, "loader-utils": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", "requires": { "big.js": "^5.2.2", "emojis-list": "^2.0.0", @@ -6064,8 +15593,6 @@ }, "locate-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { "p-locate": "^2.0.0", @@ -6073,66 +15600,44 @@ } }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + "version": "4.17.15" }, "lodash-es": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.15.tgz", - "integrity": "sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ==" + "version": "4.17.15" }, "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + "version": "4.3.0" }, "lodash.clone": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz", - "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=" + "version": "4.5.0" }, "lodash.memoize": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", "dev": true }, "lodash.uniq": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", "dev": true }, "loglevel": { "version": "1.6.6", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.6.tgz", - "integrity": "sha512-Sgr5lbboAUBo3eXCSPL4/KoVz3ROKquOjcctxmHIt+vol2DrqTQe3SwkKKuYhEiWB5kYa13YyopJ69deJ1irzQ==", "dev": true }, "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + "version": "4.0.0" }, "loose-envify": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } }, "lower-case": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", "dev": true }, "lru-cache": { "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "dev": true, "requires": { "pseudomap": "^1.0.2", @@ -6141,8 +15646,6 @@ }, "make-dir": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { "pify": "^3.0.0" @@ -6150,49 +15653,32 @@ }, "make-error": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", - "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", "dev": true }, "mamacro": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", - "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", - "dev": true + "version": "0.0.3" }, "map-age-cleaner": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", "dev": true, "requires": { "p-defer": "^1.0.0" } }, "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true + "version": "0.2.2" }, "map-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, "requires": { "object-visit": "^1.0.0" } }, "markdown-escapes": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.3.tgz", - "integrity": "sha512-XUi5HJhhV5R74k8/0H2oCbCiYf/u4cO/rX8tnGkRvrqhsr5BRNU6Mg0yt/8UIx1iIS8220BNJsDb7XnILhLepw==" + "version": "1.0.3" }, "md5.js": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1", @@ -6201,28 +15687,20 @@ }, "mdast-add-list-metadata": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdast-add-list-metadata/-/mdast-add-list-metadata-1.0.1.tgz", - "integrity": "sha512-fB/VP4MJ0LaRsog7hGPxgOrSL3gE/2uEdZyDuSEnKCv/8IkYHiDkIQSbChiJoHyxZZXZ9bzckyRk+vNxFzh8rA==", "requires": { "unist-util-visit-parents": "1.1.2" } }, "mdn-data": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", "dev": true }, "media-typer": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, "mem": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", "dev": true, "requires": { "map-age-cleaner": "^0.1.1", @@ -6232,17 +15710,12 @@ "dependencies": { "mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true } } }, "memory-fs": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, "requires": { "errno": "^0.1.3", "readable-stream": "^2.0.1" @@ -6250,27 +15723,18 @@ }, "merge-descriptors": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", "dev": true }, "merge-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, "methods": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", "dev": true }, "micromatch": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -6289,9 +15753,6 @@ }, "miller-rabin": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, "requires": { "bn.js": "^4.0.0", "brorand": "^1.0.1" @@ -6299,32 +15760,23 @@ }, "mime": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "devOptional": true }, "mime-db": { - "version": "1.43.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", - "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" + "version": "1.43.0" }, "mime-types": { "version": "2.1.26", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", - "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", "requires": { "mime-db": "1.43.0" } }, "mimic-fn": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, "mini-css-extract-plugin": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.2.tgz", - "integrity": "sha512-a3Y4of27Wz+mqK3qrcd3VhYz6cU0iW5x3Sgvqzbj+XmlrSizmvu8QQMl5oMYJjgHOC4iyt+w7l4umP+dQeW3bw==", "dev": true, "requires": { "loader-utils": "^1.1.0", @@ -6335,8 +15787,6 @@ }, "mini-store": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mini-store/-/mini-store-2.0.0.tgz", - "integrity": "sha512-EG0CuwpQmX+XL4QVS0kxNwHW5ftSbhygu1qxQH0pipugjnPkbvkalCdQbEihMwtQY6d3MTN+MS0q+aurs+RfLQ==", "requires": { "hoist-non-react-statics": "^2.3.1", "prop-types": "^15.6.0", @@ -6345,42 +15795,27 @@ }, "dependencies": { "hoist-non-react-statics": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", - "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" + "version": "2.5.5" } } }, "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true + "version": "1.0.1" }, "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true + "version": "1.0.1" }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "version": "0.0.8" }, "minipass": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz", - "integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==", "dev": true, "requires": { "yallist": "^4.0.0" @@ -6388,16 +15823,12 @@ "dependencies": { "yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true } } }, "minipass-collect": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "dev": true, "requires": { "minipass": "^3.0.0" @@ -6405,8 +15836,6 @@ }, "minipass-flush": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, "requires": { "minipass": "^3.0.0" @@ -6414,8 +15843,6 @@ }, "minipass-pipeline": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz", - "integrity": "sha512-3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA==", "dev": true, "requires": { "minipass": "^3.0.0" @@ -6423,8 +15850,6 @@ }, "mississippi": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", - "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", "dev": true, "requires": { "concat-stream": "^1.5.0", @@ -6441,9 +15866,6 @@ }, "mixin-deep": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -6451,9 +15873,6 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, "requires": { "is-plain-object": "^2.0.4" } @@ -6462,21 +15881,15 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" } }, "mobx": { - "version": "5.15.2", - "resolved": "https://registry.npmjs.org/mobx/-/mobx-5.15.2.tgz", - "integrity": "sha512-eVmHGuSYd0ZU6x8gYMdgLEnCC9kfBJaf7/qJt+/yIxczVVUiVzHvTBjZH3xEa5FD5VJJSh1/Ba4SThE4ErEGjw==" + "version": "5.15.2" }, "mobx-react": { "version": "5.4.4", - "resolved": "https://registry.npmjs.org/mobx-react/-/mobx-react-5.4.4.tgz", - "integrity": "sha512-2mTzpyEjVB/RGk2i6KbcmP4HWcAUFox5ZRCrGvSyz49w20I4C4qql63grPpYrS9E9GKwgydBHQlA4y665LuRCQ==", "requires": { "hoist-non-react-statics": "^3.0.0", "react-lifecycles-compat": "^3.0.2" @@ -6484,13 +15897,10 @@ }, "mobx-utils": { "version": "5.5.2", - "resolved": "https://registry.npmjs.org/mobx-utils/-/mobx-utils-5.5.2.tgz", - "integrity": "sha512-cOlFJDWU/NHyGKvdhWqPdHmhPfeKewElAIZp5XticWIsSLGAA+4Uou3+8ookhQ/yG7qZXzvjAq90TZWXiR5+XA==" + "requires": {} }, "mocha": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", "dev": true, "requires": { "browser-stdout": "1.3.1", @@ -6508,14 +15918,10 @@ "dependencies": { "commander": { "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", "dev": true }, "glob": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -6528,14 +15934,10 @@ }, "he": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", "dev": true }, "supports-color": { "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -6544,19 +15946,13 @@ } }, "monaco-editor": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.18.1.tgz", - "integrity": "sha512-fmL+RFZ2Hrezy+X/5ZczQW51LUmvzfcqOurnkCIRFTyjdVjzR7JvENzI6+VKBJzJdPh6EYL4RoWl92b2Hrk9fw==" + "version": "0.18.1" }, "monaco-editor-core": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.12.0.tgz", - "integrity": "sha512-wOoEVAoZtrarDRcQC32Fp0ocacpQd6/Nb0FmUZOHeD3swZuPZhDLOxTyoNLjKq3d+h/6g+IARBLnDaLT5OQD4g==" + "version": "0.12.0" }, "monaco-languageclient": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/monaco-languageclient/-/monaco-languageclient-0.6.3.tgz", - "integrity": "sha512-C+4Q23F8dnQ6aWkeigfpcLe4QecMy4DTX0T906w+J3U516lYRWk5+i14ftpXlhw3nb+0wA5nSmcP2MtczCK0Sg==", "requires": { "glob-to-regexp": "^0.3.0", "monaco-editor-core": "^0.12.0", @@ -6565,20 +15961,14 @@ } }, "mousetrap": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/mousetrap/-/mousetrap-1.6.3.tgz", - "integrity": "sha512-bd+nzwhhs9ifsUrC2tWaSgm24/oo2c83zaRyZQF06hYA6sANfsXHtnZ19AbbbDXCDzeH5nZBSQ4NvCjgD62tJA==" + "version": "1.6.3" }, "mousetrap-global-bind": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mousetrap-global-bind/-/mousetrap-global-bind-1.1.0.tgz", - "integrity": "sha1-zX3pIivQZG+i4BDVTISnTCaojt0=" + "requires": {} }, "move-concurrently": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, "requires": { "aproba": "^1.1.1", "copy-concurrently": "^1.0.0", @@ -6589,14 +15979,10 @@ } }, "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "version": "2.0.0" }, "multicast-dns": { "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", "dev": true, "requires": { "dns-packet": "^1.3.1", @@ -6605,33 +15991,17 @@ }, "multicast-dns-service-types": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", "dev": true }, "mutationobserver-shim": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/mutationobserver-shim/-/mutationobserver-shim-0.3.3.tgz", - "integrity": "sha512-gciOLNN8Vsf7YzcqRjKzlAJ6y7e+B86u7i3KXes0xfxx/nfLmozlW1Vn+Sc9x3tPIePFgc1AeIFhtRgkqTjzDQ==" + "version": "0.3.3" }, "mute-stream": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", - "dev": true, - "optional": true - }, "nanomatch": { "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -6648,26 +16018,17 @@ }, "negotiator": { "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", "dev": true }, "neo-async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", - "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", - "dev": true + "version": "2.6.1" }, "nice-try": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, "no-case": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", "dev": true, "requires": { "lower-case": "^1.1.1" @@ -6675,23 +16036,16 @@ }, "node-fetch": { "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", "requires": { "encoding": "^0.1.11", "is-stream": "^1.0.1" } }, "node-forge": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.8.5.tgz", - "integrity": "sha512-vFMQIWt+J/7FLNyKouZ9TazT74PRV3wgv9UT4cRjC8BffxFbKXkgIWR42URCPSnHm/QDz6BOlb2Q0U4+VQT67Q==" + "version": "0.8.5" }, "node-libs-browser": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, "requires": { "assert": "^1.1.1", "browserify-zlib": "^0.2.0", @@ -6719,38 +16073,26 @@ }, "dependencies": { "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true + "version": "1.4.1" } } }, "node-releases": { "version": "1.1.45", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.45.tgz", - "integrity": "sha512-cXvGSfhITKI8qsV116u2FTzH5EWZJfgG7d4cpqwF8I8+1tWpD6AsvvGRKq2onR0DNj1jfqsjkXZsm14JMS7Cyg==", "dev": true, "requires": { "semver": "^6.3.0" } }, "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true + "version": "3.0.0" }, "normalize-range": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", "dev": true }, "normalize-url": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", "dev": true, "requires": { "object-assign": "^4.0.1", @@ -6760,14 +16102,10 @@ } }, "normalize.css": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz", - "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==" + "version": "8.0.1" }, "npm-run-path": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { "path-key": "^2.0.0" @@ -6775,8 +16113,6 @@ }, "nth-check": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", "dev": true, "requires": { "boolbase": "~1.0.0" @@ -6784,32 +16120,21 @@ }, "num2fraction": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", "dev": true }, "number-is-nan": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "oauth-sign": { "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", "optional": true }, "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "version": "4.1.1" }, "object-copy": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, "requires": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", @@ -6818,18 +16143,12 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } }, "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -6838,35 +16157,24 @@ }, "object-inspect": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", "dev": true }, "object-is": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz", - "integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==", "dev": true }, "object-keys": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, "object-visit": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, "requires": { "isobject": "^3.0.0" } }, "object.assign": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", "dev": true, "requires": { "define-properties": "^1.1.2", @@ -6877,8 +16185,6 @@ }, "object.getownpropertydescriptors": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", "dev": true, "requires": { "define-properties": "^1.1.3", @@ -6887,17 +16193,12 @@ }, "object.pick": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, "requires": { "isobject": "^3.0.1" } }, "object.values": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", - "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", "dev": true, "requires": { "define-properties": "^1.1.3", @@ -6908,14 +16209,10 @@ }, "obuf": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, "on-finished": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", "dev": true, "requires": { "ee-first": "1.1.1" @@ -6923,23 +16220,16 @@ }, "on-headers": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", "dev": true }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } }, "onetime": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { "mimic-fn": "^1.0.0" @@ -6947,14 +16237,10 @@ }, "opener": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz", - "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==", "dev": true }, "opn": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.2.0.tgz", - "integrity": "sha512-Jd/GpzPyHF4P2/aNOVmS3lfMSWV9J7cOhCG1s08XCEAsPkB7lp6ddiU0J7XzyQRDUh8BqJ7PchfINjR8jyofRQ==", "dev": true, "requires": { "is-wsl": "^1.1.0" @@ -6962,8 +16248,6 @@ }, "optimize-css-assets-webpack-plugin": { "version": "5.0.3", - "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz", - "integrity": "sha512-q9fbvCRS6EYtUKKSwI87qm2IxlyJK5b4dygW1rKUBT6mMDhdG5e5bZT63v6tnJR9F9FB/H5a0HTmtw+laUBxKA==", "dev": true, "requires": { "cssnano": "^4.1.10", @@ -6972,23 +16256,16 @@ }, "original": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", "dev": true, "requires": { "url-parse": "^1.4.3" } }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true + "os-browserify": { + "version": "0.3.0" }, "os-locale": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", "dev": true, "requires": { "execa": "^1.0.0", @@ -6998,32 +16275,22 @@ }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, "p-defer": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", "dev": true }, "p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, "p-is-promise": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", "dev": true }, "p-limit": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { "p-try": "^1.0.0" @@ -7031,8 +16298,6 @@ }, "p-locate": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { "p-limit": "^1.1.0" @@ -7040,14 +16305,10 @@ }, "p-map": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", "dev": true }, "p-retry": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", "dev": true, "requires": { "retry": "^0.12.0" @@ -7055,20 +16316,13 @@ }, "p-try": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, "pako": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==" + "version": "1.0.10" }, "parallel-transform": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dev": true, "requires": { "cyclist": "^1.0.1", "inherits": "^2.0.3", @@ -7077,33 +16331,13 @@ }, "param-case": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", "dev": true, "requires": { "no-case": "^2.2.0" } }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "requires": { - "callsites": "^3.0.0" - }, - "dependencies": { - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - } - } - }, "parse-asn1": { "version": "5.1.5", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", - "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", - "dev": true, "requires": { "asn1.js": "^4.0.0", "browserify-aes": "^1.0.0", @@ -7115,8 +16349,6 @@ }, "parse-entities": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz", - "integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==", "requires": { "character-entities": "^1.0.0", "character-entities-legacy": "^1.0.0", @@ -7128,8 +16360,6 @@ }, "parse-json": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { "error-ex": "^1.3.1", @@ -7138,96 +16368,62 @@ }, "parse-passwd": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", "dev": true }, "parseurl": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true }, "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true + "version": "0.1.1" }, "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true + "version": "0.0.1" }, "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true + "version": "1.0.2" }, "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true + "version": "3.0.0" }, "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "version": "1.0.1" }, "path-is-inside": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", "dev": true }, "path-key": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, "path-parse": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + "dev": true }, "path-to-regexp": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", "requires": { "isarray": "0.0.1" }, "dependencies": { "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + "version": "0.0.1" } } }, "path-type": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { "pify": "^3.0.0" } }, "pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=" + "version": "1.1.0" }, "pbkdf2": { "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", "requires": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -7237,30 +16433,20 @@ } }, "perfect-scrollbar": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.4.0.tgz", - "integrity": "sha512-/2Sk/khljhdrsamjJYS5NjrH+GKEHEwh7zFSiYyxROyYKagkE4kSn2zDQDRTOMo8mpT2jikxx6yI1dG7lNP/hw==" + "version": "1.4.0" }, "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "version": "2.1.0" }, "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "version": "3.0.0" }, "pinkie": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", "dev": true }, "pinkie-promise": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { "pinkie": "^2.0.0" @@ -7268,8 +16454,6 @@ }, "pkg-dir": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { "find-up": "^2.1.0" @@ -7277,8 +16461,6 @@ }, "portfinder": { "version": "1.0.25", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz", - "integrity": "sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==", "dev": true, "requires": { "async": "^2.6.2", @@ -7288,8 +16470,6 @@ "dependencies": { "debug": { "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { "ms": "^2.1.1" @@ -7297,22 +16477,15 @@ }, "ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } }, "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true + "version": "0.1.1" }, "postcss": { "version": "7.0.26", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.26.tgz", - "integrity": "sha512-IY4oRjpXWYshuTDFxMVkJDtWIk2LhsTlu8bZnbEJA4+bYT16Lvpo8Qv6EvDumhYRgzjZl489pmsY3qVgJQ08nA==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -7322,8 +16495,6 @@ "dependencies": { "supports-color": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -7333,8 +16504,6 @@ }, "postcss-calc": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.1.tgz", - "integrity": "sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ==", "dev": true, "requires": { "css-unit-converter": "^1.1.1", @@ -7345,16 +16514,12 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true } } }, "postcss-colormin": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", - "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", "dev": true, "requires": { "browserslist": "^4.0.0", @@ -7366,16 +16531,12 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true } } }, "postcss-convert-values": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", - "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", "dev": true, "requires": { "postcss": "^7.0.0", @@ -7384,16 +16545,12 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true } } }, "postcss-discard-comments": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", - "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", "dev": true, "requires": { "postcss": "^7.0.0" @@ -7401,8 +16558,6 @@ }, "postcss-discard-duplicates": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", - "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", "dev": true, "requires": { "postcss": "^7.0.0" @@ -7410,8 +16565,6 @@ }, "postcss-discard-empty": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", - "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", "dev": true, "requires": { "postcss": "^7.0.0" @@ -7419,8 +16572,6 @@ }, "postcss-discard-overridden": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", - "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", "dev": true, "requires": { "postcss": "^7.0.0" @@ -7428,8 +16579,6 @@ }, "postcss-flexbugs-fixes": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.1.0.tgz", - "integrity": "sha512-jr1LHxQvStNNAHlgco6PzY308zvLklh7SJVYuWUwyUQncofaAlD2l+P/gxKHOdqWKe7xJSkVLFF/2Tp+JqMSZA==", "dev": true, "requires": { "postcss": "^7.0.0" @@ -7437,8 +16586,6 @@ }, "postcss-inline-svg": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-inline-svg/-/postcss-inline-svg-3.1.1.tgz", - "integrity": "sha512-G2BkarW6gGpGFGAiKzW7aiulUS0/6QuCgq1riZEiX4oMaUTpU1pdW7BU6UFRDrdKkwS0r4icK2pU0bg6sCSOjw==", "dev": true, "requires": { "css-select": "^1.2.0", @@ -7450,8 +16597,6 @@ "dependencies": { "dom-serializer": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", "dev": true, "requires": { "domelementtype": "^1.3.0", @@ -7460,14 +16605,10 @@ }, "domelementtype": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", "dev": true }, "domhandler": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "dev": true, "requires": { "domelementtype": "1" @@ -7475,8 +16616,6 @@ }, "domutils": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "dev": true, "requires": { "dom-serializer": "0", @@ -7485,14 +16624,10 @@ }, "entities": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", "dev": true }, "htmlparser2": { "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", "dev": true, "requires": { "domelementtype": "^1.3.1", @@ -7505,8 +16640,6 @@ }, "postcss": { "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { "chalk": "^2.4.1", @@ -7516,14 +16649,10 @@ }, "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true }, "readable-stream": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -7535,8 +16664,6 @@ }, "postcss-load-config": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz", - "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==", "dev": true, "requires": { "cosmiconfig": "^5.0.0", @@ -7545,8 +16672,6 @@ }, "postcss-loader": { "version": "2.1.6", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.6.tgz", - "integrity": "sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg==", "dev": true, "requires": { "loader-utils": "^1.1.0", @@ -7557,8 +16682,6 @@ "dependencies": { "postcss": { "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { "chalk": "^2.4.1", @@ -7568,8 +16691,6 @@ }, "schema-utils": { "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", "dev": true, "requires": { "ajv": "^6.1.0", @@ -7580,8 +16701,6 @@ }, "postcss-merge-longhand": { "version": "4.0.11", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", - "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", "dev": true, "requires": { "css-color-names": "0.0.4", @@ -7592,16 +16711,12 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true } } }, "postcss-merge-rules": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", - "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", "dev": true, "requires": { "browserslist": "^4.0.0", @@ -7614,8 +16729,6 @@ "dependencies": { "postcss-selector-parser": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", "dev": true, "requires": { "dot-prop": "^4.1.1", @@ -7627,8 +16740,6 @@ }, "postcss-minify-font-values": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", "dev": true, "requires": { "postcss": "^7.0.0", @@ -7637,16 +16748,12 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true } } }, "postcss-minify-gradients": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", - "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", "dev": true, "requires": { "cssnano-util-get-arguments": "^4.0.0", @@ -7657,16 +16764,12 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true } } }, "postcss-minify-params": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", - "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", "dev": true, "requires": { "alphanum-sort": "^1.0.0", @@ -7679,16 +16782,12 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true } } }, "postcss-minify-selectors": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", - "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", "dev": true, "requires": { "alphanum-sort": "^1.0.0", @@ -7699,8 +16798,6 @@ "dependencies": { "postcss-selector-parser": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", "dev": true, "requires": { "dot-prop": "^4.1.1", @@ -7712,8 +16809,6 @@ }, "postcss-modules-extract-imports": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz", - "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==", "dev": true, "requires": { "postcss": "^6.0.1" @@ -7721,8 +16816,6 @@ "dependencies": { "postcss": { "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { "chalk": "^2.4.1", @@ -7734,8 +16827,6 @@ }, "postcss-modules-local-by-default": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", - "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", "dev": true, "requires": { "css-selector-tokenizer": "^0.7.0", @@ -7744,8 +16835,6 @@ "dependencies": { "postcss": { "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { "chalk": "^2.4.1", @@ -7757,8 +16846,6 @@ }, "postcss-modules-scope": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", "dev": true, "requires": { "css-selector-tokenizer": "^0.7.0", @@ -7767,8 +16854,6 @@ "dependencies": { "postcss": { "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { "chalk": "^2.4.1", @@ -7780,8 +16865,6 @@ }, "postcss-modules-values": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", "dev": true, "requires": { "icss-replace-symbols": "^1.1.0", @@ -7790,8 +16873,6 @@ "dependencies": { "postcss": { "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { "chalk": "^2.4.1", @@ -7803,8 +16884,6 @@ }, "postcss-normalize-charset": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", - "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", "dev": true, "requires": { "postcss": "^7.0.0" @@ -7812,8 +16891,6 @@ }, "postcss-normalize-display-values": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", "dev": true, "requires": { "cssnano-util-get-match": "^4.0.0", @@ -7823,16 +16900,12 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true } } }, "postcss-normalize-positions": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", "dev": true, "requires": { "cssnano-util-get-arguments": "^4.0.0", @@ -7843,16 +16916,12 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true } } }, "postcss-normalize-repeat-style": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", "dev": true, "requires": { "cssnano-util-get-arguments": "^4.0.0", @@ -7863,16 +16932,12 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true } } }, "postcss-normalize-string": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", - "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", "dev": true, "requires": { "has": "^1.0.0", @@ -7882,16 +16947,12 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true } } }, "postcss-normalize-timing-functions": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", "dev": true, "requires": { "cssnano-util-get-match": "^4.0.0", @@ -7901,16 +16962,12 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true } } }, "postcss-normalize-unicode": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", "dev": true, "requires": { "browserslist": "^4.0.0", @@ -7920,16 +16977,12 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true } } }, "postcss-normalize-url": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", "dev": true, "requires": { "is-absolute-url": "^2.0.0", @@ -7940,22 +16993,16 @@ "dependencies": { "normalize-url": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", - "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", "dev": true }, "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true } } }, "postcss-normalize-whitespace": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", "dev": true, "requires": { "postcss": "^7.0.0", @@ -7964,16 +17011,12 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true } } }, "postcss-ordered-values": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", - "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", "dev": true, "requires": { "cssnano-util-get-arguments": "^4.0.0", @@ -7983,16 +17026,12 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true } } }, "postcss-reduce-initial": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", - "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", "dev": true, "requires": { "browserslist": "^4.0.0", @@ -8003,8 +17042,6 @@ }, "postcss-reduce-transforms": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", "dev": true, "requires": { "cssnano-util-get-match": "^4.0.0", @@ -8015,16 +17052,12 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true } } }, "postcss-selector-parser": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "dev": true, "requires": { "cssesc": "^2.0.0", @@ -8034,16 +17067,12 @@ "dependencies": { "cssesc": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true } } }, "postcss-svgo": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", - "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", "dev": true, "requires": { "is-svg": "^3.0.0", @@ -8054,16 +17083,12 @@ "dependencies": { "postcss-value-parser": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true } } }, "postcss-unique-selectors": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", - "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", "dev": true, "requires": { "alphanum-sort": "^1.0.0", @@ -8073,20 +17098,14 @@ }, "postcss-value-parser": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz", - "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==", "dev": true }, "prepend-http": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", "dev": true }, "pretty-error": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", - "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", "dev": true, "requires": { "renderkid": "^2.0.1", @@ -8094,34 +17113,22 @@ } }, "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true + "version": "0.11.10" }, "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "version": "2.0.1" }, "promise": { "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", "requires": { "asap": "~2.0.3" } }, "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true + "version": "1.0.1" }, "prop-types": { "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", "requires": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -8129,9 +17136,7 @@ } }, "protobufjs": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.10.1.tgz", - "integrity": "sha512-pb8kTchL+1Ceg4lFd5XUpK8PdWacbvV5SK2ULH2ebrYtl4GjJmS24m6CKME67jzV53tbJxHlnNOSqQHbTsR9JQ==", + "version": "6.8.7", "requires": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -8143,22 +17148,18 @@ "@protobufjs/path": "^1.1.2", "@protobufjs/pool": "^1.1.0", "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": "^13.7.0", + "@types/long": "^4.0.0", + "@types/node": "^10.1.0", "long": "^4.0.0" }, "dependencies": { "@types/node": { - "version": "13.13.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.21.tgz", - "integrity": "sha512-tlFWakSzBITITJSxHV4hg4KvrhR/7h3xbJdSFbYJBVzKubrASbnnIFuSgolUh7qKGo/ZeJPKUfbZ0WS6Jp14DQ==" + "version": "10.17.60" } } }, "proxy-addr": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", - "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", "dev": true, "requires": { "forwarded": "~0.1.2", @@ -8166,27 +17167,18 @@ } }, "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + "version": "1.0.1" }, "pseudomap": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, "psl": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", - "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==", "optional": true }, "public-encrypt": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, "requires": { "bn.js": "^4.1.0", "browserify-rsa": "^4.0.0", @@ -8198,9 +17190,6 @@ }, "pump": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -8208,9 +17197,6 @@ }, "pumpify": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, "requires": { "duplexify": "^3.6.0", "inherits": "^2.0.3", @@ -8218,26 +17204,18 @@ } }, "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "version": "2.1.1" }, "q": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", "dev": true }, "qs": { "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "optional": true }, "query-string": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", "dev": true, "requires": { "object-assign": "^4.1.0", @@ -8245,54 +17223,35 @@ } }, "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true + "version": "0.2.0" }, "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true + "version": "0.2.1" }, "querystringify": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", - "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==", "dev": true }, "raf": { "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", "requires": { "performance-now": "^2.1.0" } }, "raf-schd": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.2.tgz", - "integrity": "sha512-VhlMZmGy6A6hrkJWHLNTGl5gtgMUm+xfGza6wbwnE914yeQ5Ybm18vgM734RZhMgfw4tacUrWseGZlpUrrakEQ==" + "version": "4.0.2" }, "ramda": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz", - "integrity": "sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==" + "version": "0.26.1" }, "randombytes": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "requires": { "safe-buffer": "^5.1.0" } }, "randomfill": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, "requires": { "randombytes": "^2.0.5", "safe-buffer": "^5.1.0" @@ -8300,14 +17259,10 @@ }, "range-parser": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true }, "raw-body": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", "dev": true, "requires": { "bytes": "3.1.0", @@ -8318,14 +17273,10 @@ }, "raw-loader": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", - "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", "dev": true }, "rc-align": { "version": "2.4.5", - "resolved": "https://registry.npmjs.org/rc-align/-/rc-align-2.4.5.tgz", - "integrity": "sha512-nv9wYUYdfyfK+qskThf4BQUSIadeI/dCsfaMZfNEoxm9HwOIioQ+LyqmMK6jWHAZQgOzMLaqawhuBXlF63vgjw==", "requires": { "babel-runtime": "^6.26.0", "dom-align": "^1.7.0", @@ -8335,8 +17286,6 @@ }, "rc-animate": { "version": "2.10.2", - "resolved": "https://registry.npmjs.org/rc-animate/-/rc-animate-2.10.2.tgz", - "integrity": "sha512-cE/A7piAzoWFSgUD69NmmMraqCeqVBa51UErod8NS3LUEqWfppSVagHfa0qHAlwPVPiIBg3emRONyny3eiH0Dg==", "requires": { "babel-runtime": "6.x", "classnames": "^2.2.6", @@ -8349,8 +17298,6 @@ }, "rc-collapse": { "version": "1.11.8", - "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-1.11.8.tgz", - "integrity": "sha512-8EhfPyScTYljkbRuIoHniSwZagD5UPpZ3CToYgoNYWC85L2qCbPYF7+OaC713FOrIkp6NbfNqXsITNxmDAmxog==", "requires": { "classnames": "2.x", "css-animation": "1.x", @@ -8363,8 +17310,6 @@ }, "rc-dialog": { "version": "7.6.0", - "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-7.6.0.tgz", - "integrity": "sha512-N48vBPW8I53WycFHI4KXhuTUkB4mx+hixq1a9tcFMLoE7EhkAjbHvs0vGg+Bh/uFg5V00jmZBgQOIEbhcNal/A==", "requires": { "babel-runtime": "6.x", "rc-animate": "2.x", @@ -8373,8 +17318,6 @@ }, "rc-dropdown": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-2.4.1.tgz", - "integrity": "sha512-p0XYn0wrOpAZ2fUGE6YJ6U8JBNc5ASijznZ6dkojdaEfQJAeZtV9KMEewhxkVlxGSbbdXe10ptjBlTEW9vEwEg==", "requires": { "babel-runtime": "^6.26.0", "classnames": "^2.2.6", @@ -8385,8 +17328,6 @@ }, "rc-hammerjs": { "version": "0.6.9", - "resolved": "https://registry.npmjs.org/rc-hammerjs/-/rc-hammerjs-0.6.9.tgz", - "integrity": "sha512-4llgWO3RgLyVbEqUdGsDfzUDqklRlQW5VEhE3x35IvhV+w//VPRG34SBavK3D2mD/UaLKaohgU41V4agiftC8g==", "requires": { "babel-runtime": "6.x", "hammerjs": "^2.0.8", @@ -8395,8 +17336,6 @@ }, "rc-menu": { "version": "7.5.4", - "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-7.5.4.tgz", - "integrity": "sha512-cdScYSp+K0qS817UPdrPtbWNKOSoaVlh1l3cW8QcHFbAFT3K06YlZpFrhREJx9vOsvY4NoW6D48w+lELvUyo5A==", "requires": { "classnames": "2.x", "dom-scroll-into-view": "1.x", @@ -8411,8 +17350,6 @@ }, "rc-notification": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-3.3.1.tgz", - "integrity": "sha512-U5+f4BmBVfMSf3OHSLyRagsJ74yKwlrQAtbbL5ijoA0F2C60BufwnOcHG18tVprd7iaIjzZt1TKMmQSYSvgrig==", "requires": { "babel-runtime": "6.x", "classnames": "2.x", @@ -8423,8 +17360,6 @@ }, "rc-select": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-9.2.2.tgz", - "integrity": "sha512-+NXatBt/wrT03L2e6hDEQfvMG4ihrQymuMtbDVi9+99Qlq2Ip7rASE/5XUYR2bOak7Ce9xXUckfKwhN3Jpp4MA==", "requires": { "babel-runtime": "^6.23.0", "classnames": "2.x", @@ -8442,8 +17377,6 @@ }, "rc-tabs": { "version": "9.7.0", - "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-9.7.0.tgz", - "integrity": "sha512-kvmgp8/MfLzFZ06hWHignqomFQ5nF7BqKr5O1FfhE4VKsGrep52YSF/1MvS5oe0NPcI9XGNS2p751C5v6cYDpQ==", "requires": { "@ant-design/create-react-context": "^0.2.4", "babel-runtime": "6.x", @@ -8460,8 +17393,6 @@ }, "rc-tooltip": { "version": "3.7.3", - "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-3.7.3.tgz", - "integrity": "sha512-dE2ibukxxkrde7wH9W8ozHKUO4aQnPZ6qBHtrTH9LoO836PjDdiaWO73fgPB05VfJs9FbZdmGPVEbXCeOP99Ww==", "requires": { "babel-runtime": "6.x", "prop-types": "^15.5.8", @@ -8470,8 +17401,6 @@ }, "rc-tree": { "version": "1.15.3", - "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-1.15.3.tgz", - "integrity": "sha512-FIKGKCesbQnILbsjGyu354R5pfrFtOcYz/w3ZIqFkJWIbbUeveWU8BgTKcpeSQgyKju1hsWORAePkeA+V1unFg==", "requires": { "babel-runtime": "^6.23.0", "classnames": "2.x", @@ -8484,8 +17413,6 @@ "dependencies": { "rc-animate": { "version": "3.0.0-rc.6", - "resolved": "https://registry.npmjs.org/rc-animate/-/rc-animate-3.0.0-rc.6.tgz", - "integrity": "sha512-oBLPpiT6Q4t6YvD/pkLcmofBP1p01TX0Otse8Q4+Mxt8J+VSDflLZGIgf62EwkvRwsQUkLPjZVFBsldnPKLzjg==", "requires": { "babel-runtime": "6.x", "classnames": "^2.2.5", @@ -8499,8 +17426,6 @@ }, "warning": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", "requires": { "loose-envify": "^1.0.0" } @@ -8509,8 +17434,6 @@ }, "rc-trigger": { "version": "2.6.5", - "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-2.6.5.tgz", - "integrity": "sha512-m6Cts9hLeZWsTvWnuMm7oElhf+03GOjOLfTuU0QmdB9ZrW7jR2IpI5rpNM7i9MvAAlMAmTx5Zr7g3uu/aMvZAw==", "requires": { "babel-runtime": "6.x", "classnames": "^2.2.6", @@ -8523,8 +17446,6 @@ }, "rc-util": { "version": "4.18.1", - "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-4.18.1.tgz", - "integrity": "sha512-3aRHG32ZvqBymtJUGoQnbZS+XANzO6XTiFEFAYI3BfuxESEazopAy0kBwcAI6BlLHsW1oLiy3ysE9uYwylh2ag==", "requires": { "add-dom-event-listener": "^1.1.0", "babel-runtime": "6.x", @@ -8534,14 +17455,10 @@ } }, "re-resizable": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/re-resizable/-/re-resizable-4.11.0.tgz", - "integrity": "sha512-dye+7rERqNf/6mDT1iwps+4Gf42420xuZgygF33uX178DxffqcyeuHbBuJ382FIcB5iP6mMZOhfW7kI0uXwb/Q==" + "version": "4.11.0" }, "react": { "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.12.0.tgz", - "integrity": "sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -8550,8 +17467,6 @@ }, "react-copy-to-clipboard": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.2.tgz", - "integrity": "sha512-/2t5mLMMPuN5GmdXo6TebFa8IoFxZ+KTDDqYhcDm0PhkgEzSxVvIX26G20s1EB02A4h2UZgwtfymZ3lGJm0OLg==", "requires": { "copy-to-clipboard": "^3", "prop-types": "^15.5.8" @@ -8559,13 +17474,10 @@ }, "react-custom-scroll": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/react-custom-scroll/-/react-custom-scroll-3.2.2.tgz", - "integrity": "sha512-JQf2iz6GDcHTosDvQcKAttSJeBOI3uh+fVobcO1W4RVmlSqoPfVplhdwIMC+HSN6YZt6iuLAiCl1OLiu4wd/pg==" + "requires": {} }, "react-dev-utils": { "version": "5.0.3", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-5.0.3.tgz", - "integrity": "sha512-Mvs6ofsc2xTjeZIrMaIfbXfsPVrbdVy/cVqq6SAacnqfMlcBpDuivhWZ1ODGeJ8HgmyWTLH971PYjj/EPCDVAw==", "dev": true, "requires": { "address": "1.0.3", @@ -8590,14 +17502,10 @@ "dependencies": { "ansi-styles": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, "chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { "ansi-styles": "^2.2.1", @@ -8609,16 +17517,12 @@ }, "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true } } }, "react-dom": { "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.12.0.tgz", - "integrity": "sha512-LMxFfAGrcS3kETtQaCkTKjMiifahaMySFDn71fZUNpPHZQEzmk/GiAeIT8JSOrHB23fnuCOMruL2a8NYlw+8Gw==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -8628,29 +17532,20 @@ }, "react-error-overlay": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-4.0.1.tgz", - "integrity": "sha512-xXUbDAZkU08aAkjtUvldqbvI04ogv+a1XdHxvYuHPYKIVk/42BIOD0zSKTHAWV4+gDy3yGm283z2072rA2gdtw==", "dev": true }, "react-files": { "version": "2.4.8", - "resolved": "https://registry.npmjs.org/react-files/-/react-files-2.4.8.tgz", - "integrity": "sha512-ua1MT5wOT+5qHWa98UxgIA9BhtzzmsgWaacNuuLMs97U/7fhSCSXvvWjG17xGtJN/0bzmkbu04SaKApcAPd1kQ==" + "requires": {} }, "react-is": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz", - "integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==" + "version": "16.12.0" }, "react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + "version": "3.0.4" }, "react-markdown": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-4.3.1.tgz", - "integrity": "sha512-HQlWFTbDxTtNY6bjgp3C3uv1h2xcjCSi1zAEzfBW9OwJJvENSYiLXWNXN5hHLsoqai7RnZiiHzcnWdXk2Splzw==", "requires": { "html-to-react": "^1.3.4", "mdast-add-list-metadata": "1.0.1", @@ -8664,8 +17559,6 @@ }, "react-monaco-editor": { "version": "0.29.0", - "resolved": "https://registry.npmjs.org/react-monaco-editor/-/react-monaco-editor-0.29.0.tgz", - "integrity": "sha512-Enff/VtqUH6jQyNmrqdeosh59fossZYSmGy8nL3DN+BeTTx1dwBhYOf7noqBULCp4D+JA1ZSQQL5lAPwFjnMqw==", "requires": { "@types/react": "^16.9.1", "prop-types": "^15.7.2" @@ -8673,8 +17566,6 @@ }, "react-perfect-scrollbar": { "version": "1.5.3", - "resolved": "https://registry.npmjs.org/react-perfect-scrollbar/-/react-perfect-scrollbar-1.5.3.tgz", - "integrity": "sha512-2fVqbDJgOb1siCCJozGbv22cAHnh6TI9HFHRpM0lBJTPPM0ajgmsU75mBnI3k0ndryo+JiwUbLKACrurx1BjBw==", "requires": { "perfect-scrollbar": "^1.4.0", "prop-types": "^15.6.1" @@ -8682,8 +17573,6 @@ }, "react-redux": { "version": "7.1.3", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.1.3.tgz", - "integrity": "sha512-uI1wca+ECG9RoVkWQFF4jDMqmaw0/qnvaSvOoL/GA4dNxf6LoV8sUAcNDvE5NWKs4hFpn0t6wswNQnY3f7HT3w==", "requires": { "@babel/runtime": "^7.5.5", "hoist-non-react-statics": "^3.3.0", @@ -8695,8 +17584,6 @@ }, "react-resize-detector": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/react-resize-detector/-/react-resize-detector-4.2.1.tgz", - "integrity": "sha512-ZfPMBPxXi0o3xox42MIEtz84tPSVMW9GgwLHYvjVXlFM+OkNzbeEtpVSV+mSTJmk4Znwomolzt35zHN9LNBQMQ==", "requires": { "lodash": "^4.17.15", "lodash-es": "^4.17.15", @@ -8707,8 +17594,6 @@ }, "react-router": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-4.3.1.tgz", - "integrity": "sha512-yrvL8AogDh2X42Dt9iknk4wF4V8bWREPirFfS9gLU1huk6qK41sg7Z/1S81jjTrGHxa3B8R3J6xIkDAA6CVarg==", "requires": { "history": "^4.7.2", "hoist-non-react-statics": "^2.5.0", @@ -8720,16 +17605,12 @@ }, "dependencies": { "hoist-non-react-statics": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", - "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" + "version": "2.5.5" } } }, "react-router-dom": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-4.3.1.tgz", - "integrity": "sha512-c/MlywfxDdCp7EnB7YfPMOfMD3tOtIjrQlj/CKfNMBxdmpJP8xcz5P/UAFn3JbnQCNUxsHyVVqllF9LhgVyFCA==", "requires": { "history": "^4.7.2", "invariant": "^2.2.4", @@ -8741,8 +17622,6 @@ }, "readable-stream": { "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -8754,17 +17633,12 @@ }, "dependencies": { "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.1.2" } } }, "readdirp": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, "requires": { "graceful-fs": "^4.1.11", "micromatch": "^3.1.10", @@ -8773,8 +17647,6 @@ }, "recursive-readdir": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.1.tgz", - "integrity": "sha1-kO8jHQd4xc4JPJpI105cVCLROpk=", "dev": true, "requires": { "minimatch": "3.0.3" @@ -8782,8 +17654,6 @@ "dependencies": { "minimatch": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=", "dev": true, "requires": { "brace-expansion": "^1.0.0" @@ -8793,9 +17663,6 @@ }, "redux": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz", - "integrity": "sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==", - "dev": true, "requires": { "loose-envify": "^1.4.0", "symbol-observable": "^1.2.0" @@ -8803,20 +17670,13 @@ }, "regenerate": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", "dev": true }, "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + "version": "0.11.1" }, "regex-not": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" @@ -8824,8 +17684,6 @@ }, "regexp.prototype.flags": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", - "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", "dev": true, "requires": { "define-properties": "^1.1.3", @@ -8834,8 +17692,6 @@ }, "regexpu-core": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", "dev": true, "requires": { "regenerate": "^1.2.1", @@ -8845,14 +17701,10 @@ }, "regjsgen": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", "dev": true }, "regjsparser": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, "requires": { "jsesc": "~0.5.0" @@ -8860,14 +17712,10 @@ }, "relateurl": { "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", "dev": true }, "remark-parse": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz", - "integrity": "sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==", "requires": { "collapse-white-space": "^1.0.2", "is-alphabetical": "^1.0.0", @@ -8887,15 +17735,10 @@ } }, "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true + "version": "1.1.0" }, "renderkid": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz", - "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==", "dev": true, "requires": { "css-select": "^1.1.0", @@ -8907,14 +17750,10 @@ "dependencies": { "domelementtype": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", "dev": true }, "domhandler": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "dev": true, "requires": { "domelementtype": "1" @@ -8922,8 +17761,6 @@ }, "domutils": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "dev": true, "requires": { "dom-serializer": "0", @@ -8932,14 +17769,10 @@ }, "entities": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", "dev": true }, "htmlparser2": { "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", "dev": true, "requires": { "domelementtype": "^1.3.1", @@ -8952,8 +17785,6 @@ }, "readable-stream": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -8964,25 +17795,16 @@ } }, "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true + "version": "1.1.3" }, "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + "version": "1.6.1" }, "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" + "version": "1.0.0" }, "request": { "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "optional": true, "requires": { "aws-sign2": "~0.7.0", @@ -9009,39 +17831,28 @@ }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, "require-main-filename": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, "requires-port": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", "dev": true }, "resize-observer-polyfill": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + "version": "1.5.1" }, "resolve": { "version": "1.14.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.2.tgz", - "integrity": "sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ==", + "dev": true, "requires": { "path-parse": "^1.0.6" } }, "resolve-cwd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "dev": true, "requires": { "resolve-from": "^3.0.0" @@ -9049,8 +17860,6 @@ }, "resolve-dir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", "dev": true, "requires": { "expand-tilde": "^2.0.0", @@ -9059,25 +17868,16 @@ }, "resolve-from": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true }, "resolve-pathname": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + "version": "3.0.0" }, "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true + "version": "0.2.1" }, "restore-cursor": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { "onetime": "^2.0.0", @@ -9085,42 +17885,28 @@ } }, "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true + "version": "0.1.15" }, "retry": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", "dev": true }, "rgb-regex": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", "dev": true }, "rgba-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", "dev": true }, "rimraf": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, "requires": { "glob": "^7.1.3" } }, "ripemd160": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1" @@ -9128,8 +17914,6 @@ }, "run-async": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { "is-promise": "^2.1.0" @@ -9137,57 +17921,39 @@ }, "run-queue": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, "requires": { "aproba": "^1.1.1" } }, "rx-lite": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", "dev": true }, "rx-lite-aggregates": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "dev": true, "requires": { "rx-lite": "*" } }, "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + "version": "5.2.0" }, "safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, "requires": { "ret": "~0.1.10" } }, "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "version": "2.1.2" }, "sax": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, "scheduler": { "version": "0.18.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.18.0.tgz", - "integrity": "sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" @@ -9195,9 +17961,6 @@ }, "schema-utils": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, "requires": { "ajv": "^6.1.0", "ajv-errors": "^1.0.0", @@ -9206,8 +17969,6 @@ }, "script-loader": { "version": "0.7.2", - "resolved": "https://registry.npmjs.org/script-loader/-/script-loader-0.7.2.tgz", - "integrity": "sha512-UMNLEvgOAQuzK8ji8qIscM3GIrRCWN6MmMXGD4SD5l6cSycgGsCo0tX5xRnfQcoghqct0tjHjcykgI1PyBE2aA==", "dev": true, "requires": { "raw-loader": "~0.5.1" @@ -9215,14 +17976,10 @@ }, "select-hose": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", "dev": true }, "selfsigned": { "version": "1.10.7", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz", - "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==", "dev": true, "requires": { "node-forge": "0.9.0" @@ -9230,22 +17987,16 @@ "dependencies": { "node-forge": { "version": "0.9.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz", - "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==", "dev": true } } }, "semver": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, "send": { "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", "dev": true, "requires": { "debug": "2.6.9", @@ -9265,8 +18016,6 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" @@ -9274,30 +18023,22 @@ "dependencies": { "ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, "ms": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true } } }, "serialize-javascript": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", - "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", "dev": true }, "serve-index": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "dev": true, "requires": { "accepts": "~1.3.4", @@ -9311,8 +18052,6 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" @@ -9320,8 +18059,6 @@ }, "http-errors": { "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "requires": { "depd": "~1.1.2", @@ -9332,22 +18069,16 @@ }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "setprototypeof": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", "dev": true } } }, "serve-static": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", "dev": true, "requires": { "encodeurl": "~1.0.2", @@ -9358,20 +18089,13 @@ }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" + "version": "1.0.1" }, "set-value": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -9381,9 +18105,6 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -9391,34 +18112,24 @@ } }, "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + "version": "1.0.5" }, "setprototypeof": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", "dev": true }, "sha.js": { "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" } }, "shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + "version": "1.1.0" }, "shebang-command": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { "shebang-regex": "^1.0.0" @@ -9426,14 +18137,10 @@ }, "shebang-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, "shell-quote": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", - "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", "dev": true, "requires": { "array-filter": "~0.0.0", @@ -9444,14 +18151,10 @@ }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, "simple-swizzle": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", "dev": true, "requires": { "is-arrayish": "^0.3.1" @@ -9459,23 +18162,16 @@ "dependencies": { "is-arrayish": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", "dev": true } } }, "slash": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", "dev": true }, "snapdragon": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, "requires": { "base": "^0.11.1", "debug": "^2.2.0", @@ -9489,44 +18185,29 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } }, "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } }, "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "version": "0.5.7" } } }, "snapdragon-node": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, "requires": { "define-property": "^1.0.0", "isobject": "^3.0.0", @@ -9535,36 +18216,24 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "requires": { "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -9575,18 +18244,12 @@ }, "snapdragon-util": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, "requires": { "kind-of": "^3.2.0" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -9595,8 +18258,6 @@ }, "sockjs": { "version": "0.3.19", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", - "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", "dev": true, "requires": { "faye-websocket": "^0.10.0", @@ -9605,8 +18266,6 @@ "dependencies": { "faye-websocket": { "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", "dev": true, "requires": { "websocket-driver": ">=0.5.1" @@ -9616,8 +18275,6 @@ }, "sockjs-client": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.5.tgz", - "integrity": "sha1-G7fA9yIsQPQq3xT0RCy9Eml3GoM=", "dev": true, "requires": { "debug": "^2.6.6", @@ -9630,8 +18287,6 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" @@ -9641,29 +18296,19 @@ }, "sort-keys": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", "dev": true, "requires": { "is-plain-obj": "^1.0.0" } }, "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true + "version": "2.0.1" }, "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "version": "0.6.1" }, "source-map-resolve": { "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, "requires": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0", @@ -9674,24 +18319,16 @@ }, "source-map-support": { "version": "0.5.16", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", - "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", - "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true + "version": "0.4.0" }, "spdy": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.1.tgz", - "integrity": "sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA==", "dev": true, "requires": { "debug": "^4.1.0", @@ -9703,8 +18340,6 @@ "dependencies": { "debug": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" @@ -9712,16 +18347,12 @@ }, "ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } }, "spdy-transport": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, "requires": { "debug": "^4.1.0", @@ -9734,8 +18365,6 @@ "dependencies": { "debug": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" @@ -9743,14 +18372,10 @@ }, "ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "readable-stream": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -9762,23 +18387,16 @@ }, "split-string": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, "requires": { "extend-shallow": "^3.0.0" } }, "sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "sshpk": { "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "optional": true, "requires": { "asn1": "~0.2.3", @@ -9794,8 +18412,6 @@ }, "ssri": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", "dev": true, "requires": { "safe-buffer": "^5.1.1" @@ -9803,20 +18419,13 @@ }, "stable": { "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", "dev": true }, "state-toggle": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.2.tgz", - "integrity": "sha512-8LpelPGR0qQM4PnfLiplOQNJcIN1/r2Gy0xKB2zKnIW2YzPMt2sR4I/+gtPjhN7Svh9kw+zqEg2SFwpBO9iNiw==" + "version": "1.0.2" }, "static-extend": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, "requires": { "define-property": "^0.2.5", "object-copy": "^0.1.0" @@ -9824,9 +18433,6 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -9835,15 +18441,10 @@ }, "statuses": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true }, "stream-browserify": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, "requires": { "inherits": "~2.0.1", "readable-stream": "^2.0.2" @@ -9851,9 +18452,6 @@ }, "stream-each": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, "requires": { "end-of-stream": "^1.1.0", "stream-shift": "^1.0.0" @@ -9861,9 +18459,6 @@ }, "stream-http": { "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, "requires": { "builtin-status-codes": "^3.0.0", "inherits": "^2.0.1", @@ -9873,21 +18468,25 @@ } }, "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true + "version": "1.0.1" }, "strict-uri-encode": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", "dev": true }, + "string_decoder": { + "version": "1.1.1", + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2" + } + } + }, "string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", @@ -9896,14 +18495,10 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { "ansi-regex": "^3.0.0" @@ -9913,8 +18508,6 @@ }, "string.prototype.trimleft": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", - "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", "dev": true, "requires": { "define-properties": "^1.1.3", @@ -9923,33 +18516,14 @@ }, "string.prototype.trimright": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", - "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", "dev": true, "requires": { "define-properties": "^1.1.3", "function-bind": "^1.1.1" } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { "ansi-regex": "^2.0.0" @@ -9957,14 +18531,10 @@ }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, "style-loader": { "version": "0.21.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.21.0.tgz", - "integrity": "sha512-T+UNsAcl3Yg+BsPKs1vd22Fr8sVT+CJMtzqc6LEw9bbJZb43lm9GoeIfUcDEefBSWC0BhYbcdupV1GtI4DGzxg==", "dev": true, "requires": { "loader-utils": "^1.1.0", @@ -9973,8 +18543,6 @@ "dependencies": { "schema-utils": { "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", "dev": true, "requires": { "ajv": "^6.1.0", @@ -9983,30 +18551,8 @@ } } }, - "styled-system": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/styled-system/-/styled-system-5.1.5.tgz", - "integrity": "sha512-7VoD0o2R3RKzOzPK0jYrVnS8iJdfkKsQJNiLRDjikOpQVqQHns/DXWaPZOH4tIKkhAT7I6wIsy9FWTWh2X3q+A==", - "requires": { - "@styled-system/background": "^5.1.2", - "@styled-system/border": "^5.1.5", - "@styled-system/color": "^5.1.2", - "@styled-system/core": "^5.1.2", - "@styled-system/flexbox": "^5.1.2", - "@styled-system/grid": "^5.1.2", - "@styled-system/layout": "^5.1.2", - "@styled-system/position": "^5.1.2", - "@styled-system/shadow": "^5.1.2", - "@styled-system/space": "^5.1.2", - "@styled-system/typography": "^5.1.2", - "@styled-system/variant": "^5.1.5", - "object-assign": "^4.1.1" - } - }, "stylehacks": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", - "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", "dev": true, "requires": { "browserslist": "^4.0.0", @@ -10016,8 +18562,6 @@ "dependencies": { "postcss-selector-parser": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", "dev": true, "requires": { "dot-prop": "^4.1.1", @@ -10029,16 +18573,13 @@ }, "supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "requires": { "has-flag": "^3.0.0" } }, "svgo": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", "dev": true, "requires": { "chalk": "^2.4.1", @@ -10058,8 +18599,6 @@ "dependencies": { "css-select": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", "dev": true, "requires": { "boolbase": "^1.0.0", @@ -10070,20 +18609,14 @@ }, "css-what": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz", - "integrity": "sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==", "dev": true }, "domelementtype": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", "dev": true }, "domutils": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "dev": true, "requires": { "dom-serializer": "0", @@ -10093,22 +18626,13 @@ } }, "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "dev": true + "version": "1.2.0" }, "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true + "version": "1.1.3" }, "terser": { "version": "4.6.10", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.10.tgz", - "integrity": "sha512-qbF/3UOo11Hggsbsqm2hPa6+L4w7bkr+09FNseEe8xrcVD3APGLFqE+Oz1ZKAxjYnFsj80rLOfgAtJ0LNJjtTA==", - "dev": true, "requires": { "commander": "^2.20.0", "source-map": "~0.6.1", @@ -10116,17 +18640,12 @@ }, "dependencies": { "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "version": "2.20.3" } } }, "terser-webpack-plugin": { "version": "2.3.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.5.tgz", - "integrity": "sha512-WlWksUoq+E4+JlJ+h+U+QUzXpcsMSSNXkDy9lBVkSqDn1w23Gg29L/ary9GeJVYCGiNJJX7LnVc4bwL1N3/g1w==", "dev": true, "requires": { "cacache": "^13.0.1", @@ -10140,22 +18659,8 @@ "webpack-sources": "^1.4.3" }, "dependencies": { - "ajv": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", - "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "cacache": { "version": "13.0.1", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz", - "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==", "dev": true, "requires": { "chownr": "^1.1.2", @@ -10178,16 +18683,8 @@ "unique-filename": "^1.1.1" } }, - "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", - "dev": true - }, "find-cache-dir": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", "dev": true, "requires": { "commondir": "^1.0.1", @@ -10197,8 +18694,6 @@ }, "find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { "locate-path": "^5.0.0", @@ -10207,8 +18702,6 @@ }, "locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { "p-locate": "^4.1.0" @@ -10216,8 +18709,6 @@ }, "lru-cache": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "requires": { "yallist": "^3.0.2" @@ -10225,8 +18716,6 @@ }, "make-dir": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", - "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", "dev": true, "requires": { "semver": "^6.0.0" @@ -10234,8 +18723,6 @@ }, "p-limit": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", - "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -10243,8 +18730,6 @@ }, "p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { "p-limit": "^2.2.0" @@ -10252,8 +18737,6 @@ }, "p-map": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "dev": true, "requires": { "aggregate-error": "^3.0.0" @@ -10261,20 +18744,14 @@ }, "p-try": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, "path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "pkg-dir": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "requires": { "find-up": "^4.0.0" @@ -10282,8 +18759,6 @@ }, "schema-utils": { "version": "2.6.5", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz", - "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==", "dev": true, "requires": { "ajv": "^6.12.0", @@ -10292,14 +18767,10 @@ }, "serialize-javascript": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", - "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", "dev": true }, "ssri": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz", - "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==", "dev": true, "requires": { "figgy-pudding": "^3.5.1", @@ -10308,29 +18779,20 @@ }, "yallist": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true } } }, "text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, "through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, "through2": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, "requires": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -10338,69 +18800,45 @@ }, "thunky": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, "timers-browserify": { "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", - "dev": true, "requires": { "setimmediate": "^1.0.4" } }, "timsort": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", "dev": true }, "tiny-invariant": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.0.6.tgz", - "integrity": "sha512-FOyLWWVjG+aC0UqG76V53yAWdXfH8bO6FNmyZOuUrzDzK8DI3/JRY25UD7+g49JWM1LXwymsKERB+DzI0dTEQA==" + "version": "1.0.6" }, "tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + "version": "1.0.3" }, "tmp": { "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { "os-tmpdir": "~1.0.2" } }, "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true + "version": "1.0.1" }, "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" + "version": "1.0.3" }, "to-object-path": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -10409,9 +18847,6 @@ }, "to-regex": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, "requires": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", @@ -10421,35 +18856,24 @@ }, "to-regex-range": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" } }, "toggle-selection": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", - "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=" + "version": "1.0.6" }, "toidentifier": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", "dev": true }, "toposort": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", - "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", "dev": true }, "tough-cookie": { "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "optional": true, "requires": { "psl": "^1.1.24", @@ -10458,37 +18882,30 @@ "dependencies": { "punycode": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "optional": true } } }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, "trim": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", - "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" + "version": "0.0.1" }, "trim-trailing-lines": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.2.tgz", - "integrity": "sha512-MUjYItdrqqj2zpcHFTkMa9WAv4JHTI6gnRQGPFLrt5L9a6tRMiDnIqYl8JBvu2d2Tc3lWJKQwlGCp0K8AvCM+Q==" + "version": "1.1.2" }, "trough": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.4.tgz", - "integrity": "sha512-tdzBRDGWcI1OpPVmChbdSKhvSVurznZ8X36AYURAcl+0o2ldlCY2XPzyXNNxwJwwyIU+rIglTCG4kxtNKBQH7Q==" + "version": "1.0.4" }, "tryer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", - "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", "dev": true }, "ts-loader": { "version": "5.4.5", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-5.4.5.tgz", - "integrity": "sha512-XYsjfnRQCBum9AMRZpk2rTYSVpdZBpZK+kDh0TeT3kxmQNBDVIeUjdPjY5RZry4eIAb8XHc4gYSUiUWPYvzSRw==", "dev": true, "requires": { "chalk": "^2.3.0", @@ -10500,16 +18917,12 @@ "dependencies": { "semver": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, "ts-node": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", - "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", "dev": true, "requires": { "arrify": "^1.0.0", @@ -10524,26 +18937,18 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } } }, "ts-toolbelt": { - "version": "6.3.4", - "resolved": "https://registry.npmjs.org/ts-toolbelt/-/ts-toolbelt-6.3.4.tgz", - "integrity": "sha512-VdElIh9cb0wBxnL6H8giUq9OCbBr7gue/bnQGiND8cPoukKRMeVopKuUa4pxtpbz3cHYAEbXuFT15/T5qGQv1A==" + "version": "6.15.5" }, "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + "version": "1.10.0" }, "tslint": { "version": "5.20.1", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", - "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -10563,37 +18968,26 @@ "dependencies": { "diff": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true }, "semver": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, "tsutils": { "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, "requires": { "tslib": "^1.8.1" } }, "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true + "version": "0.0.0" }, "tunnel-agent": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "optional": true, "requires": { "safe-buffer": "^5.0.1" @@ -10601,19 +18995,13 @@ }, "tweetnacl": { "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "optional": true }, "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + "version": "4.0.8" }, "type-is": { "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, "requires": { "media-typer": "0.3.0", @@ -10621,31 +19009,20 @@ } }, "typed-ts-events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/typed-ts-events/-/typed-ts-events-1.1.1.tgz", - "integrity": "sha512-sYjxQrhBTg3HGzNBOXSURlIfmUGXS//dVGY08ofz9dbusX/IdcN8LD9SsFNbk4UgHy8reQPgSZw+ADpkLcPtDA==" + "version": "1.2.1" }, "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true + "version": "0.0.6" }, "typescript": { "version": "3.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.4.tgz", - "integrity": "sha512-A25xv5XCtarLwXpcDNZzCGvW2D1S3/bACratYBx2sax8PefsFhlYmkQicKHvpYflFS8if4zne5zT5kpJ7pzuvw==", "dev": true }, "ua-parser-js": { - "version": "0.7.21", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz", - "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==" + "version": "0.7.21" }, "uglify-js": { "version": "3.4.10", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", - "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", "dev": true, "requires": { "commander": "~2.19.0", @@ -10654,16 +19031,12 @@ "dependencies": { "commander": { "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", "dev": true } } }, "unherit": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.2.tgz", - "integrity": "sha512-W3tMnpaMG7ZY6xe/moK04U9fBhi6wEiCYHUW5Mop/wQHf12+79EQGwxYejNdhEz2mkqkBlGwm7pxmgBKMVUj0w==", "requires": { "inherits": "^2.0.1", "xtend": "^4.0.1" @@ -10671,8 +19044,6 @@ }, "unified": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz", - "integrity": "sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==", "requires": { "bail": "^1.0.0", "extend": "^3.0.0", @@ -10684,9 +19055,6 @@ }, "union-value": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", @@ -10696,64 +19064,44 @@ }, "uniq": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", "dev": true }, "uniqs": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", "dev": true }, "unique-filename": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, "requires": { "unique-slug": "^2.0.0" } }, "unique-slug": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, "requires": { "imurmurhash": "^0.1.4" } }, "unist-util-is": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", - "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==" + "version": "3.0.0" }, "unist-util-remove-position": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz", - "integrity": "sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==", "requires": { "unist-util-visit": "^1.1.0" } }, "unist-util-stringify-position": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", - "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==" + "version": "1.1.2" }, "unist-util-visit": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", - "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", "requires": { "unist-util-visit-parents": "^2.0.0" }, "dependencies": { "unist-util-visit-parents": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", - "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", "requires": { "unist-util-is": "^3.0.0" } @@ -10761,32 +19109,21 @@ } }, "unist-util-visit-parents": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz", - "integrity": "sha512-yvo+MMLjEwdc3RhhPYSximset7rwjMrdt9E41Smmvg25UQIenzrN83cRnF1JMzoMi9zZOQeYXHSDf7p+IQkW3Q==" + "version": "1.1.2" }, "unorm": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz", - "integrity": "sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==" + "version": "1.6.0" }, "unpipe": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "dev": true }, "unquote": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", "dev": true }, "unset-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" @@ -10794,9 +19131,6 @@ "dependencies": { "has-value": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, "requires": { "get-value": "^2.0.3", "has-values": "^0.1.4", @@ -10805,9 +19139,6 @@ "dependencies": { "isobject": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, "requires": { "isarray": "1.0.0" } @@ -10815,61 +19146,40 @@ } }, "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true + "version": "0.1.4" } } }, "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true + "version": "1.2.0" }, "upper-case": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", "dev": true }, "uri-js": { "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "requires": { "punycode": "^2.1.0" } }, "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true + "version": "0.1.0" }, "url": { "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, "requires": { "punycode": "1.3.2", "querystring": "0.2.0" }, "dependencies": { "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true + "version": "1.3.2" } } }, "url-loader": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz", - "integrity": "sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg==", "dev": true, "requires": { "loader-utils": "^1.1.0", @@ -10879,16 +19189,12 @@ "dependencies": { "mime": { "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", "dev": true } } }, "url-parse": { "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", "dev": true, "requires": { "querystringify": "^2.1.1", @@ -10896,37 +19202,24 @@ } }, "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true + "version": "3.1.1" }, "util": { "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, "requires": { "inherits": "2.0.3" }, "dependencies": { "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "version": "2.0.3" } } }, "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "version": "1.0.2" }, "util.promisify": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", "dev": true, "requires": { "define-properties": "^1.1.2", @@ -10935,48 +19228,32 @@ }, "utila": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", "dev": true }, "utils-merge": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "dev": true }, "uuid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", - "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" + "version": "3.3.3" }, "v8-compile-cache": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz", - "integrity": "sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==", "dev": true }, "value-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + "version": "1.0.1" }, "vary": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, "vendors": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.3.tgz", - "integrity": "sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw==", "dev": true }, "verror": { "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "optional": true, "requires": { "assert-plus": "^1.0.0", @@ -10986,8 +19263,6 @@ }, "vfile": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz", - "integrity": "sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==", "requires": { "is-buffer": "^1.1.4", "replace-ext": "1.0.0", @@ -10996,28 +19271,19 @@ } }, "vfile-location": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz", - "integrity": "sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==" + "version": "2.0.6" }, "vfile-message": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz", - "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==", "requires": { "unist-util-stringify-position": "^1.1.1" } }, "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true + "version": "1.1.2" }, "vscode-base-languageclient": { "version": "0.0.1-alpha.5", - "resolved": "https://registry.npmjs.org/vscode-base-languageclient/-/vscode-base-languageclient-0.0.1-alpha.5.tgz", - "integrity": "sha512-xrK/2QhnZLjywlTOyAvgdOFSaVJ1lR/RqhEn3MEwhnnrd2xlCaxnpqdykSVbQtmVUgmEhux5o7TfYwpW7i/ysw==", "requires": { "vscode-jsonrpc": "^3.2.0", "vscode-languageserver-types": "^3.2.0", @@ -11025,16 +19291,12 @@ }, "dependencies": { "vscode-jsonrpc": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-3.6.2.tgz", - "integrity": "sha512-T24Jb5V48e4VgYliUXMnZ379ItbrXgOimweKaJshD84z+8q7ZOZjJan0MeDe+Ugb+uqERDVV8SBmemaGMSMugA==" + "version": "3.6.2" } } }, "vscode-json-languageservice": { "version": "3.4.11", - "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-3.4.11.tgz", - "integrity": "sha512-26Qv1SFp6x3XmCqU1BRceRsSKRO3xkQa6/K8ziSRt52/LQPiw5ipSxlGVSlzIoi5LCmQVEqUajhiVEMNlFXhNw==", "requires": { "jsonc-parser": "^2.2.0", "vscode-languageserver-textdocument": "^1.0.0-next.5", @@ -11044,26 +19306,18 @@ }, "dependencies": { "vscode-languageserver-types": { - "version": "3.15.0-next.10", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.15.0-next.10.tgz", - "integrity": "sha512-s9Psd+0sQVkH4o1U7hwTNJRuXQQgFvGVZIim7Wb44tcq54rZou3kJKCtdFEm0aHUuYxIrMPYrzuh1jlqCbRegw==" + "version": "3.15.0-next.10" }, "vscode-uri": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.1.1.tgz", - "integrity": "sha512-eY9jmGoEnVf8VE8xr5znSah7Qt1P/xsCdErz+g8HYZtJ7bZqKH5E3d+6oVNm1AC/c6IHUDokbmVXKOi4qPAC9A==" + "version": "2.1.1" } } }, "vscode-jsonrpc": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-5.0.1.tgz", - "integrity": "sha512-JvONPptw3GAQGXlVV2utDcHx0BiY34FupW/kI6mZ5x06ER5DdPG/tXWMVHjTNULF5uKPOUUD0SaXg5QaubJL0A==" + "version": "5.0.1" }, "vscode-languageserver": { "version": "4.4.2", - "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-4.4.2.tgz", - "integrity": "sha512-61y8Raevi9EigDgg9NelvT9cUAohiEbUl1LOwQQgOCAaNX62yKny/ddi0uC+FUTm4CzsjhBu+06R+vYgfCYReA==", "requires": { "vscode-languageserver-protocol": "^3.10.3", "vscode-uri": "^1.0.5" @@ -11071,53 +19325,36 @@ }, "vscode-languageserver-protocol": { "version": "3.15.3", - "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.15.3.tgz", - "integrity": "sha512-zrMuwHOAQRhjDSnflWdJG+O2ztMWss8GqUUB8dXLR/FPenwkiBNkMIJJYfSN6sgskvsF0rHAoBowNQfbyZnnvw==", "requires": { "vscode-jsonrpc": "^5.0.1", "vscode-languageserver-types": "3.15.1" }, "dependencies": { "vscode-languageserver-types": { - "version": "3.15.1", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz", - "integrity": "sha512-+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ==" + "version": "3.15.1" } } }, "vscode-languageserver-textdocument": { - "version": "1.0.0-next.6", - "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.0-next.6.tgz", - "integrity": "sha512-GIHiFY2mJHqpztseSuo2Wvx5kJd6l1ya2rc7GTO0KQjkqFYmCGrumH86H4r7nvLEdV4OMqBTEc0OtBwYPIRd7w==" + "version": "1.0.0-next.6" }, "vscode-languageserver-types": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.14.0.tgz", - "integrity": "sha512-lTmS6AlAlMHOvPQemVwo3CezxBp0sNB95KNPkqp3Nxd5VFEnuG1ByM0zlRWos0zjO3ZWtkvhal0COgiV1xIA4A==" + "version": "3.14.0" }, "vscode-nls": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-4.1.1.tgz", - "integrity": "sha512-4R+2UoUUU/LdnMnFjePxfLqNhBS8lrAFyX7pjb2ud/lqDkrUavFUTcG7wR0HBZFakae0Q6KLBFjMS6W93F403A==" + "version": "4.1.1" }, "vscode-uri": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.8.tgz", - "integrity": "sha512-obtSWTlbJ+a+TFRYGaUumtVwb+InIUVI0Lu0VBUAPmj2cU5JutEXg3xUE0c2J5Tcy7h2DEKVJBFi+Y9ZSFzzPQ==" + "version": "1.0.8" }, "warning": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", "requires": { "loose-envify": "^1.0.0" } }, "watchpack": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", - "dev": true, "requires": { "chokidar": "^2.0.2", "graceful-fs": "^4.1.2", @@ -11126,18 +19363,18 @@ }, "wbuf": { "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, "requires": { "minimalistic-assert": "^1.0.0" } }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, "webpack": { "version": "4.41.5", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.5.tgz", - "integrity": "sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw==", - "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/helper-module-context": "1.8.5", @@ -11165,16 +19402,10 @@ }, "dependencies": { "acorn": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", - "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==", - "dev": true + "version": "6.4.0" }, "cacache": { "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, "requires": { "bluebird": "^3.5.5", "chownr": "^1.1.1", @@ -11195,9 +19426,6 @@ }, "find-cache-dir": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, "requires": { "commondir": "^1.0.1", "make-dir": "^2.0.0", @@ -11206,18 +19434,12 @@ }, "find-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, "requires": { "locate-path": "^3.0.0" } }, "locate-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, "requires": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -11225,18 +19447,12 @@ }, "lru-cache": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, "requires": { "yallist": "^3.0.2" } }, "make-dir": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, "requires": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -11244,9 +19460,6 @@ }, "memory-fs": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, "requires": { "errno": "^0.1.3", "readable-stream": "^2.0.1" @@ -11254,9 +19467,6 @@ }, "mississippi": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, "requires": { "concat-stream": "^1.5.0", "duplexify": "^3.4.2", @@ -11272,79 +19482,49 @@ }, "p-limit": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", - "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", - "dev": true, "requires": { "p-try": "^2.0.0" } }, "p-locate": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, "requires": { "p-limit": "^2.0.0" } }, "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true + "version": "2.2.0" }, "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true + "version": "4.0.1" }, "pkg-dir": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, "requires": { "find-up": "^3.0.0" } }, "pump": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "version": "5.7.1" }, "serialize-javascript": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", - "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", - "dev": true + "version": "2.1.2" }, "ssri": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "dev": true, "requires": { "figgy-pudding": "^3.5.1" } }, "terser-webpack-plugin": { "version": "1.4.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz", - "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", - "dev": true, "requires": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", @@ -11358,17 +19538,12 @@ } }, "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "version": "3.1.1" } } }, "webpack-bundle-analyzer": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.6.0.tgz", - "integrity": "sha512-orUfvVYEfBMDXgEKAKVvab5iQ2wXneIEorGNsyuOyVYpjYrI7CUOhhXNDd3huMwQ3vNNWWlGP+hzflMFYNzi2g==", "dev": true, "requires": { "acorn": "^6.0.7", @@ -11388,26 +19563,18 @@ "dependencies": { "acorn": { "version": "6.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", - "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==", "dev": true }, "commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, "filesize": { "version": "3.6.1", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", - "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", "dev": true }, "gzip-size": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", - "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", "dev": true, "requires": { "duplexer": "^0.1.1", @@ -11416,16 +19583,12 @@ }, "pify": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true } } }, "webpack-cli": { "version": "3.3.10", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.10.tgz", - "integrity": "sha512-u1dgND9+MXaEt74sJR4PR7qkPxXUSQ0RXYq8x1L6Jg1MYVEmGPrH6Ah6C4arD4r0J1P5HKjRqpab36k0eIzPqg==", "dev": true, "requires": { "chalk": "2.4.2", @@ -11443,8 +19606,6 @@ "dependencies": { "cross-spawn": { "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { "nice-try": "^1.0.4", @@ -11456,8 +19617,6 @@ }, "enhanced-resolve": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", - "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -11467,8 +19626,6 @@ }, "global-modules": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, "requires": { "global-prefix": "^3.0.0" @@ -11476,8 +19633,6 @@ }, "global-prefix": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dev": true, "requires": { "ini": "^1.3.5", @@ -11487,8 +19642,6 @@ }, "memory-fs": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "dev": true, "requires": { "errno": "^0.1.3", @@ -11497,14 +19650,10 @@ }, "semver": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, "supports-color": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -11514,8 +19663,6 @@ }, "webpack-dev-middleware": { "version": "3.7.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", - "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", "dev": true, "requires": { "memory-fs": "^0.4.1", @@ -11527,8 +19674,6 @@ "dependencies": { "memory-fs": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "dev": true, "requires": { "errno": "^0.1.3", @@ -11537,16 +19682,12 @@ }, "mime": { "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", "dev": true } } }, "webpack-dev-server": { "version": "3.10.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.10.1.tgz", - "integrity": "sha512-AGG4+XrrXn4rbZUueyNrQgO4KGnol+0wm3MPdqGLmmA+NofZl3blZQKxZ9BND6RDNuvAK9OMYClhjOSnxpWRoA==", "dev": true, "requires": { "ansi-html": "0.0.7", @@ -11586,14 +19727,10 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "cliui": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { "string-width": "^2.1.1", @@ -11603,8 +19740,6 @@ "dependencies": { "strip-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { "ansi-regex": "^3.0.0" @@ -11614,8 +19749,6 @@ }, "debug": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" @@ -11623,8 +19756,6 @@ }, "eventsource": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", - "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", "dev": true, "requires": { "original": "^1.0.0" @@ -11632,8 +19763,6 @@ }, "find-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { "locate-path": "^3.0.0" @@ -11641,20 +19770,14 @@ }, "get-caller-file": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", "dev": true }, "is-absolute-url": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", "dev": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { "number-is-nan": "^1.0.0" @@ -11662,8 +19785,6 @@ }, "locate-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { "p-locate": "^3.0.0", @@ -11672,14 +19793,10 @@ }, "ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "opn": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", "dev": true, "requires": { "is-wsl": "^1.1.0" @@ -11687,8 +19804,6 @@ }, "p-limit": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", - "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -11696,8 +19811,6 @@ }, "p-locate": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { "p-limit": "^2.0.0" @@ -11705,20 +19818,14 @@ }, "p-try": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, "require-main-filename": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", "dev": true }, "sockjs-client": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", - "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", "dev": true, "requires": { "debug": "^3.2.5", @@ -11731,8 +19838,6 @@ "dependencies": { "debug": { "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { "ms": "^2.1.1" @@ -11742,8 +19847,6 @@ }, "supports-color": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" @@ -11751,8 +19854,6 @@ }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { "string-width": "^1.0.1", @@ -11761,8 +19862,6 @@ "dependencies": { "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { "code-point-at": "^1.0.0", @@ -11774,8 +19873,6 @@ }, "yargs": { "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", "dev": true, "requires": { "cliui": "^4.0.0", @@ -11794,8 +19891,6 @@ }, "yargs-parser": { "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -11806,8 +19901,6 @@ }, "webpack-log": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", "dev": true, "requires": { "ansi-colors": "^3.0.0", @@ -11816,9 +19909,6 @@ }, "webpack-sources": { "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, "requires": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" @@ -11826,8 +19916,6 @@ }, "websocket-driver": { "version": "0.7.3", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz", - "integrity": "sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==", "dev": true, "requires": { "http-parser-js": ">=0.4.0 <0.4.11", @@ -11837,19 +19925,22 @@ }, "websocket-extensions": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", "dev": true }, "whatwg-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", - "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" + "version": "3.0.0" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } }, "which": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -11857,28 +19948,19 @@ }, "which-module": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "wolfy87-eventemitter": { - "version": "5.2.8", - "resolved": "https://registry.npmjs.org/wolfy87-eventemitter/-/wolfy87-eventemitter-5.2.8.tgz", - "integrity": "sha512-Z+wAU9SyuOZgFj22zBl8sg0auJOkrKBZl8TTlEM5dRDDs2zPtlm72vPJUIlf6tUJ4w2JLgrF7VznRnQHP+Rn/Q==" + "version": "5.2.8" }, "worker-farm": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dev": true, "requires": { "errno": "~0.1.7" } }, "wrap-ansi": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "requires": { "ansi-styles": "^3.2.0", @@ -11888,14 +19970,10 @@ "dependencies": { "ansi-regex": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "string-width": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", @@ -11905,8 +19983,6 @@ }, "strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { "ansi-regex": "^4.1.0" @@ -11915,54 +19991,30 @@ } }, "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "version": "1.0.2" }, "ws": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", "dev": true, "requires": { "async-limiter": "~1.0.0" } }, "x-is-string": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", - "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=" + "version": "0.1.0" }, "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + "version": "4.0.2" }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true + "version": "4.0.0" }, "yallist": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, - "yaml": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.7.2.tgz", - "integrity": "sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==", - "requires": { - "@babel/runtime": "^7.6.3" - } - }, "yargs": { "version": "13.2.4", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz", - "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==", "dev": true, "requires": { "cliui": "^5.0.0", @@ -11980,14 +20032,10 @@ "dependencies": { "ansi-regex": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "find-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { "locate-path": "^3.0.0" @@ -11995,8 +20043,6 @@ }, "locate-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { "p-locate": "^3.0.0", @@ -12005,8 +20051,6 @@ }, "p-limit": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", - "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -12014,8 +20058,6 @@ }, "p-locate": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { "p-limit": "^2.0.0" @@ -12023,14 +20065,10 @@ }, "p-try": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, "string-width": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", @@ -12040,8 +20078,6 @@ }, "strip-ansi": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { "ansi-regex": "^4.1.0" @@ -12051,8 +20087,6 @@ }, "yargs-parser": { "version": "13.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", - "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -12061,8 +20095,6 @@ }, "yn": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", - "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", "dev": true } } diff --git a/package.json b/package.json index 57a8330b..44f6d6f5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "waves-ide", - "version": "2.3.0", + "version": "2.4.3-stagenet", "description": "Waves smart contact IDE", "main": "index.js", "repository": "http://github.com/wavesplatform/waves-ide", @@ -12,6 +12,7 @@ "build-mocha": "node scripts/build-mocha.js prod", "build-language-server": "node scripts/build-language-server.js prod", "build-schemas": "ts-node scripts/build-schemas.ts", + "update-all": "npm run update-examples && npm run update-test-typings && npm run build-monaco && npm run build-mocha && npm run build-language-server && npm run build-schemas && npm run dist", "dist": "webpack --config webpack.config.js --env" }, "author": "wavesplatform", @@ -30,15 +31,17 @@ "bb >= 10" ], "dependencies": { - "@waves.exchange/provider-web": "^0.2.1", - "@waves/js-test-env": "1.1.1", - "@waves/ride-js": "^2.0.0", - "@waves/ride-language-server": "^1.0.0", - "@waves/signer": "^0.1.2", - "@waves/tx-json-schemas": "^1.2.0", - "@waves/waves-browser-bus": "^0.2.4", - "@waves/waves-transactions": "4.1.1", - "@waves/waveskeeper-types": "0.0.2", + "@types/node": "^16.9.1", + "@waves.exchange/provider-web": "1.0.2", + "@waves/js-test-env": "1.1.4-beta", + "@waves/ride-js": "2.2.0-beta.5", + "@waves/ride-language-server": "1.1.1", + "@waves/signer": "1.0.2", + "@waves/waves-transactions": "4.2.5-beta.1", + "@waves/ride-language-server": "^1.1.1", + "@waves/tx-json-schemas": "1.2.4", + "@waves/waves-browser-bus": "0.2.6", + "@waves/waveskeeper-types": "0.0.6", "acorn": "^7.1.1", "axios": "^0.19.0", "babylon": "^6.18.0", @@ -56,6 +59,7 @@ "jszip": "^3.2.1", "less": "^3.9.0", "less-loader": "^4.1.0", + "long": "^4.0.0", "mobx": "^5.9.0", "mobx-react": "^5.4.3", "mobx-utils": "^5.2.0", @@ -64,6 +68,7 @@ "mousetrap": "^1.6.3", "mousetrap-global-bind": "^1.1.0", "normalize.css": "^8.0.1", + "protobufjs": "6.8.7", "rc-collapse": "^1.11.3", "rc-dialog": "^7.3.0", "rc-dropdown": "^2.4.1", @@ -90,8 +95,7 @@ "uuid": "^3.3.2", "vscode-json-languageservice": "^3.1.0", "vscode-languageserver-types": "^3.12.0", - "wolfy87-eventemitter": "^5.2.6", - "long": "^4.0.0" + "wolfy87-eventemitter": "^5.2.6" }, "devDependencies": { "@types/babylon": "^6.16.5", @@ -105,6 +109,7 @@ "@types/file-saver": "^2.0.1", "@types/history": "^4.7.2", "@types/jszip": "^3.1.6", + "@types/long": "^4.0.0", "@types/mocha": "^5.2.6", "@types/mousetrap": "^1.6.3", "@types/react": "^16.9.4", @@ -116,7 +121,6 @@ "@types/react-router-dom": "^4.3.1", "@types/react-scrollbar": "^0.4.9", "@types/react-truncate": "^2.3.2", - "@types/long": "^4.0.0", "@types/uuid": "^3.4.4", "autoprefixer": "^9.1.0", "chai": "^4.2.0", diff --git a/scripts/build-schemas.ts b/scripts/build-schemas.ts index 716912a0..dc0a0715 100644 --- a/scripts/build-schemas.ts +++ b/scripts/build-schemas.ts @@ -1,9 +1,8 @@ import * as ts from 'typescript'; import { resolve } from 'path'; -import * as fs from 'fs'; import { TType, TUnion } from '@waves/ride-js'; import { schemas } from '@waves/tx-json-schemas'; -import { TSeedTypes } from '@waves/waves-transactions'; +const {unlinkSync, appendFile} = require("fs"); function getProgramFromFiles(files: string[], jsonCompilerOptions: any = {}, basePath: string = './'): ts.Program { const compilerOptions = ts.convertCompilerOptionsFromJson(jsonCompilerOptions, basePath).options; @@ -246,10 +245,10 @@ const filePath = './src/json-data/envFunctions.json'; const out = JSON.stringify(buildSchemas(), null, 4); try { - fs.unlinkSync(filePath); + unlinkSync(filePath); } catch (e) { } -fs.appendFile(filePath, (out), function (err) { +appendFile(filePath, (out), function (err: any) { if (err) throw err; console.log('✅ -> Schemas were saved to ' + filePath); }); diff --git a/scripts/update-examples.js b/scripts/update-examples.js index a53a9fa6..da0f9c5d 100644 --- a/scripts/update-examples.js +++ b/scripts/update-examples.js @@ -4,7 +4,7 @@ const path = require('path'); const filePath = '../src/json-data/ride-examples.json'; -const categories = ['smart-accounts', 'smart-assets', 'ride4dapps', 'dApps']; +const categories = ['smart-accounts', 'smart-assets', 'dApps', 'dApp-to-dApps', 'casino', 'auction']; const files = ['welcome.md']; const apiEndpoint = 'https://api.github.com/repos/wavesplatform/ride-examples/contents/'; @@ -34,7 +34,7 @@ async function updateExamples() { for (let remoteItem of remoteInfo) { // If content hasn't changed push local item - const localItem = oldContent.find(item => item.sha === remoteItem.sha); + const localItem = Array.isArray(oldContent) && oldContent.find(item => item.sha === remoteItem.sha); if (localItem) { resultContent.push(localItem); continue; diff --git a/src/components/Checkbox/index.tsx b/src/components/Checkbox/index.tsx index 652974f2..50a25816 100644 --- a/src/components/Checkbox/index.tsx +++ b/src/components/Checkbox/index.tsx @@ -16,7 +16,7 @@ export default class Checkbox extends React.Component { render() { const {selected, onSelect, className} = this.props; return selected - ?
+ ?
:
; } } diff --git a/src/components/Checkbox/styles.less b/src/components/Checkbox/styles.less index dc37f8c6..3d1780f6 100644 --- a/src/components/Checkbox/styles.less +++ b/src/components/Checkbox/styles.less @@ -1,5 +1,6 @@ .accIcon__on { flex-shrink: 0; + cursor: pointer; .on20() } diff --git a/src/components/Dropdown/styles.less b/src/components/Dropdown/styles.less index e38fdc98..020f3064 100644 --- a/src/components/Dropdown/styles.less +++ b/src/components/Dropdown/styles.less @@ -34,7 +34,7 @@ display: flex; height: 32px; - width: 160px; + width: 180px; padding: 0 16px 0 16px; align-items: center; background-color: var(--dropdown-background); diff --git a/src/components/NewFileBtn/index.tsx b/src/components/NewFileBtn/index.tsx index 1c35f5f9..2b705590 100644 --- a/src/components/NewFileBtn/index.tsx +++ b/src/components/NewFileBtn/index.tsx @@ -12,20 +12,25 @@ interface IInjectedProps { export const menuItems = { 'Account script': { - icon: 'accountdocIcn', content: '{-# STDLIB_VERSION 4 #-}\n' + + icon: 'accountdocIcn', content: '{-# STDLIB_VERSION 5 #-}\n' + '{-# CONTENT_TYPE EXPRESSION #-}\n' + '{-# SCRIPT_TYPE ACCOUNT #-}\n\n' + 'sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)' }, 'Asset script': { - icon: 'assetdocIcn', content: '{-# STDLIB_VERSION 4 #-}\n' + + icon: 'assetdocIcn', content: '{-# STDLIB_VERSION 5 #-}\n' + '{-# CONTENT_TYPE EXPRESSION #-}\n' + '{-# SCRIPT_TYPE ASSET #-}\n\n' + 'true' }, + 'Expression script': { + icon: 'accountdocIcn', + content: '{-# STDLIB_VERSION 6 #-}\n' + + '{-# CONTENT_TYPE EXPRESSION #-}\n' + + '{-# SCRIPT_TYPE CALL #-}' + }, 'dApp script': { - icon: 'dappdocIcn', content: ` -{-# STDLIB_VERSION 4 #-} + icon: 'dappdocIcn', content: `{-# STDLIB_VERSION 5 #-} {-# CONTENT_TYPE DAPP #-} {-# SCRIPT_TYPE ACCOUNT #-} @@ -52,23 +57,12 @@ func call() = { @Verifier(tx) func verify() = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) ` - // '{-# STDLIB_VERSION 4 #-}\n' + - // '{-# CONTENT_TYPE DAPP #-}\n' + - // '{-# SCRIPT_TYPE ACCOUNT #-}\n\n' + - // '@Callable(i)\n' + - // 'func foo() = {\n' + - // ' WriteSet([])\n' + - // '}\n' + - // '\n' + - // '# @Verifier(tx)\n' + - // '# func standardVerifier() = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)' }, - //todo uncomment when imports are supported - // 'Library': { - // icon: 'librarydocIcn', content: '{-# SCRIPT_TYPE ACCOUNT #-}\n' + - // '{-# CONTENT_TYPE LIBRARY #-}' + - // '\n{-# STDLIB_VERSION 3 #-}' - // }, + 'Library': { + icon: 'librarydocIcn', content: '{-# SCRIPT_TYPE ACCOUNT #-}\n' + + '{-# CONTENT_TYPE LIBRARY #-}' + + '\n{-# STDLIB_VERSION 3 #-}' + }, 'Test': { icon: 'testdocIcn', content: 'const wvs = 1e8 \n' + 'describe(\'some suite\', () => {\n' + diff --git a/src/json-data/envFunctions.json b/src/json-data/envFunctions.json index 9d10866a..02a88606 100644 --- a/src/json-data/envFunctions.json +++ b/src/json-data/envFunctions.json @@ -1009,69 +1009,7 @@ { "name": "attachment", "type": [ - { - "typeName": "IBooleanData", - "fields": [ - { - "name": "type", - "type": "boolean", - "optional": false - }, - { - "name": "value", - "type": "boolean", - "optional": false - } - ] - }, - { - "typeName": "IIntegerData", - "fields": [ - { - "name": "type", - "type": "integer", - "optional": false - }, - { - "name": "value", - "type": [ - "string", - "number" - ], - "optional": false - } - ] - }, - { - "typeName": "IStringData", - "fields": [ - { - "name": "type", - "type": "string", - "optional": false - }, - { - "name": "value", - "type": "string", - "optional": false - } - ] - }, - { - "typeName": "IBinaryData", - "fields": [ - { - "name": "type", - "type": "binary", - "optional": false - }, - { - "name": "value", - "type": "string", - "optional": false - } - ] - }, + "null", "string" ], "optional": true @@ -1346,69 +1284,7 @@ { "name": "attachment", "type": [ - { - "typeName": "IBooleanData", - "fields": [ - { - "name": "type", - "type": "boolean", - "optional": false - }, - { - "name": "value", - "type": "boolean", - "optional": false - } - ] - }, - { - "typeName": "IIntegerData", - "fields": [ - { - "name": "type", - "type": "integer", - "optional": false - }, - { - "name": "value", - "type": [ - "string", - "number" - ], - "optional": false - } - ] - }, - { - "typeName": "IStringData", - "fields": [ - { - "name": "type", - "type": "string", - "optional": false - }, - { - "name": "value", - "type": "string", - "optional": false - } - ] - }, - { - "typeName": "IBinaryData", - "fields": [ - { - "name": "type", - "type": "binary", - "optional": false - }, - { - "name": "value", - "type": "string", - "optional": false - } - ] - }, + "null", "string" ], "optional": true @@ -2418,69 +2294,8 @@ { "name": "attachment", "type": [ - { - "typeName": "IBooleanData", - "fields": [ - { - "name": "type", - "type": "boolean", - "optional": false - }, - { - "name": "value", - "type": "boolean", - "optional": false - } - ] - }, - { - "typeName": "IIntegerData", - "fields": [ - { - "name": "type", - "type": "integer", - "optional": false - }, - { - "name": "value", - "type": [ - "string", - "number" - ], - "optional": false - } - ] - }, - { - "typeName": "IStringData", - "fields": [ - { - "name": "type", - "type": "string", - "optional": false - }, - { - "name": "value", - "type": "string", - "optional": false - } - ] - }, - { - "typeName": "IBinaryData", - "fields": [ - { - "name": "type", - "type": "binary", - "optional": false - }, - { - "name": "value", - "type": "string", - "optional": false - } - ] - } + "null", + "string" ], "optional": false }, @@ -3088,69 +2903,8 @@ { "name": "attachment", "type": [ - { - "typeName": "IBooleanData", - "fields": [ - { - "name": "type", - "type": "boolean", - "optional": false - }, - { - "name": "value", - "type": "boolean", - "optional": false - } - ] - }, - { - "typeName": "IIntegerData", - "fields": [ - { - "name": "type", - "type": "integer", - "optional": false - }, - { - "name": "value", - "type": [ - "string", - "number" - ], - "optional": false - } - ] - }, - { - "typeName": "IStringData", - "fields": [ - { - "name": "type", - "type": "string", - "optional": false - }, - { - "name": "value", - "type": "string", - "optional": false - } - ] - }, - { - "typeName": "IBinaryData", - "fields": [ - { - "name": "type", - "type": "binary", - "optional": false - }, - { - "name": "value", - "type": "string", - "optional": false - } - ] - } + "null", + "string" ], "optional": false }, @@ -3691,6 +3445,11 @@ }, "optional": true }, + { + "name": "extraFeePerStep", + "type": "number", + "optional": true + }, { "name": "timestamp", "type": "number", @@ -4427,69 +4186,8 @@ { "name": "attachment", "type": [ - { - "typeName": "IBooleanData", - "fields": [ - { - "name": "type", - "type": "boolean", - "optional": false - }, - { - "name": "value", - "type": "boolean", - "optional": false - } - ] - }, - { - "typeName": "IIntegerData", - "fields": [ - { - "name": "type", - "type": "integer", - "optional": false - }, - { - "name": "value", - "type": [ - "string", - "number" - ], - "optional": false - } - ] - }, - { - "typeName": "IStringData", - "fields": [ - { - "name": "type", - "type": "string", - "optional": false - }, - { - "name": "value", - "type": "string", - "optional": false - } - ] - }, - { - "typeName": "IBinaryData", - "fields": [ - { - "name": "type", - "type": "binary", - "optional": false - }, - { - "name": "value", - "type": "string", - "optional": false - } - ] - } + "null", + "string" ], "optional": false }, @@ -5097,69 +4795,8 @@ { "name": "attachment", "type": [ - { - "typeName": "IBooleanData", - "fields": [ - { - "name": "type", - "type": "boolean", - "optional": false - }, - { - "name": "value", - "type": "boolean", - "optional": false - } - ] - }, - { - "typeName": "IIntegerData", - "fields": [ - { - "name": "type", - "type": "integer", - "optional": false - }, - { - "name": "value", - "type": [ - "string", - "number" - ], - "optional": false - } - ] - }, - { - "typeName": "IStringData", - "fields": [ - { - "name": "type", - "type": "string", - "optional": false - }, - { - "name": "value", - "type": "string", - "optional": false - } - ] - }, - { - "typeName": "IBinaryData", - "fields": [ - { - "name": "type", - "type": "binary", - "optional": false - }, - { - "name": "value", - "type": "string", - "optional": false - } - ] - } + "null", + "string" ], "optional": false }, @@ -5700,6 +5337,11 @@ }, "optional": true }, + { + "name": "extraFeePerStep", + "type": "number", + "optional": true + }, { "name": "timestamp", "type": "number", diff --git a/src/json-data/ride-examples.json b/src/json-data/ride-examples.json index ca5658de..37ce376c 100644 --- a/src/json-data/ride-examples.json +++ b/src/json-data/ride-examples.json @@ -1,329 +1 @@ -{ - "eTag": "W/\"d49f28cd0b3f5fc7a9fe37d5cfb2c735c9e8413d\"", - "folders": [ - { - "name": "dApps", - "sha": "ca4010f9a7e7a2f2323598ef365c62fe04ac8d3e", - "content": [ - { - "name": "8ball", - "sha": "5a2f4886bd09199f47b164f2a95c7f79e76a0eaa", - "content": [ - { - "name": "README.md", - "content": "# Waves Magic 8 Ball\n\nDon't know what to do?\nYou want an answer to THE question?\nMagic 8 Ball - it’s the fastest way to seek advice!\ndApp uses an innovative(not) method of pseudorandom answer generation to give you the best possible answer.\nAnd it also ensures that same question should get a different answer.\n\n### Deploying\n\n1. Compile RIDE script\n2. Deploy smart script to dApp account\n3. You ready to go!\n\n### How to use\n\n1. Prepare Invoke script TX with function name `tellme` and single argument: `question: string`\n2. Broadcast your TX\n3. Your question and answer should be written to dApp data state\n4. Question key: `yourb58address_q`\n5. Answer key: `yourb58address_a`\n\n### dApp on Testnet\n\nCode for [RIDE IDE](https://ide.wavesplatform.com/) console\n```JS\nconst question = \"Should i do that?\"\nconst invokeTX = invokeScript({ fee: 500000, dApp: \"3N27HUMt4ddx2X7foQwZRmpFzg5PSzLrUgU\", call:{function:\"tellme\",args:[{\"type\": \"string\", \"value\": question}]}, payment: null})\nbroadcast(invokeTX)\n```", - "type": "md", - "id": "dApps/8ball/README.md", - "sha": "92748568b007686766cb0b92ac4a767ad4e75a61", - "readonly": true - }, - { - "name": "ride", - "sha": "6116ce62cf2c2c19cd54c78134662ba39e6862e3", - "content": [ - { - "name": "8ball.ride", - "content": "{-# STDLIB_VERSION 3 #-}\n{-# CONTENT_TYPE DAPP #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n\n#\n# Waves dApp version of famous Magic 8 ball toy!\n# Function name: tellme(question: String)\n# Question and answer will be written to dApp data state\n#\n# Example on Testnet: 3N27HUMt4ddx2X7foQwZRmpFzg5PSzLrUgU\n#\n\nlet answersCount = 20\nlet answers = \n [\"It is certain.\",\n \"It is decidedly so.\",\n \"Without a doubt.\",\n \"Yes - definitely.\",\n \"You may rely on it.\",\n \"As I see it, yes.\",\n \"Most likely.\",\n \"Outlook good.\",\n \"Yes.\",\n \"Signs point to yes.\",\n \"Reply hazy, try again.\",\n \"Ask again later.\",\n \"Better not tell you now.\",\n \"Cannot predict now.\",\n \"Concentrate and ask again.\",\n \"Don't count on it.\",\n \"My reply is no.\",\n \"My sources say no.\",\n \"Outlook not so good.\",\n \"Very doubtful.\"]\n\n\n#\n# Simple pseudorandom answer generator\n#\nfunc getAnswer(question: String, previousAnswer: String) = {\n let hash = sha256(toBytes(question + previousAnswer))\n let index = toInt(hash)\n answers[index % answersCount]\n}\n\nfunc getPreviousAnswer(address: String) = {\n match getString(this, address + \"_a\") {\n case a: String => a\n case _ => address\n }\n}\n\n@Callable(i)\nfunc tellme(question: String) = {\n let callerAddress = toBase58String(i.caller.bytes)\n let answer = getAnswer(question, getPreviousAnswer(callerAddress))\n\n WriteSet([\n DataEntry(callerAddress + \"_q\", question),\n DataEntry(callerAddress + \"_a\", answer)\n ])\n}", - "type": "ride", - "id": "dApps/8ball/ride/8ball.ride", - "sha": "fb1eaee4f9abea218a5e33733f7770547a58e951", - "readonly": true - } - ] - }, - { - "name": "tests", - "sha": "1a99ca340cb62401bbf3f3190a9344a3928ace36", - "content": [ - { - "name": "8ball_test.js", - "content": "//\n// Waves dApp Magic 8 ball tests\n//\n\ndescribe('8 ball', () => {\n const ballAddress = \"3N27HUMt4ddx2X7foQwZRmpFzg5PSzLrUgU\"\n const question = \"Test\" + Date.now()\n const tx = invokeScript({fee: 500000, dApp: ballAddress, call:{function:\"tellme\", args:[{\"type\": \"string\", \"value\": question}]}, payment: null})\n\n it('Tx is mined in block', async function(){\n await broadcast(tx)\n await waitForTx(tx.id)\n })\n\n it('Question is in ball', async function(){\n await accountDataByKey(address()+\"_q\", ballAddress)\n .then(reslove => expect(reslove.value).to.equal(question))\n })\n})", - "type": "js", - "id": "dApps/8ball/tests/8ball_test.js", - "sha": "686e31447b60798dca8c30472a9da276335e4519", - "readonly": true - } - ] - } - ] - }, - { - "name": "bankCredit", - "sha": "5b04c13b6c56fc12947dc78cca0f0d5dde18ea76", - "content": [ - { - "name": "README.md", - "content": "# Bank credit dApp\nWe assume that customer account have some value by itself\n#### E.g: \n* Account could control another dapp\n* It is tied to his passport via government service\n* Owning an account provides ownership of some real world thing\n* Customer completed some complex KYC with this account on third party service\n\n## Workflow \n1. Bank approves credit for some address via `approveCredit` function. It defines client address, amount of money, target height to return and account script for client.\n2. Customer sets `lock script` fon his account.\n3. Customer can get money if he provides proof, that script was indeed set on his account\n4. Customer can cancel credit contract via 'cancelCredit' if he didn't take the money\n5. Customer can return money via 'returnMoney' function\n\n## Simplifications for this version:\na) This version does not account interest, but it can be easily added via additional argument to 'approveCredit'\nb) This version does not separate different credit contracts for one account. For now it is possible to have only one. Having multiple contracts can also be implemented with contract id's\n\n## Account lock script:\nCustomer sets account script, which forbids setting another account script. After target height script forbids any operations other than calling dApp functions. If contract status is in `[\"returned\", \"canceled\"]`, script allows to unset itself\n", - "type": "md", - "id": "dApps/bankCredit/README.md", - "sha": "2d56b8f796fb09013dc5e138dbff2e4ac0e8cdcf", - "readonly": true - }, - { - "name": "ride", - "sha": "e684fd8e92ad06cbf0e819707d961f1c9624a89a", - "content": [ - { - "name": "account_lock.ride", - "content": "# This is LOCK script. Customer has to set this script to his account to be able to get money from the bank\n\n{-# STDLIB_VERSION 3 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n\n# Bank dApp address\nlet BANK = base58'3MpFRn3X9ZqcLimFoqNeZwPBnwP7Br5Fmgs'\n\n\nlet TARGETHEIGHT = match( getInteger(Address(BANK), toBase58String(tx.sender.bytes) + \"_target\")){\n case x: Unit => 0\n case x: Int => x\n}\nlet status = match( getString(Address(BANK), toBase58String(tx.sender.bytes) + \"_status\")){\n case x: Unit => \"unset\"\n case x: String => x\n}\n\n# If it is time to pay and money has been borrowed and not returned, we only allow InvokeScript on bank dApp. Anyone can call this dapp\nif (height > TARGETHEIGHT && status == \"borrowed\") then {\n match (tx){\n case t: InvokeScriptTransaction => addressFromRecipient(t.dApp).bytes == BANK\n case _ => false\n }\n# Otherwise if returned allow all\n}else if(status == \"returned\" || status == \"canceled\") then {\n sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)\n# In any other case forbid SetScript\n}else {\n match (tx){\n case t: SetScriptTransaction => false\n case _ => sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)\n }\n}\n\n\n", - "type": "ride", - "id": "dApps/bankCredit/ride/account_lock.ride", - "sha": "fa70bcf5dc8075d5a683a976b6cc175598d1c5ea", - "readonly": true - }, - { - "name": "bank_dapp.ride", - "content": "{-# STDLIB_VERSION 3 #-}\n{-# CONTENT_TYPE DAPP #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n\n@Callable(i)\nfunc approveCredit(client: String, amount: Int, target: Int, lockHash: ByteVector) = {\n if (this == i.caller && !isDefined(getBoolean(this, client + \"_status\"))) then {\n WriteSet([\n DataEntry(client + \"_status\", \"approved\"),\n DataEntry(client + \"_amount\", amount),\n DataEntry(client + \"_target\", target),\n DataEntry(client + \"_lockScriptId\", lockHash)\n ])\n }else {\n throw(\"Credit for \" + client + \" has already been approved or caller is not dApp owner\")\n }\n\n}\n\n@Callable(i)\nfunc getMoney() = {\n\n let callerStr = toBase58String(i.caller.bytes)\n\n let status = match( this.getString(callerStr + \"_status\")){\n case x: Unit => \"unset\"\n case x: String => x\n }\n\n let lockTxId = this.getString(callerStr + \"_lockScriptId\").extract()\n let lockTx = transactionHeightById(fromBase58String(lockTxId))\n\n let isLockSet = match (lockTx) {\n case t: Int => true\n case _ => throw(\"Lock has not been set\")\n }\n\n let amount = this.getInteger(callerStr + \"_amount\").extract()\n\n if (status == \"approved\" && isLockSet) then {\n ScriptResult(\n WriteSet([\n DataEntry(callerStr + \"_status\", \"borrowed\")\n ]),\n TransferSet([ScriptTransfer(i.caller, amount, unit)])\n )\n }else throw(\"Credit was not approved or money has already been taken\")\n\n}\n\n@Callable(i)\nfunc returnMoney() = {\n let callerStr = toBase58String(i.caller.bytes)\n let status = match( this.getString(callerStr + \"_status\")){\n case x: Unit => \"unset\"\n case x: String => x\n }\n\n let pmt = extract(i.payment)\n\n let amountToReturn = getInteger(this, callerStr + \"_amount\")\n if(status != \"borrowed\") then throw(\"Cannot return, nothing was borrowed\")\n else if (isDefined(pmt.assetId)) then throw(\"Can return only WAVES at the moment\")\n else if (amountToReturn != pmt.amount) then throw(\"Should return borrowed amount\")\n else {\n WriteSet([\n DataEntry(callerStr + \"_status\", \"returned\")\n ])\n }\n}\n\n@Callable(i)\nfunc cancelContract() = {\n let callerStr = toBase58String(i.caller.bytes)\n let status = match( this.getString(callerStr + \"_status\")){\n case x: Unit => \"unset\"\n case x: String => x\n }\n if(status == \"approved\" || status == \"unset\") then WriteSet([DataEntry(callerStr + \"_status\", \"canceled\")])\n else {throw(\"Cannot cancel credit. Money has already been taken\")}\n}\n\n@Verifier(tx)\nfunc verify() = {\n match(tx) {\n case t:DataTransaction => false\n case t:SetScriptTransaction => false\n case _ => sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)\n }\n}\n", - "type": "ride", - "id": "dApps/bankCredit/ride/bank_dapp.ride", - "sha": "16aeb389e93c542e81ad1c483fe240467ae332e7", - "readonly": true - } - ] - }, - { - "name": "test", - "sha": "30f00a8b0e3dd62cd728ba284cd72d1453ff0c64", - "content": [ - { - "name": "test.js", - "content": "const wvs = 10 ** 8;\n\ndescribe('Bank Dapp test Suite', () => {\n\n let lockTx;\n let removeLockTx;\n let paymentAmount = 0.4 * wvs\n\n before(async function() {\n this.timeout(0);\n\n await setupAccounts({bank: 0.5 * wvs, client: 0.1 * wvs});\n\n const compiledDapp = compile(file('bank_dapp.ride'))\n const bankAddress = address(accounts.bank)\n const lockScript = file('account_lock.ride')\n .replace(`base58'3MpFRn3X9ZqcLimFoqNeZwPBnwP7Br5Fmgs'`, `base58'${bankAddress}'`)\n\n const compiledLock = compile(lockScript)\n\n lockTx = setScript({script: compiledLock}, accounts.client)\n removeLockTx = setScript({script: null, additionalFee: 400000}, accounts.client)\n const dAppTx = setScript({script: compiledDapp}, accounts.bank)\n await broadcast(dAppTx)\n await waitForTx(dAppTx.id)\n console.log('Scrips were deployed')\n })\n\n it('Bank approves credit for customer', async function(){\n const invTx = invokeScript({\n additionalFee: 400000,\n dApp: address(accounts.bank),\n call: {\n function: \"approveCredit\",\n args: [{\n type: \"string\",\n value: address(accounts.client)\n }, {\n type: \"integer\",\n value: paymentAmount\n }, {\n type: \"integer\",\n value: 0\n }, {\n type: \"string\",\n value: lockTx.id\n }]\n }\n }, accounts.bank)\n\n await broadcast(invTx)\n await waitForTx(invTx.id)\n })\n\n it('Customer fails to get money without lock', async function(){\n const invTx = invokeScript({\n additionalFee: 500000,\n dApp: address(accounts.bank),\n call: {\n function: \"getMoney\"\n }\n }, accounts.client)\n await expect(broadcast(invTx)).rejectedWith()\n })\n\n it('Customer sets lock and gets money', async function(){\n this.timeout(0)\n\n await broadcast(lockTx)\n await waitForTx(lockTx.id, {timeout: 1000000})\n\n const invTx = invokeScript({\n additionalFee: 500000,\n dApp: address(accounts.bank),\n call: {\n function: \"getMoney\"\n }\n }, accounts.client)\n await broadcast(invTx)\n await waitForTx(invTx.id, {timeout: 1000000})\n })\n\n it('Customer fails to remove lock', async function(){\n await expect(broadcast(removeLockTx)).rejectedWith()\n })\n\n it('Customer returns money and removes lock from his account', async function(){\n this.timeout(0)\n const invTx = invokeScript({\n additionalFee: 500000,\n dApp: address(accounts.bank),\n call: {\n function: \"returnMoney\",\n args: []\n },\n payment:[{\n amount: paymentAmount\n }]\n }, accounts.client)\n await broadcast(invTx);\n await waitForTx(invTx.id, {timeout: 1000000});\n await broadcast(removeLockTx)\n })\n})\n\n\n", - "type": "js", - "id": "dApps/bankCredit/test/test.js", - "sha": "e718c84b6769b38b4cec51a617172458aa021d6e", - "readonly": true - } - ] - } - ] - }, - { - "name": "fomo.ride", - "content": "{-# STDLIB_VERSION 3 #-}\n{-# CONTENT_TYPE DAPP #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n\nlet lpKey = \"lastPayment\"\nlet liKey = \"bestFomoer\"\nlet lhKey = \"height\"\nlet day = 1440\n\n@Callable(i)\nfunc fearmissing() = {\n let payment = match i.payment {\n\t case p:AttachedPayment =>\n\t \t\tmatch p.assetId {\n\t\t\t\t case assetId: ByteVector => throw(\"fomo waves only\")\n\t\t\t\t case _ => p.amount\n\t\t\t }\n\n\t case _ => throw(\"payment must be attached\")\n }\n\tlet lastPayment = match getInteger(this, \"lastPayment\") {\n\t\tcase p:Int => p\n\t\tcase _ => 0\n\t}\n\n\tif(payment <= lastPayment)\n\t\tthen throw(\"min payment is \" +toString(payment))\n\t\telse # storing best payment, caller and height\n\t\t\tWriteSet([\n\t\t\t\tDataEntry(lpKey, payment),\n\t\t\t\tDataEntry(liKey, i.caller.bytes),\n\t\t\t\tDataEntry(lhKey, height)\n\t\t\t])\n}\n\n@Callable(i)\nfunc withdraw() = {\n\tlet callerCorrect = i.caller.bytes == extract(getBinary(this, liKey))\n\tlet heightCorrect = extract(getInteger(this, lhKey)) - height >= day\n\tlet canWithdraw = heightCorrect && callerCorrect\n\n\tif (canWithdraw)\n\t\tthen TransferSet([ScriptTransfer(i.caller, wavesBalance(this), unit)])\n\t\telse throw(\"behold\")\n}\n", - "type": "ride", - "id": "dApps/fomo.ride", - "sha": "65fd9ab026daa2444b208f348cb4ac4f53c8f944", - "readonly": true - }, - { - "name": "momentaryLottery", - "sha": "d8df0f0b7773cd89f0d32a0aebdab99a7443847f", - "content": [ - { - "name": "README.md", - "content": "# Momentary Lottery dApp\n\nMomentary Lottery fully on blockchain\nWin chance is 50/50 with pay rate 1.9x\n\n### Deploying\n\n1. Compile RIDE script\n2. Deploy smart script to dApp account\n3. You are ready to go!\n\n### How to use\n\n1. Prepare Invoke script TX with function name `lotto` or Default function with payment in Waves\n2. Broadcast your TX\n3. dApp will resolve bet and transfer you winning amount or nothing (tough luck)\n\n\n### dApp on Testnet\n\nCode for [RIDE IDE](https://ide.wavesplatform.com/) console\n```JS\nconst betAmount = 1000000\nconst invokeTX = invokeScript({ fee: 500000, dApp: \"3Mu5kasZ85VY5xUCpPYoWr6fBzh6eGZwcnt\", call: null, payment: [{assetId: null, amount: 1000000}]})\nbroadcast(invokeTX)\n```", - "type": "md", - "id": "dApps/momentaryLottery/README.md", - "sha": "27018acd03667fc9c15d3ecc32daf255df50dd39", - "readonly": true - }, - { - "name": "ride", - "sha": "2fb2bd4713c34e22aaa848eb84f39ff5fe574ab6", - "content": [ - { - "name": "momentaryLottery.ride", - "content": "{-# STDLIB_VERSION 3 #-}\n{-# CONTENT_TYPE DAPP #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n\n#\n# Momentary Lottery fully on blockchain.\n# Win chance is 50/50 with pay rate 1.9x\n# Function name: lotto() or Default function\n# Payment: Any amount in Waves\n#\n# Example on Testnet: 3Mu5kasZ85VY5xUCpPYoWr6fBzh6eGZwcnt\n#\n\n\n#\n# Pseudorandom generator fully based on blockchain state\n#\nfunc randomizer(inv: Invocation) = {\n let lastPlay = match getBinary(this, \"lastPlay\") {\n case s:ByteVector => s\n case a:Unit => base64'V2F2ZXNMb3R0b1Yy'\n }\n\n let rand = lastPlay + inv.transactionId + inv.callerPublicKey + lastBlock.generationSignature + toBytes(lastBlock.timestamp) + toBytes(lastBlock.height)\n sha256(rand)\n}\n\nfunc startLotto(inv: Invocation) = {\n let playLimit = wavesBalance(this) / 100\n let payment = extract(inv.payment)\n\n if(!isDefined(inv.payment)) then {\n throw(\"Should be with Payment in Waves\")\n } else if (isDefined(payment.assetId)) then {\n throw(\"Payment should be in Waves\")\n } else if (payment.amount > playLimit) then {\n throw(\"Payment should be less than \" + toString(playLimit))\n } else {\n\n let randhash = randomizer(inv)\n let winTransfer = TransferSet([ScriptTransfer(inv.caller, payment.amount * 190 / 100, unit)])\n let writeLastPlay = WriteSet([DataEntry(\"lastPlay\", randhash)])\n\n if(randhash.toInt() % 1000 < 500) then {\n ScriptResult(writeLastPlay, winTransfer)\n } else {\n ScriptResult(writeLastPlay, TransferSet([]))\n }\n }\n}\n\n@Callable(inv)\nfunc lotto() = {\n startLotto(inv)\n}\n\n@Callable(inv)\nfunc default() = {\n startLotto(inv)\n}", - "type": "ride", - "id": "dApps/momentaryLottery/ride/momentaryLottery.ride", - "sha": "1ed7b36515f29851347d62b3d86acafb9774de4e", - "readonly": true - } - ] - }, - { - "name": "test", - "sha": "0bf7fff40170654426a477c386f951452f087b5e", - "content": [ - { - "name": "momentaryLottery_test.js", - "content": "//\n// Momentary Lottery tests\n// Tests will run from current IDE account\n// Account should have at lease 5 Waves and at least 0.01 non Waves tokens\n//\n\ndescribe('Momentary Lotto', () => {\n const lottoAddress = \"3Mu5kasZ85VY5xUCpPYoWr6fBzh6eGZwcnt\"\n const someAssetId = \"CJDViFTTV5gmR6Kb1xVtwNUb9fkSgjeWrsCRZWQkG8t6\" //Should be on test account balance\n const betAmount = 1000000\n\n it('Play with function name', async function(){\n const tx = invokeScript({ fee: 500000, dApp: lottoAddress, call: {function: \"lotto\", args: []}, payment: [{assetId: null, amount: betAmount}]})\n await broadcast(tx)\n await waitForTx(tx.id)\n })\n\n it('Play with default function', async function(){\n const tx = invokeScript({ fee: 500000, dApp: lottoAddress, call: null, payment: [{assetId: null, amount: betAmount}]})\n await broadcast(tx)\n await waitForTx(tx.id)\n })\n\n it('Without payment', async function(){\n const tx = invokeScript({ fee: 500000, dApp: lottoAddress, call: null, payment: []})\n return expect(broadcast(tx)).to.eventually\n .be.rejectedWith(\"Should be with Payment in Waves\")\n })\n\n it('With payment not in Waves', async function(){\n const tx = invokeScript({ fee: 500000, dApp: lottoAddress, call: null, payment: [{assetId: someAssetId, amount: betAmount}]})\n return expect(broadcast(tx)).to.eventually\n .be.rejectedWith(\"Payment should be in Waves\")\n })\n\n it('Bet amount is too large', async function(){\n const lottoBalance = await balance(lottoAddress)\n const bet = Math.trunc(lottoBalance / 10)\n const tx = invokeScript({ fee: 500000, dApp: lottoAddress, call: null, payment: [{assetId: null, amount: bet}]})\n return expect(broadcast(tx)).to.eventually\n .be.rejectedWith(\"Payment should be less than\")\n })\n})", - "type": "js", - "id": "dApps/momentaryLottery/test/momentaryLottery_test.js", - "sha": "17508c3f5a6070eb5cb1b7de4afd0b21d451d8a0", - "readonly": true - } - ] - } - ] - }, - { - "name": "wallet", - "sha": "007bc7b2f7652a59409d174f1532c97301c7c709", - "content": [ - { - "name": "ride", - "sha": "d12ca77418d80f8e7fc30dd745d3573b40e25c31", - "content": [ - { - "name": "wallet.ride", - "content": "# In this example multiple accounts can deposit their funds and safely take them back.\n# User balances are stored in the dApp state as mapping `address=>waves`.\n\n{-# STDLIB_VERSION 3 #-}\n{-# CONTENT_TYPE DAPP #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n\n@Callable(i)\nfunc deposit() = {\n # deposit function can be invoked from UI by user to top up the balance\n let pmt = extract(i.payment) # creating variable with all data about a payment attached to the invokation\n if (isDefined(pmt.assetId)) then throw(\"can hodl waves only at the moment\") # waves-only threshold\n else {\n let currentKey = toBase58String(i.caller.bytes) # determining caller key\n let currentAmount = match getInteger(this, currentKey) { # reading current user's balance from the account state\n case a:Int => a\n case _ => 0 # taking zero as a balance value if this is the first time user deposits money\n }\n let newAmount = currentAmount + pmt.amount # counting new balance as \"old balance + payment value\"\n WriteSet([DataEntry(currentKey, newAmount)]) # updating user's balance in the account state\n }\n}\n\n@Callable(i)\nfunc withdraw(amount: Int) = {\n # withdraw function can be invoked by user to \"cash out\" a part of his balance\n let currentKey = toBase58String(i.caller.bytes) \n let currentAmount = match getInteger(this, currentKey) {\n case a:Int => a\n case _ => 0\n }\n let newAmount = currentAmount - amount\n if (amount < 0) # is user requesting a positive amount?\n then throw(\"Can't withdraw negative amount\")\n else if (newAmount < 0) # does user have enough balance for this withdraw?\n then throw(\"Not enough balance\")\n else ScriptResult(\n WriteSet([DataEntry(currentKey, newAmount)]), # saving new balance to the account state\n TransferSet([ScriptTransfer(i.caller, amount, unit)]) # transfering the withdraw amount to user\n )\n }\n\n@Verifier(tx)\nfunc verify() = false # this script can NOT be updated because of this verifier function\n\n\n", - "type": "ride", - "id": "dApps/wallet/ride/wallet.ride", - "sha": "07277389f9c571bc1deb00a3a896cf34f04499e4", - "readonly": true - } - ] - }, - { - "name": "test", - "sha": "a1af145249aee29cd0c5907aeafe07209e0aeb89", - "content": [ - { - "name": "wallet.js", - "content": "const wvs = 10 ** 8;\r\n\r\ndescribe('wallet test suite', async function () {\r\n\r\n this.timeout(100000);\r\n\r\n before(async function () {\r\n await setupAccounts(\r\n {foofoofoofoofoofoofoofoofoofoofoo: 10 * wvs,\r\n barbarbarbarbarbarbarbarbarbar: 2 * wvs,\r\n wallet: 0.05 * wvs});\r\n const script = compile(file('wallet.ride'));\r\n const ssTx = setScript({script}, accounts.wallet);\r\n await broadcast(ssTx);\r\n await waitForTx(ssTx.id)\r\n console.log('Script has been set')\r\n });\r\n \r\n it('Can deposit', async function () {\r\n\r\n const iTxFoo = invokeScript({\r\n dApp: address(accounts.wallet),\r\n call: {function: \"deposit\"},\r\n payment: [{assetId: null, amount: 0.9 * wvs}]\r\n }, accounts.foofoofoofoofoofoofoofoofoofoofoo);\r\n\r\n\r\n const iTxBar = invokeScript({\r\n dApp: address(accounts.wallet),\r\n call: {function: \"deposit\"},\r\n payment: [{assetId: null, amount: 1.9 * wvs}]\r\n }, accounts.barbarbarbarbarbarbarbarbarbar)\r\n\r\n\r\n await broadcast(iTxFoo);\r\n await broadcast(iTxBar);\r\n await waitForTx(iTxFoo.id);\r\n await waitForTx(iTxBar.id);\r\n })\r\n\r\n it('Cannot withdraw more than was deposited', async function () {\r\n const iTxFoo = invokeScript({\r\n dApp: address(accounts.wallet),\r\n call: {\r\n function: \"withdraw\",\r\n args: [{type:'integer', value: 2 * wvs}]\r\n },\r\n\r\n }, accounts.foofoofoofoofoofoofoofoofoofoofoo);\r\n\r\n expect(broadcast(iTxFoo)).to.be.rejectedWith(\"Not enough balance\")\r\n })\r\n\r\n it('Can withdraw', async function () {\r\n const iTxFoo = invokeScript({\r\n dApp: address(accounts.wallet),\r\n call: {\r\n function: \"withdraw\",\r\n args: [{ type: 'integer', value: 0.9 * wvs }]\r\n },\r\n\r\n }, accounts.foofoofoofoofoofoofoofoofoofoofoo);\r\n await broadcast(iTxFoo)\r\n })\r\n})", - "type": "js", - "id": "dApps/wallet/test/wallet.js", - "sha": "332da465cdf367042249a588b05f8bf7b26d46f2", - "readonly": true - } - ] - } - ] - } - ] - }, - { - "name": "smart-accounts", - "sha": "52cfd52a29a78e71064d0eb114c9a1d26c48fafb", - "content": [ - { - "name": "AuthorizedTrader.ride", - "content": "#allow trader to set orders on your account\n#this is the same as you send your api-key on common exchanges to the trader without sharing your private key or seed\n#trader is allowed to set order on certain pairs\n#order expiration time should be less then 2 minutes, as trader cannot cancel orders in current RIDE version\n#at any time accout owner can cancel\n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n\nlet traderPublicKey = base58'QLMkJYFXsXiLLiKCbVCZZzQQT3whz8PAPdT7w4yQjEn'\nlet ownerPublicKey = base58'4gFmmsNv1qA9Krn3pUGbZVcJQTCsXEXhZjEtszDtxMXz'\nlet amountAsset = base58'8LLpj6yQLUu37KUt3rVo1S69j2gWMbgbM6qqgt2ac1Vb'\nlet matcherPublicKey = base58'7kPFrHDiGw1rCm7LPszuECwWYL3dMf6iMifLRDJQZMzy'\n\n\nmatch (tx) {\n case o:Order =>\n let isWavesPriceAsset = !isDefined(o.assetPair.priceAsset)\n let rightPair = (o.assetPair.amountAsset == amountAsset) && isWavesPriceAsset\n sigVerify(o.bodyBytes, o.proofs[0], traderPublicKey)\n && rightPair\n && o.expiration - o.timestamp < 120*1000\n && o.matcherPublicKey == matcherPublicKey\n case t:SetScriptTransaction | TransferTransaction =>\n sigVerify(t.bodyBytes, t.proofs[0], ownerPublicKey)\n case _ =>\n false\n }", - "type": "ride", - "id": "smart-accounts/AuthorizedTrader.ride", - "sha": "93e87d51d97be39f6eb56d0173d8c8ad1610e854", - "readonly": true - }, - { - "name": "Multisig.ride", - "content": "{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n\n#define public keys\nlet alicePubKey = base58'5AzfA9UfpWVYiwFwvdr77k6LWupSTGLb14b24oVdEpMM'\nlet bobPubKey = base58'2KwU4vzdgPmKyf7q354H9kSyX9NZjNiq4qbnH2wi2VDF'\nlet cooperPubKey = base58'GbrUeGaBfmyFJjSQb9Z8uTCej5GzjXfRDVGJGrmgt5cD'\n\n#check whoever provided the valid proof\nlet aliceSigned = if(sigVerify(tx.bodyBytes, tx.proofs[0], alicePubKey )) then 1 else 0\nlet bobSigned = if(sigVerify(tx.bodyBytes, tx.proofs[1], bobPubKey )) then 1 else 0\nlet cooperSigned = if(sigVerify(tx.bodyBytes, tx.proofs[2], cooperPubKey )) then 1 else 0\n\n#sum up every valid proof to get at least 2\naliceSigned + bobSigned + cooperSigned >= 2\n", - "type": "ride", - "id": "smart-accounts/Multisig.ride", - "sha": "33df8c96eececaf24bb55a33bd6a6ab66fa3acb1", - "readonly": true - }, - { - "name": "XmasTree.ride", - "content": "# Contract example from tradisys.com team\n\n### Prerequisites ###\n# - balance = playersPrize + dataTransactionFee * 3 + transferTransactionFee\n# - no data required\n#####################\n\n### Player's precautions ###\n# - Smart account balance is >= playersPrize + dataTransactionFee * 2 + transferTransactionFee\n# - Data on account: playersPublicKey matches player's public key, lockedAt is approximately equal to current block height.\n############################\n\n### Normal flow ###\n# 1) Data transaction from server, data = [lockedAt, playersPublicKey]. lockedAt = height or height - 1. Transition: InitialState -> LockedState\n# 2) Data transaction from player, data = [playersChoice]. Transition: LockedState -> PlayerRevealedHisChoiceState\n# 3) Transfer transaction from player, amount = donation\n# 4) Data transaction from server, data = [serversChoice, serversSalt]. Transition: PlayerRevealedHisChoiceState -> WinnerIsDeterminedState\n# 5) Transfer transaction, recipients = winner (playersPrize + donation). Transition: PlayerDecidedNotToSendDonationState -> \n###################\n\n### Emergency flow ###\n# 1) Normal flow #1 is completed, but user hasn't done any actions in timeoutInBlocks blocks - we allow server to override\n# playersPublicKey and lockedAt data. Transition: UserDecidedNotToPlayState -> LockedState\n# 2) Normal flow #2 is completed, but server hasn't done any actions in timeoutInBlocks * 2 blocks from lockedAt - we allow player\n# to widthdraw all the money. Transition: ServerDecidedNotToPlayState -> \n# 3) Players sent his choice (Normal Flow #2), but not his money (Normal flow #3) - we allow server to withdraw all the money.\n# Transition: PlayerDecidedNotToSendDonationState -> \n######################\n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n\n### Injected values ###\nlet serversPublicKey = base58'5AzfA9UfpWVYiwFwvdr77k6LWupSTGLb14b24oVdEpMM'\nlet enctyptedServersChoice = base58'5AzfA9UfpWVYiwFwvdr77k6LWupSTGLb14b24oVdEpMM' # keccak256(serversChoice + serversSalt)\nlet donation = 100_000_000 # waves * 100_000_000, eq. 300000000 (= 3 waves)\nlet playersPrize = 100_000_000 # waves * 100_000_000, eq. 400000000 (= 2 waves)\nlet boxesCount = 5\n#######################\n\n### Values from data ###\nlet maybeDataPlayersPublicKey = getString(tx.sender, \"playersPublicKey\")\nlet dataPlayersPublicKey = fromBase58String(extract(maybeDataPlayersPublicKey))\nlet dataLockedAt = extract(getInteger(tx.sender, \"lockedAt\"))\nlet maybeDataPlayersChoice = getInteger(tx.sender, \"playersChoice\")\nlet dataPlayersChoice = extract(maybeDataPlayersChoice)\nlet maybeDataServersChoice = getInteger(tx.sender, \"serversChoice\")\nlet dataServersChoice = extract(maybeDataServersChoice)\n########################\n\nlet timeoutInBlocks = 120\nlet dataTransactionFee = 500000 # 0.001 + 0.004 (smart account fee)\nlet transferTransactionFee = 500000 # 0.001 + 0.004 (smart account fee)\nlet serversAddress = addressFromPublicKey(serversPublicKey)\nlet playersAddress = addressFromPublicKey(dataPlayersPublicKey)\nlet accountBalance = wavesBalance(tx.sender)\n\nlet senderIsServer = sigVerify(tx.bodyBytes, tx.proofs[0], serversPublicKey)\nlet senderIsPlayer = sigVerify(tx.bodyBytes, tx.proofs[0], dataPlayersPublicKey)\n\n### States ###\n# InitialState @ no data is deployed to account\n# Balance: playersPrize + dataTransactionFee * 3 + transferTransactionFee\nlet isInitialState = !isDefined(maybeDataPlayersPublicKey) && accountBalance >= playersPrize + dataTransactionFee * 3 + transferTransactionFee\n\n# LockedState @ account is locked for a specific player by server\n# State: playersPublicKey and lockedAt in data; height <= lockedAt + timeoutInBlocks\n# Balance: donation + dataTransactionFee * 2 + massTransferTransactionFee\nlet dataIsValidForLockedState = isDefined(maybeDataPlayersPublicKey) && !isDefined(maybeDataPlayersChoice)\nlet lockedStateTimeout = height > dataLockedAt + timeoutInBlocks\nlet isLockedState = dataIsValidForLockedState && !lockedStateTimeout\n\n# UserDecidedNotToPlayState @ user didn't send a data transaction in timeoutInBlocks blocks\nlet isUserDecidedNotToPlayState = dataIsValidForLockedState && lockedStateTimeout\n\n# PlayerRevealedHisChoiceState @ player sent a data transaction with his choice (and donationted simultaneously)\n# State: playersPublicKey, lockedAt, playersChoice in data; height <= lockedAt + timeoutInBlocks * 2\n# Balance: playersPrize (playersPrize + donation is fine too) + dataTransactionFee + transferTransactionFee\nlet dataIsValidForPlayerRevealedState = isDefined(maybeDataPlayersChoice) && !isDefined(maybeDataServersChoice)\nlet playerRevealedStateTimeout = (height > dataLockedAt + timeoutInBlocks * 2) && (accountBalance >= playersPrize + donation + dataTransactionFee + transferTransactionFee)\nlet isPlayerRevealedHisChoiceState = dataIsValidForPlayerRevealedState && !playerRevealedStateTimeout\n\n# ServerDecidedNotToPlayState @ the same as PlayerRevealedHisChoiceState, but after timeoutInBlocks * from lockedAt\n# Balance: strictly >= playersPrize + donation + dataTransactionFee + transferTransactionFee, otherwise player will be able to publish data transaction w/o transfer\nlet isServerDecidedNotToPlayState = dataIsValidForPlayerRevealedState && playerRevealedStateTimeout\n\n# WinnerIsDeterminedState @ we are ready to send money to winner\n# Balance: strictly >= playersPrize + donation + transferTransactionFee\nlet isDataValidForWinnerIsDeterminedState = isDefined(maybeDataServersChoice)\nlet isBalanceValidForWinnerIsDeterminedState = accountBalance >= playersPrize + donation + transferTransactionFee\nlet isWinnerIsDeterminedState = isDataValidForWinnerIsDeterminedState && isBalanceValidForWinnerIsDeterminedState\n\n# PlayerDecidedNotToSendDonationState @ player sent data transaction with his choice, but not a transfer transaction with donation\nlet isPlayerDecidedNotToSendDonationState = isDataValidForWinnerIsDeterminedState && !isBalanceValidForWinnerIsDeterminedState\n##############\n\nmatch (tx) {\n case dtx:DataTransaction => (\n let payloadSize = size(dtx.data)\n let firstPayloadName = dtx.data[0].key\n let secondPayloadName = dtx.data[1].key\n let firstPayloadAsInteger = extract(getInteger(dtx.data, firstPayloadName))\n let secondPayloadAsString = extract(getString(dtx.data, secondPayloadName))\n let dataFeeIsOk = dtx.fee == dataTransactionFee\n\n if (isInitialState || isUserDecidedNotToPlayState) then ( # Normal flow #1, Emergency flow #1\n let validLockedAtIsProvided = firstPayloadName == \"lockedAt\" && (firstPayloadAsInteger <= height && height - firstPayloadAsInteger <= 5)\n let playersPublicKeyIsProvided = secondPayloadName == \"playersPublicKey\"\n senderIsServer && dataFeeIsOk && validLockedAtIsProvided && playersPublicKeyIsProvided && payloadSize == 2\n ) else if (isLockedState) then ( # Normal flow #2\n let validPlayersChoiceIsProvided = firstPayloadName == \"playersChoice\" && (firstPayloadAsInteger >= 0 && firstPayloadAsInteger < boxesCount)\n senderIsPlayer && dataFeeIsOk && validPlayersChoiceIsProvided && payloadSize == 1\n ) else if (isPlayerRevealedHisChoiceState) then ( # Normal flow #4\n let validServerChoiceWasProvided = firstPayloadName == \"serversChoice\" && (firstPayloadAsInteger >= 0 && firstPayloadAsInteger < boxesCount)\n let serversSaltWasProvided = secondPayloadName == \"serversSalt\"\n let choiceAndSaltMatchesHardcodedValue = keccak256(toBytes(toString(firstPayloadAsInteger) + secondPayloadAsString)) == enctyptedServersChoice\n\n senderIsServer && dataFeeIsOk && validServerChoiceWasProvided && serversSaltWasProvided && choiceAndSaltMatchesHardcodedValue && payloadSize == 2\n ) else (\n false \n )\n )\n case ttx:TransferTransaction => (\n let transferFeeIsOk = ttx.fee == transferTransactionFee\n\n if (isWinnerIsDeterminedState) then ( # Normal flow #5\n let winnerAddress = if (dataServersChoice == dataPlayersChoice) then playersAddress else serversAddress\n let prizeGoesToWinner = ttx.recipient == winnerAddress\n\n transferFeeIsOk && prizeGoesToWinner && ttx.amount == playersPrize + donation\n ) else if (isServerDecidedNotToPlayState) then ( # Emergency flow #2\n let recipientIsPlayer = ttx.recipient == playersAddress\n\n transferFeeIsOk && recipientIsPlayer && ttx.amount == playersPrize + donation\n ) else if (isPlayerDecidedNotToSendDonationState) then ( # Emergency flow #3\n let recipientIsServer = ttx.recipient == serversAddress\n transferFeeIsOk && recipientIsServer && ttx.amount == playersPrize\n ) else (\n false\n )\n )\n case _ => false\n}\n", - "type": "ride", - "id": "smart-accounts/XmasTree.ride", - "sha": "b2e314c0b29503473d033ee30fe7e855c2f12ce0", - "readonly": true - }, - { - "name": "casino.ride", - "content": "# If you want to test it on TestNet\n# You will need Keeper (Don't forget TO SWITCH IT TO TESTNET MODE!)\n# go http://185.43.6.227:8000\n# and Play\n#\n#\n# This is an account script of a roulette in a casino\n# Results of games are put into the blockchain by the Oracle periodically (every 5 minutes).\n# Oracle posts its messages to separate account \n#\n# How to make bet\n# \n# To participate you need to Transfer Waves to this account - make Payment and register the bet \n#\n# 1. Payment\n# Just send money to the casino's account\n#\t One payment - one bet. Minimal bet amount = 0.5.\n# Bet registration fee (see next paragraph) is substracted from your payment.\n# 2. Register payment as the bet\n# You need to register the bet for the game round. Choose round by it's timestamp (happens every 5 minutes). \n# To register you need send DataTransaction from the script account signed by Payment sender and containing the following data:\n# (, guess), (_round, timestamp_of_the_round)\n# \t timestamp_of_the_round - in UTF8 encoding in bytes(13 bytes)\n# Guess is a ByteArray in the following format:\n# type of bet (1 byte), guess (1 byte)\n# Bet type could be one of the following (in braces possible 'guess' values are defined):\n# 0 - number (number)\n# 1 - red (0) or black (1)\n# 2 - even (0) or odd (1)\n# 3 - 1st half of the desk (0) and 2nd half (1)\n# 4 - 1st third of the desk (0), 2nd third (1), 3rd third (2)\n# 5 - 1st row of the desk (0), 2nd row (1), 3rd row (2)\n#\n# How to get your prise in case you win \n#\n# In case you guess right you can get more money then your bet (see koeff variable in the code).\n# Formula is: (paymentTx.amount - registerBetTxFee) * koeff - dataTxsFees - withdrawTx.fee\n#\n# You win the round defined by your Bet Registration in case the Oracle\n# put equal value to the round's data. Oracle puts DataTransaction where\n# - the key is the timestamp of the round in UTF8 format converted to ByteArray\n# - value is ByteArray containing\n# 1) version (1 byte)\n#\t 2) wining value for bet of type0 - number (1 byte)\n#\t 3) wining value for bet of type1 - red/black (1 byte)\n#\t 4) wining value for bet of type2 - even/odd (1 byte)\n#\t 5) wining value for bet of type3 - halfs of the desk (1 byte)\n#\t 6) wining value for bet of type4 - thirds of the desk (1 byte)\n#\t 7) wining value for bet of type5 - rows of the desk (1 byte)\n#\n# You can also get your money back if you just sent Payment, but didn't register it as a bet.\n# In this case you need to do the same as described below, but amount would be the following:\n# paymentTx.amount - dataTxsFees - withdrawTx.fee \n#\n# To get money you need to do the following:\n# 1. Create withdraw - Transfer transaction. Amount of money must be calculated according to type of your bet\n# and concider fees - fee of withdraw transaction and fees of data transactions (see 2.)\n# Withdraw transaction must:\n#\t 1) be originated from the Casino account (sender - is the Casino account public key)\n# 2) be signed by Payment sender\n#\t 3) contain Payment transaction id in the second proof.\n# Don't send withdraw yet, just remember it's id (). \n#\t You will send it on step 3, after the DataTransaction. \n# 2. Create and send DataTransaction. This DataTransaction links your Payment to the Withdraw.\n# Because of this DataTransaction you only able to get money once per payment which won. \n#\t In case you sent DataTransaction but lost your Withdraw transaction (e.g. it is expired),\n# you can provide another DataTransaction with new link of Payment to Withdraw.\n# Since DataTransactions are made from the name of the Casino account fees \n#\t will be substracted from your prise.\n#\t DataTransaction must: \n# 1) be originated from the Casino account (sender - is the Casino account public key)\n# 2) be signed by Payment sender\n# 3) contain the following (key, value) pairs:\n# (_withdraw, ), (_withdraw_fees, sum_ammount_of_data_txs_fees)\n#\t sum_ammount_of_data_txs_fees - is sum of fees of all DataTransactions for this payment.\n# 3. When DataTransaction is in the blockchain send Withdraw created on step 1.\n#\n# Donation \n# if you find this script useful, you can donate\n# Waves address: 3P5VCmMc7fqqJijHaS3yB8jCwq7rgmLpszx\n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n\nlet me = tx.sender\nlet oracle = extract(addressFromString(\"3NCzaYTNDGtR8zf9yfcqePFjCqFx9S5zhs4\"))\nlet minWithdrawFee = 500000\nlet registerBetTxFee = 500000\n\nmatch(tx) {\n\tcase withdrawTx: TransferTransaction =>\n\t\t# proofs[0] contains signiture by payment sender\n\t\t# proofs[1] contains payment Tx id\n\t\tlet txId = extract(getString(me, toBase58String(tx.proofs[1]) + \"_withdraw\"))\n\t\tmatch(transactionById(tx.proofs[1])) {\n\t\t\tcase paymentTx: TransferTransaction =>\n\t\t\t let isPaymentTookPlace = txId == toBase58String(tx.id) && sigVerify(tx.bodyBytes, tx.proofs[0], paymentTx.senderPublicKey)\n\n\t\t\t\tlet feesKey = toBase58String(tx.proofs[1]) + \"_withdraw_fees\"\n\t\t\t\tlet dataTxsFees = extract(getInteger(me, feesKey))\n\n\t\t\t\tlet guessUnit = getBinary(me, toBase58String(tx.proofs[1]))\n\t\t\t\t\n\t\t\t\tlet correctAmount = if (!isDefined(guessUnit)) then\n\t\t\t\t{\n\t\t\t\t\t# return back payment\n\t\t\t\t\tpaymentTx.amount - dataTxsFees - withdrawTx.fee\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t# get win prise\n\t\t\t\t\tlet guess = extract(guessUnit)\n\n\t\t\t\t\tlet type = take(guess, 1)\n\t\t\t\t\tlet val = drop(guess, 1)\n\t\t\t\t\tlet key = extract(getString(me, toBase58String(tx.proofs[1]) + \"_round\"))\n\n\t\t\t\t\tlet valComplex = extract(getBinary(oracle, key))\n\n\t\t\t\t\tlet koeff =\n\t\t\t\t\t\tif (type == drop(toBytes(0), 7)) then 36\n\t\t\t\t\t\telse if (type == drop(toBytes(1), 7)) then 2\n\t\t\t\t\t\telse if (type == drop(toBytes(2), 7)) then 2\n\t\t\t\t\t\telse if (type == drop(toBytes(3), 7)) then 2\n\t\t\t\t\t\telse if (type == drop(toBytes(4), 7)) then 3\n\t\t\t\t\t\telse if (type == drop(toBytes(5), 7)) then 3\n\t\t\t\t\t\telse 0\n\n\t\t\t\t\t(paymentTx.amount - registerBetTxFee) * koeff - dataTxsFees - withdrawTx.fee\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t(isPaymentTookPlace || throw(\"There was no bet\")) \n\t\t\t\t&& \n\t\t\t\t((withdrawTx.amount == correctAmount) || throw(\"Amount is incorrect. Correct amount is \" + toString(correctAmount))) \n\t\t\t\t&& \n\t\t\t\t((!isDefined(withdrawTx.feeAssetId) && !isDefined(withdrawTx.assetId)) \n\t\t\t\t|| throw(\"Withdraw and fee must be in WAVES\"))\n\n\t\t\tcase _ => false\n\t\t}\n\n\tcase dtx: DataTransaction =>\n\n\t\tif (size(dtx.data) == 3) then\n\t\t{\n\t\t\t# Data Tx for BET REGISTRATION\n\t\t\t\t\t\t\n\t\t\tlet minBet = \t 50000000\n\t\t\tlet maxSumBet = 1000000000 # max sum bet for round\n\t\t\t\n\t\t\tlet paymentTxIdStr = extract(dtx.data[0].key)\n\t\t\t\n\t\t\tlet guessStr = extract(getString(dtx.data, paymentTxIdStr))\n\t\t\tlet paymentRoundKey = paymentTxIdStr + \"_round\"\n\t\t\tlet paymentRound = extract(getString(dtx.data, paymentRoundKey))\n\t\t\t\n\t\t\tlet sumBetsOld = if isDefined(getInteger(me, paymentRound + \"_betsSum\")) \n\t\t\t\t\t\t\t\tthen extract(getInteger(me, paymentRound + \"_betsSum\")) \n\t\t\t\t\t\t\t\telse 0\n\t\t\tlet sumBetsNew = extract(getInteger(dtx.data, paymentRound + \"_betsSum\"))\n\n\t\t\tlet itsTooLate = isDefined(getString(me, paymentRound + \"_stop\"))\n\t\t\t\n\t\t\tlet isPaymentAlreadyMentioned = isDefined(getString(me, paymentTxIdStr))\n\n\t\t\tlet paymentTx = transactionById(fromBase58String(paymentTxIdStr))\n\t\t\tmatch (paymentTx) {\n\t\t\t\tcase paymentTx : TransferTransaction =>\n\t\t\t\t\t# data-transaction must be signed by payment sender\n\t\t\t\t\tlet isDtxSignedByPayer = sigVerify(dtx.bodyBytes, dtx.proofs[0], paymentTx.senderPublicKey)\n\n\t\t\t\t\tlet correctSumBets = sumBetsOld + paymentTx.amount - dtx.fee # data tx fee is payed by Payment sender from its bet\n\n\t\t\t\t\t(addressFromRecipient(paymentTx.recipient) == me || throw(\"Incorrect recipient of the payment\"))\n\t\t\t\t\t&&\n\t\t\t\t\t(!isPaymentAlreadyMentioned || throw(\"This transfer is already used as a bet\")) \n\t\t\t\t\t&& \n\t\t\t\t\t((sumBetsNew == correctSumBets)\n\t\t\t\t\t|| throw(\"Wrong value for Sum of Bets. Must be \" + toString(correctSumBets)))\n\t\t\t\t\t&&\n\t\t\t\t\t((sumBetsNew < maxSumBet) \n\t\t\t\t\t|| throw(\"Maximum amount of bets for round \" + toString(maxSumBet) + \". With your bet it's \" + toString(sumBetsNew)))\n\t\t\t\t\t&&\n\t\t\t\t\t((dtx.fee == registerBetTxFee) \n\t\t\t\t\t|| throw(\"Fee of bet registration data transaction must be \" + toString(registerBetTxFee)))\n\t\t\t\t\t&&\n\t\t\t\t\t((paymentTx.amount - registerBetTxFee >= minBet) || throw(\"Your Bet amount is less then minimal bet \" + toString(minBet) + \". Payment amount for such bet must be \" + toString(minBet+registerBetTxFee)))\n\t\t\t\t\t&& \n\t\t\t\t\t((!isDefined(paymentTx.feeAssetId) || throw(\"Paymnet must be in WAVES\")))\n\t\t\t\t\t&& \n\t\t\t\t\t(!itsTooLate || throw(\"It's too late to play this round. Try next one\"))\n\n\t\t\t\t\t \n\n\t\t\t\tcase _ => false\n\t\t\t}\t\t\n\t\t}\n\t\telse if (size(dtx.data) == 2) then\n\t\t{\n\t\t\t# Data Tx for WITHDRAW registration\n\n\t\t\t# payment transaction in the first key-value.\n\t\t\t# Data tx must be signed by payment sender\n\n\t\t\tlet isDataCountOk = size(dtx.data) == 2\n\n\t\t\tlet paymentTxIdStr = dropRight(extract(dtx.data[0].key), 9) # drop \"_withdraw\"\n\t\t\tlet feesKey = paymentTxIdStr + \"_withdraw_fees\"\n\t\t\tlet paymentTx = transactionById(fromBase58String(paymentTxIdStr))\n\t\t\tlet newFees = extract(getInteger(dtx.data, feesKey))\n\t\t\tlet oldFeesUnit = getInteger(me, feesKey)\n\t\t\tlet oldFees = if isDefined(oldFeesUnit)\n\t\t\t\t\t\t\tthen extract(oldFeesUnit)\n\t\t\t\t\t\t\telse 0\n\n\t\t\tlet isFeeCorrect = newFees == oldFees + dtx.fee\n\n\t\t\t#if payment already mentioned in the State, the corresponding withdraw tx must not exist\n\t\t\t\n\t\t\tlet withdrawTxIdUnit = getString(me, paymentTxIdStr)\n\t\t\tlet isPaymentAlreadyMentioned = isDefined(withdrawTxIdUnit)\n\n\t\t\tlet withdrawTransactionId = fromBase58String(extract(withdrawTxIdUnit))\n\n\t\t\tmatch (paymentTx) {\n\t\t\t\tcase paymentTx : TransferTransaction =>\n\t\t\t\t\t# data-transaction must be signed by payment sender\n\t\t\t\t\tlet isDtxSignedByPayer = sigVerify(dtx.bodyBytes, dtx.proofs[0], paymentTx.senderPublicKey)\n\n\t\t\t\t\t#if payment correct\n\t\t\t\t\tif (addressFromRecipient(paymentTx.recipient) == me\n\t\t\t\t\t\t&&\n\t\t\t\t\t\t(!isPaymentAlreadyMentioned || !isDefined(transactionById(withdrawTransactionId)) ) \n\t\t\t\t\t\t&&\n\t\t\t\t\t\tisDtxSignedByPayer\n\t\t\t\t\t\t&&\n\t\t\t\t\t\tisFeeCorrect\n\t\t\t\t\t\t&&\n\t\t\t\t\t\tisDataCountOk) \n\t\t\t\t\tthen\n\t\t\t\t\t\tlet guess = extract(getBinary(me, paymentTxIdStr))\n\n\t\t\t\t\t\tlet type = take(guess, 1)\n\t\t\t\t\t\tlet key = extract(getString(me, paymentTxIdStr + \"_round\"))\n\n\t\t\t\t\t\tlet valComplex = extract(getBinary(oracle, key))\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet koeff = \n\t\t\t\t\t\t\tif \t(type == drop(toBytes(0), 7)) then 36\n\t\t\t\t\t\t\telse if (type == drop(toBytes(1), 7)) then 2\n\t\t\t\t\t\t\telse if (type == drop(toBytes(2), 7)) then 2\n\t\t\t\t\t\t\telse if (type == drop(toBytes(3), 7)) then 2\n\t\t\t\t\t\t\telse if (type == drop(toBytes(4), 7)) then 3\n\t\t\t\t\t\t\telse if (type == drop(toBytes(5), 7)) then 3\n\t\t\t\t\t\t\telse 0\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet valReal = \n\t\t\t\t\t\t\tif \t(type == drop(toBytes(0), 7)) then drop(take(valComplex, 2), 1)\n\t\t\t\t\t\t\telse if (type == drop(toBytes(1), 7)) then drop(take(valComplex, 3), 2)\n\t\t\t\t\t\t\telse if (type == drop(toBytes(2), 7)) then drop(take(valComplex, 4), 3)\n\t\t\t\t\t\t\telse if (type == drop(toBytes(3), 7)) then drop(take(valComplex, 5), 4)\n\t\t\t\t\t\t\telse if (type == drop(toBytes(4), 7)) then drop(take(valComplex, 6), 5)\n\t\t\t\t\t\t\telse if (type == drop(toBytes(5), 7)) then drop(take(valComplex, 7), 6)\n\t\t\t\t\t\t\telse throw(\"Incorrect type of guess provided\")\n\n\t\t\t\t\t\tlet isWin = drop(guess, 1) == valReal\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet isMoneyStillEnough = newFees < (paymentTx.amount - registerBetTxFee) * koeff + minWithdrawFee\n\n\t\t\t\t\t\t(isWin || throw(\"You didn't guess\")) \n\t\t\t\t\t\t&& \n\t\t\t\t\t\t(isMoneyStillEnough || throw(\"Not enough money for withdraw\")) \n\n\t\t\t\t\telse false\n\t\t\t\t\t\n\t\t\t\tcase _ => false\n\t\t\t}\n\t\t}\n\t\telse \n\t\t\tfalse\n\t\t\n\tcase _ => sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)\n\n}\n", - "type": "ride", - "id": "smart-accounts/casino.ride", - "sha": "6fa6df04bc48291e4ae663109411611ba29df470", - "readonly": true - }, - { - "name": "guess.ride", - "content": "# in the state of this account, there are two fields \n# \"question\" - with some question and \n# \"hashed answer\" - with an answer to this question \n# which is hashed by keccak256 algorithm user can send \n# any number of WAVES from this account if he/she has \n# a correct answer in an attachment of TransferTransaction \n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n\nlet this=extract(tx.sender)\n\nmatch(tx)\n{\n case t : TransferTransaction =>\n let correctAnswer = extract(getBinary(this, \"hashed answer\"))\n let answer = keccak256(t.attachment)\n\n correctAnswer == answer \n && !isDefined(t.assetId)\n case s: SetScriptTransaction | DataTransaction =>\n sigVerify(s.bodyBytes, s.proofs[0], s.senderPublicKey)\n case _ => false\n}\n", - "type": "ride", - "id": "smart-accounts/guess.ride", - "sha": "b0afaed1c55813b0dccc0994cb4972364b783702", - "readonly": true - } - ] - }, - { - "name": "smart-assets", - "sha": "1fdfaaf39593535c04aaf55a4422dc4d8812ef74", - "content": [ - { - "name": "FixedPriceTicket.ride", - "content": "# This token represents a ticket that can be traded at face value only.\n#\n# Token price is hard coded into the script, and exchange is allowed\n# only at that price. Such a token can be useful for show or sport\n# tickets to help combat ticketing fraud.\n#\n# Additional restriction: a ticket can be burnt only after the show is over.\n#\n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ASSET #-}\n\nlet expiration = 1552064400000 # March 8 2019, 8pm Moscow time\nlet price = 1000000000 # 10 WAVES\nmatch tx {\n case e: ExchangeTransaction =>\n let pair = e.buyOrder.assetPair\n let tradedForWaves = ! isDefined(pair.amountAsset) ||\n ! isDefined(pair.priceAsset)\n tradedForWaves && e.price == price\n case b: BurnTransaction =>\n b.timestamp > expiration\n case _: TransferTransaction | MassTransferTransaction => true\n case _ => false\n}\n", - "type": "ride", - "id": "smart-assets/FixedPriceTicket.ride", - "sha": "497f04af0aad5352152cfcf715b1f5aeb89c2f7e", - "readonly": true - }, - { - "name": "FixedRateExchange.ride", - "content": "# This token can be bought/sold for WAVES only at a rate published by\n# asset issuer.\n#\n# The issuer publishes the exchange rate with a data transaction on his\n# account. The actual exchange rate must match the published rate up to\n# 7th significant digit.\n#\n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ASSET #-}\n\nlet issuer = Address(base58'3issuerAddress')\nlet assetId = base58'ThisAsset1d'\nmatch tx {\n case ex: ExchangeTransaction =>\n let pair = AssetPair(assetId, unit)\n let rate = extract(getInteger(issuer, \"exchangeRate\"))\n let rateDiff = rate - fraction(100000000, ex.price, ex.amount)\n ex.buyOrder.assetPair == pair && rateDiff > -100 && rateDiff < 100\n case _ => true\n}\n", - "type": "ride", - "id": "smart-assets/FixedRateExchange.ride", - "sha": "13cafa315a9f0bf191803961542f3675e950cd1d", - "readonly": true - }, - { - "name": "HotPotatoToken.ride", - "content": "# This is a token-game\n# When you receive this token, you have 5000 blocks to transfer it to somebody else,\n# after that 5000 blocks you will have to pay the fee more than 1 Waves to transfer it.\n# you have to pay 10 Waves as fee to burn it, you can transfer it only to an account with >10 Waves\n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ASSET #-}\n\nlet minimumWavesBalance = 10_00_000_000\nlet moveTimeInBlocks = 5000\nlet minimalFeeToMove = 1_0_000_000\nlet minimalFeeToBurn = 5_0_000_000\n\nmatch (tx) {\n case t:TransferTransaction => {\n\n # to get a height of blockchain when HotPotato was received we expect transaction id\n # of incoming transfer transaction in the attachment\n let txId = t.attachment\n\n # script can check that current recipient doesnt hold HotPotato\n # but not now :)\n\n # let currentRecipientBalance = assetBalance(t.recipient, t.assetId)\n let currentRecipientWavesBalance = wavesBalance(t.recipient)\n\n # assetId equals to issue transaction id, so we can get issuer public key (and address) from the issue transaction\n let transaction = transactionById(extract(t.assetId))\n\n match (transaction) {\n case issueTx:IssueTransaction => {\n # issuer is allowed to send tokens without any additional requirements except signature and recipient Waves balance (should be >= 10)\n let transactionByIssuer = t.senderPublicKey == issueTx.senderPublicKey\n if (transactionByIssuer) then {\n if (currentRecipientWavesBalance < minimumWavesBalance) then {\n throw(\"Current balance is less than minimalWavesBalance\")\n }else {\n true\n }\n }else if (size(t.attachment) < 32) then {\n throw(\"Attachment should contain transaction id \")\n }else{\n # getting incoming transaction by id (from the attachment)\n let receiveTx = transactionById(txId)\n match (receiveTx) {\n case recTx:TransferTransaction | MassTransferTransaction => {\n # get the number of block when address get a potato\n let receivedBlockNumber = extract(transactionHeightById(recTx.id))\n # check that we received assets in allowed span\n let receivedAssetInLastNBlocks = (height - receivedBlockNumber) <= moveTimeInBlocks && t.assetId == recTx.assetId\n let feeMore1Waves = t.fee >= minimalFeeToMove\n if (!receivedAssetInLastNBlocks && !feeMore1Waves) then {\n throw(\"You got potato long time ago, now you have to pay 1 WAVES fee\")\n }else {\n receivedAssetInLastNBlocks || feeMore1Waves\n }\n }\n case _ => throw(\"Receive tx should be a transfer\")\n }\n }\n }\n case _ => throw(\"Not issue tx\")\n }\n }\n # we allow to burn a token only if fee > 5 waves\n case burn: BurnTransaction => {\n if (burn.fee < minimalFeeToBurn) then {\n throw(\"You have to pay 5 WAVES to burn this token\")\n }else{\n true\n }\n }\n # MassTransfer and SetAssetScript transactions are allowed only for issuer\n case mass: MassTransferTransaction | SetAssetScriptTransaction => {\n let transaction = transactionById(extract(mass.assetId))\n\n match (transaction) {\n case issueTx:IssueTransaction => {\n mass.senderPublicKey == issueTx.senderPublicKey\n }\n case _ => throw(\"Bad issue tx type\")\n }\n }\n case _ => throw(\"You only can transfer this token\")\n }", - "type": "ride", - "id": "smart-assets/HotPotatoToken.ride", - "sha": "036b7bbf4bbf366d759b15fb008075fe179484bf", - "readonly": true - }, - { - "name": "LicenseToTrade.ride", - "content": "# For example you want to create an asset that can be traded only by those clients who have some special asset as a license\n# So you can regulate who is able to trade your token or it may be usefull in games,\n# sending this token can give the character an ability to trade or perform other skills\n# or amount of this token can imitate the health points of the players, so you can \"trade\" only if you are alive:)\n#\n# In this script case you can buy or sell SmartAsset only if your WavesCommunity token balance is greater then 10\n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ASSET #-}\n\nlet WCTlicenseToTradeAsset = base58'2CjLFYkp4W4sEAxCjFG9oD3smfhvV6yQnNmiJyexbLdu'\nmatch (tx) {\n case tx:ExchangeTransaction =>\n assetBalance(tx.sellOrder.sender, WCTlicenseToTradeAsset) > 10_00 && assetBalance(tx.buyOrder.sender, WCTlicenseToTradeAsset) > 10_00\n case _ => true\n}", - "type": "ride", - "id": "smart-assets/LicenseToTrade.ride", - "sha": "eafef93751f32c8eea779a7e5c90f181cf46c924", - "readonly": true - }, - { - "name": "MainCoinsTrade.ride", - "content": "\n# You can disable transfer, masstransfer and burn of the token,\n# Also you can define in what pairs your token can be traded.\n# This token can be traded only with BTC/ETH/LTC/ZEC/DASH/XMR/USD/EUR price assets\n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ASSET #-}\n\nlet BTCId = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'\nlet ETHId = base58'474jTeYx2r2Va35794tCScAXWJG9hU2HcgxzMowaZUnu'\nlet LTCId = base58'HZk1mbfuJpmxU1Fs4AX5MWLVYtctsNcg6e2C6VKqK8zk'\nlet ZECId = base58'BrjUWjndUanm5VsJkbUip8VRYy6LWJePtxya3FNv4TQa'\nlet DASHId = base58'B3uGHFRpSUuGEDWjqB9LWWxafQj8VTvpMucEyoxzws5H'\nlet XMRId = base58'5WvPKSJXzVE2orvbkJ8wsQmmQKqTv9sGBPksV4adViw3'\nlet USDId = base58'Ft8X1v1LTa1ABafufpaCWyVj8KkaxUWE6xBhW6sNFJck'\nlet EURId = base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU'\n\nmatch tx {\n case e : ExchangeTransaction =>\n e.sellOrder.assetPair.priceAsset == BTCId || e.sellOrder.assetPair.priceAsset == ETHId || e.sellOrder.assetPair.priceAsset == LTCId || e.sellOrder.assetPair.priceAsset == ZECId || e.sellOrder.assetPair.priceAsset == DASHId || e.sellOrder.assetPair.priceAsset == XMRId || e.sellOrder.assetPair.priceAsset == USDId || e.sellOrder.assetPair.priceAsset == EURId\n case t:TransferTransaction | MassTransferTransaction | BurnTransaction => false\n case _ => true\n}", - "type": "ride", - "id": "smart-assets/MainCoinsTrade.ride", - "sha": "0f2762d9b1e736fa32ae59966bf6648d555e03b2", - "readonly": true - }, - { - "name": "Medal.ride", - "content": "# This is a medal token.\n#\n# Medals are awarded to people using Transfer or MassTransfer. The issuer\n# can mint new medals or burn unused ones. The medal asset should have\n# zero decimals.\n#\n# A person who's awarded a medal can not transfer nor sell it,\n# but can give it back to the issuer.\n#\n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ASSET #-}\n\nlet master = addressFromString(\"3masterAddress\")\nmatch tx {\n case t: TransferTransaction =>\n t.sender == master || t.recipient == master\n case mt: MassTransferTransaction =>\n mt.sender == master\n case ex: ExchangeTransaction => false\n case _ => true\n}\n", - "type": "ride", - "id": "smart-assets/Medal.ride", - "sha": "f03590a10ef57e71050a2d710629a5b23ba0847b", - "readonly": true - }, - { - "name": "RecipientSignature.ride", - "content": "\n# General idea of this token is to allow transfer only with recipient's permisson. \n# Token ownership can be used as a proof of physycal object ownership and token transfer as a proof of 'real world' object transfer.\n\n# To use this token:\n# 1. Sender creates tx without proof and sends it to recipient\n# 2. Recipient calculates signature, adds his public key and signature to attachment field. Sends tx back to sender.\n# 3. Sender signs tx with attachment. Tx can now be sent to blockchain\n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ASSET #-}\n\n# Set network byte. 87 for mainnet\nlet NETWORKBYTE = takeRight(toBytes(87), 1)\n\nmatch (tx) {\n # Only allow transfer transactions\n case t:TransferTransaction => {\n # Since smart assets don't have access to proofs, attachment is used, but attachment is also signed.\n # For that reason we will verify signature against tx without attachment\n let txWithoutAttachment = dropRight(t.bodyBytes, 97) + takeRight(toBytes(0), 1)\n\n # Attachment contains recipient public key and signature\n let recipientPublicKeyAndSignature = t.attachment\n let recipientPublicKey = take(recipientPublicKeyAndSignature, 32)\n let recipientSignature = takeRight(recipientPublicKeyAndSignature, 64)\n\n # Get recipient address from public key in attachment\n let recipientPublicKeyHash = take(keccak256(blake2b256(recipientPublicKey)), 20)\n let rpkWithVersionAndByte = takeRight(toBytes(1), 1) + NETWORKBYTE + recipientPublicKeyHash\n let checksum = take(keccak256(blake2b256(rpkWithVersionAndByte)), 4)\n let recipientAddressFromPublicKey = rpkWithVersionAndByte + checksum\n let recipientAddressFromTx = addressFromRecipient(t.recipient).bytes\n \n # Verify that tx.recipient equals recipient from attsachment\n if (recipientAddressFromPublicKey != recipientAddressFromTx) then throw(\n \"Recipient address error:\" + toBase58String(recipientAddressFromPublicKey)\n ) else {\n # Verify recipient signature\n if (!sigVerify(txWithoutAttachment, recipientSignature, recipientPublicKey)) then throw(\n \"Invaid recipient signature:\" + toBase58String(recipientSignature) + \"\\n BodyBytes:\" + toBase64String(txWithoutAttachment)\n ) else {\n true\n }}\n }\n # No exchange or masstransfer\n case _ => false\n }\n", - "type": "ride", - "id": "smart-assets/RecipientSignature.ride", - "sha": "82d6a2b8399054c305694a074ab193bcaa2acc5e", - "readonly": true - }, - { - "name": "ScheduleTrade.ride", - "content": "\n# Also you can issue an asset that can be traded on DEX only according with some schedule.\n# For example every day from 10 to 19 o’clock, from monday to friday, like on real exchanges.\n\n# First of all you have to publish a data transaction with a schedule for the next week timestamps,\n# and renew it every week (it is possible to automate this task with a cron script)\n\n# This is the example of data transactions with a an approximate height from 10 to 19 o'clock from 25 February to the 1st of March:\n# You can issue an asset that will verify that current blockchain height is between tradeStart and tradeEnd\n# Example or data TX:\n\n# {\n# \"type\": 12,\n# \"data\": {\n# \"fee\": {\n# \"assetId\": \"WAVES\",\n# \"tokens\": \"0.005\"\n# },\n# \"data\": [\n# {\n# \"type\": \"integer\",\n# \"key\": \"mondayTradeStart\",\n# \"value\": 1411748\n# },\n# {\n# \"type\": \"integer\",\n# \"key\": \"mondayTradeEnd\",\n# \"value\": 1412288\n# },\n# {\n# \"type\": \"integer\",\n# \"key\": \"tuesdayTradeStart\",\n# \"value\": 1413188\n# },\n# {\n# \"type\": \"integer\",\n# \"key\": \"tuesdayTradeEnd\",\n# \"value\": 1413728\n# },\n#\n# {\n# \"type\": \"integer\",\n# \"key\": \"wednesdayTradeStart\",\n# \"value\": 1414628\n# },\n# {\n# \"type\": \"integer\",\n# \"key\": \"wednesdayTradeEnd\",\n# \"value\": 1415168\n# },\n# {\n# \"type\": \"integer\",\n# \"key\": \"thursdayTradeStart\",\n# \"value\": 1416068\n# },\n# {\n# \"type\": \"integer\",\n# \"key\": \"thursdayTradeEnd\",\n# \"value\": 1416608\n# },\n# {\n# \"type\": \"integer\",\n# \"key\": \"fridayTradeStart\",\n# \"value\": 1417508\n# },\n# {\n# \"type\": \"integer\",\n# \"key\": \"fridayTradeEnd\",\n# \"value\": 1418048\n# }\n# ]\n# }\n# }\n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ASSET #-}\n\nlet timeOracleAddress = Address(base58'3P4V5znH4AvkpNVZ2EKSmkdSCeJppsZ4x8F')\nmatch (tx) {\n case tx:ExchangeTransaction =>\n let mondayTradeStart = extract(getInteger(timeOracleAddress, \"mondayTradeStart\"))\n let mondayTradeEnd = extract(getInteger(timeOracleAddress, \"mondayTradeEnd\"))\n let tuesdayTradeStart = extract(getInteger(timeOracleAddress, \"tuesdayTradeStart\"))\n let tuesdayTradeEnd = extract(getInteger(timeOracleAddress, \"tuesdayTradeEnd\"))\n let wednesdayTradeStart = extract(getInteger(timeOracleAddress, \"wednesdayTradeStart\"))\n let wednesdayTradeEnd = extract(getInteger(timeOracleAddress, \"wednesdayTradeEnd\"))\n let thursdayTradeStart = extract(getInteger(timeOracleAddress, \"thursdayTradeStart\"))\n let thursdayTradeEnd = extract(getInteger(timeOracleAddress, \"thursdayTradeEnd\"))\n let fridayTradeStart = extract(getInteger(timeOracleAddress, \"fridayTradeStart\"))\n let fridayTradeEnd = extract(getInteger(timeOracleAddress, \"fridayTradeEnd\"))\n\n (height >= mondayTradeStart && height <= mondayTradeEnd) || (height >= tuesdayTradeStart && height <= tuesdayTradeEnd)||\n (height >= wednesdayTradeStart && height <= wednesdayTradeEnd) || (height >= thursdayTradeStart && height <= thursdayTradeEnd)||\n (height >= fridayTradeStart && height <= fridayTradeEnd)\n case _ => true\n}", - "type": "ride", - "id": "smart-assets/ScheduleTrade.ride", - "sha": "257fc8f92077d6815be3f853e5bf7b3742344d8e", - "readonly": true - }, - { - "name": "Taxation.ride", - "content": "# This script allows to apply taxation models to assets\n# Token owners can transfer it only if they pay taxes to the issuer\n# The tax size is defined by token issuer in data transaction\n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ASSET #-}\n\nmatch (tx) {\n # we allow only mass transfer transactions\n # first transfer in MassTransfer should always go to the issuer\n case mtt:MassTransferTransaction => {\n let firstRecipient = mtt.transfers[0].recipient\n let firstAmount = mtt.transfers[0].amount\n let assetId = extract(mtt.assetId)\n let issueTransaction = transactionById(assetId)\n\n # assetId equals to issue transaction id, so we can get issuer public key (and address) from the issue transaction\n match(issueTransaction) {\n case issueTx: IssueTransaction => {\n let issuerAddress = addressFromPublicKey(issueTx.senderPublicKey)\n # to set tax amount, issuer should make a data transaction with integer value by key matching assetId\n let taxSize = extract(getInteger(issuerAddress, toBase58String(assetId)))\n\n firstRecipient == issuerAddress # recipient for the first transfer should be the issuer address\n &&\n firstAmount >= mtt.totalAmount / 100 * taxSize # tax amount can't be less than defined in data transaction\n }\n case _ => false\n }\n }\n case _ => false\n }", - "type": "ride", - "id": "smart-assets/Taxation.ride", - "sha": "eb92f69eaa5dc8b6e78d6807fa8bf4a2acff365e", - "readonly": true - }, - { - "name": "VerifiedTrading.ride", - "content": "# Set Smart asset to trade only with BetterTokens verified assets and Waves.\n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ASSET #-}\n\n# BetterTokens Oracle address.\nlet addr = Address(base58'3P6t5mKGwVDkyjFhtUqw4NnecyC3DRpLfkw')\n\nmatch (tx) {\n case e:ExchangeTransaction => \n # Determine if Smart asset is paired with Waves.\n let withWaves = (!isDefined(e.sellOrder.assetPair.priceAsset) || !isDefined(e.sellOrder.assetPair.amountAsset))\n\n if(withWaves == false) then {\n # If paired with another token, check BetterToken status.\n #\n # We cannot determine if Smart asset is amount or price asset in the pair\n # that is why we check in both places.\n let priceAssetKey = \"status_<\" + toBase58String(extract(e.sellOrder.assetPair.priceAsset)) + \">\"\n let priceAssetInOracle = (getInteger(addr, priceAssetKey) == 2)\n\n let amountAssetKey = \"status_<\" + toBase58String(extract(e.sellOrder.assetPair.amountAsset)) + \">\"\n let amountAssetInOracle = (getInteger(addr, priceAssetKey) == 2)\n \n priceAssetInOracle || amountAssetInOracle\n } else {\n true\n }\n case _ => true\n}", - "type": "ride", - "id": "smart-assets/VerifiedTrading.ride", - "sha": "ebe4db16345d2a5ed9ff1d871a5f092d8444a118", - "readonly": true - } - ] - } - ], - "files": { - "welcome.md": { - "name": "welcome.md", - "content": "# Waves dApps\n \n### Ride language\n\nWaves blockchain uses functional programming language based on expressions called RIDE. It is simple, yet efficient. \nPlease check [ride documentation](https://docs.wavesplatform.com/en/ride)\n\n\n### Writing dApps\n\nA dApp, or decentralised application, is an application, that executes in a distributed computer system, for instance, \nin a blockchain. In particular, Waves dApp is an application, written in RIDE language and executed on the nodes of the \nWaves blockchain. Check [writing dApps](https://docs.wavesplatform.com/en/building-apps/smart-contracts/writing-dapps)\nsection\n\n### Examples\n\nIDE contains a lot of runnable Scripts, dApps and tests to help you get used to Ride language.\nCheck them in Library menu\n\n\n### Other tools\n\nWeb IDE is just a starting point. For professional development we recommend using our offline tools.\nCheck [Professional toolkit for coding with RIDE](https://blog.wavesplatform.com/how-to-build-deploy-and-test-a-waves-ride-dapp-785311f58c2)\n\n1. [VSCode plugin](https://marketplace.visualstudio.com/items?itemName=wavesplatform.waves-ride)\n2. [Surfboard CLI tool](https://www.npmjs.com/package/@waves/surfboard)\n3. [Waves private node](https://hub.docker.com/r/wavesplatform/waves-private-node)\n\n\n### Video Tutorials \n \n1. [Using Smart Contracts with Waves Console](https://www.youtube.com/watch?v=sOZuE9Ebfko&t=557s) \n2. [Multi Signature Using Waves IDE & WavesJ](https://www.youtube.com/watch?v=o2msjSo0y0o&t=32s) \n3. [Escrow Using Waves IDE & WavesJ](https://www.youtube.com/watch?v=31dwYcgb65M&t=381s) \n4. [Waves Console Commands Example](https://www.youtube.com/watch?v=gBgLjg6nrvA&=&feature=youtu.be)\n5. [Create MultiSig Account via Waves IDE tools](https://www.youtube.com/watch?v=8DKRGnwsBjk) \n\n\n### Hitchhiker’s Guide to Waves Smart Contracts\n\n1. [The First Part](https://blog.wavesplatform.com/the-hitchhikers-guide-to-waves-smart-contracts-part-1-b80aa47a745a) \n2. [The Second Part](https://blog.wavesplatform.com/the-hitchhikers-guide-to-waves-smart-contracts-part-2-44621fd5a007)\n \n \n### Forum\n\n1. [DevTools: IDE + REPL](https://forum.wavesplatform.com/t/devtools-ide-repl/1992)\n\nThis topic is for discussing your issues, requests, feedback and for announcements related to Waves Ride IDE and REPL\n\n", - "type": "md", - "id": "welcome.md", - "sha": "4d9bab57608e43e5c300503a6de305ef4005fd65", - "readonly": true - } - } -} +{"eTag":"W/\"fc48b3b2ce0cf592370434e2e098ddaa7b433678\"","folders":[{"name":"auction","sha":"f4677f46dca3dea249f7c130dad94fb0690f9d4e","content":[{"name":"readme.md","content":"# Auction\n\nThis is an auction dApp.\nYou can start auction for any token(s) for some period of time (counted in blocks).\nIf somebody took part in the auction, then the organizer will get the winners bid, and the winner will get token(s).\nOnce next bid provided, the previous bid is returned to it's sender\n\n## Starting auction\nEverybody can start an auction with invokeScript 'startAuction' attaching Tokens to it.\nAuction lasts for 'duration' blocks provided as an argument to 'startAuction'.\nOrganizer also sets 'startPrice' and 'priceAsset' for bids.\n\n# Bidding\nBefore auction finish anybody can bid. The bid is only accepted if it is greater than current winning bid.\nIf the same address will bid again, his new bid will be added to the previous ones.\n\n#Withdraw\nAnyone can call 'withdraw':\nAs a result bid of the winner will be transfered to organizer and token(s) to the winner.\nIn case noone made bid, organizer will get his token(s) back.","type":"md","id":"auction/readme.md","sha":"419d6e01298ad9bb24f9106ee1245f0ce6701408","readonly":true},{"name":"ride","sha":"68a6191fa8518e5d083cedcedd5edaaec8ca3719","content":[{"name":"auction.ride","content":"{-# STDLIB_VERSION 3 #-}\n{-# CONTENT_TYPE DAPP #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n\n\nlet maxAuctionDuration = 1440 * 30 \n# ~ 30 days\n\n# priceAssetId = \"WAVES\" or assetId\n@Callable(i)\nfunc startAuction(duration: Int, startPrice: Int, priceAssetId:String) = {\n \n let auctionId = toBase58String(i.transactionId)\n let endHeight = lastBlock.height + duration\n\n let pmt = extract(i.payment)\n \n if (duration > maxAuctionDuration) then throw(\"Duration is too long. Must be less than \" + toString(maxAuctionDuration)) else\n WriteSet( \n [ DataEntry(auctionId, endHeight), \n DataEntry(auctionId + \"_organizer\", i.caller.bytes.toBase58String()), \n DataEntry(auctionId + \"_lot_assetId\", if (isDefined(pmt.assetId)) then toBase58String(value(pmt.assetId)) else \"WAVES\"),\n DataEntry(auctionId + \"_lot_amount\", pmt.amount), \n DataEntry(auctionId + \"_startPrice\", startPrice), \n DataEntry(auctionId + \"_priceAssetId\", priceAssetId)\n ])\n} \n\n@Callable(i)\nfunc bid(auctionId: String) = {\n\n let pmt = extract(i.payment)\n let pmtAssetIdStr = if (isDefined(pmt.assetId)) then toBase58String(value(pmt.assetId)) else \"WAVES\"\n let callerAddressStr = i.caller.bytes.toBase58String()\n\n let endHeight = getIntegerValue(this, auctionId)\n let startPrice = getIntegerValue(this, auctionId + \"_startPrice\")\n let priceAssetId = getStringValue(this, auctionId + \"_priceAssetId\")\n let winAmount = getInteger(this, auctionId + \"_winAmount\")\n let winner = getString(this, auctionId + \"_winner\")\n\n let bidFromTheSameUser = isDefined(winner) && value(winner) == callerAddressStr\n let totalBidAmount = pmt.amount + if bidFromTheSameUser then\n value(winAmount) else 0\n\n if (lastBlock.height >= endHeight) then \n throw(\"Auction already finished\") else\n if (priceAssetId != pmtAssetIdStr) then \n throw(\"Bid must be in asset '\" + priceAssetId + \"'\") else\n if (isDefined(winAmount) && totalBidAmount <= value(winAmount) ||\n !isDefined(winAmount) && totalBidAmount <= startPrice) then \n throw(\"Bid must be more then \" \n + toString(if isDefined(winAmount) then value(winAmount) else startPrice)) \n else\n if (bidFromTheSameUser || !isDefined(winner)) then\n WriteSet([\n DataEntry(auctionId + \"_winner\", callerAddressStr),\n DataEntry(auctionId + \"_winAmount\", totalBidAmount)\n ])\n else {\n let previousBidderAddr = addressFromStringValue(value(winner))\n let priceAsset = if (priceAssetId == \"WAVES\" || priceAssetId == \"\") then unit else fromBase58String(priceAssetId)\n ScriptResult(\n WriteSet([\n DataEntry(auctionId + \"_winner\", callerAddressStr),\n DataEntry(auctionId + \"_winAmount\", totalBidAmount)\n ]),\n TransferSet([\n ScriptTransfer(previousBidderAddr, value(winAmount), priceAsset)\n ])\n )\n }\n\n}\n\n\n@Callable(i)\nfunc withdraw(auctionId: String) = {\n\n let pmt = extract(i.payment) \n let pmtAssetIdStr = if (isDefined(pmt.assetId)) then toBase58String(value(pmt.assetId)) else \"WAVES\"\n let callerAddressStr = i.caller.bytes.toBase58String()\n\n let endHeight = getIntegerValue(this, auctionId)\n let organizer = getStringValue(this, auctionId + \"_organizer\")\n let winner = getString(this, auctionId + \"_winner\")\n let lotAssetId = getStringValue(this, auctionId + \"_lot_assetId\")\n let lotAmount = getIntegerValue(this, auctionId + \"_lot_amount\")\n let priceAssetId = getStringValue(this, auctionId + \"_priceAssetId\")\n let winAmount = getIntegerValue(this, auctionId + \"_winAmount\")\n \n let lotAsset = if (lotAssetId == \"WAVES\") then unit else fromBase58String(lotAssetId)\n let priceAsset = if (priceAssetId == \"WAVES\" || priceAssetId == \"\") then unit else fromBase58String(priceAssetId)\n let winnerAddr = addressFromStringValue(value(winner))\n let organizerAddr = addressFromStringValue(value(organizer))\n\n let betAmount = getInteger(this, auctionId + \"_bidder_\" + callerAddressStr)\n\n if (lastBlock.height < endHeight) then \n throw(\"Auction is not finished yet\") else\n \n if (!isDefined(winner)) then {\n if (isDefined(getString(this, auctionId + \"_lot_passed\"))) then\n throw(\"Organizer has already got his lot back\")\n else\n ScriptResult(\n WriteSet([DataEntry(auctionId + \"_lot_passed\", organizer)]),\n TransferSet([ScriptTransfer(organizerAddr, lotAmount, lotAsset)])\n )\n }\n else {\n # Lot -> winner, winner's bet -> organizer\n if (isDefined(getString(this, auctionId + \"_lot_passed\"))) then\n throw(\"Lot is already passed to the winner, and organizer got his reward\")\n else\n ScriptResult(\n WriteSet([DataEntry(auctionId + \"_lot_passed\", winnerAddr.bytes.toBase58String())]),\n TransferSet([ScriptTransfer(winnerAddr, lotAmount, lotAsset),\n ScriptTransfer(organizerAddr, winAmount, priceAsset)])\n )\n }\n}\n","type":"ride","id":"auction/ride/auction.ride","sha":"53614d99cd92b9e606f01e2c497c6a1a570ebc70","readonly":true}]},{"name":"test","sha":"6adc031ed015b070b640363310c9bbfb5610103b","content":[{"name":"auction_test.js","content":"const auctionDuration = 2\n\nconst WAVES = 10 ** 8;\n\nconst SETSCRIPT_FEE = 0.01 * WAVES\nconst ISSUE_FEE = 1 * WAVES\nconst INV_FEE = 0.005 * WAVES\nconst ADD_FEE = 0.004 * WAVES\n\nvar issueTxId\nvar auctionId\nvar auctionStartTx\nvar customer2Before\n\nasync function rememberBalances(text, forAddress, tokenId) {\n const tokenBal = await assetBalance(tokenId, forAddress)\n const wavesBal = await balance(forAddress)\n\n console.log (text + \": \" + wavesBal + \" WAVES, \" + tokenBal + \" NFT\")\n\n return [wavesBal, tokenBal]\n}\n\n\ndescribe('Auction test Suite', async function(){\n \n this.timeout(100000)\n \n before(async function () {\n await setupAccounts({auction: SETSCRIPT_FEE, customer1: ISSUE_FEE + 2*INV_FEE, customer2: (0.1 + 0.2 + 0.3) * WAVES, customer3: (0.22) * WAVES});\n\n const compiledDApp = compile(file('auction.ride'))\n const ssTx = setScript({script:compiledDApp/*, fee:1400000*/}, accounts.auction )\n await broadcast(ssTx)\n\n const issueTx = issue({name:\"MyNFTtest\", description:\"\", quantity:1, decimals:0, reissuable:false}, accounts.customer1)\n await broadcast(issueTx)\n await waitForTx(issueTx.id)\n issueTxId = issueTx.id\n console.log(\"NFT Token id: \" + issueTxId)\n await waitForTx(ssTx.id)\n\n })\n \n it('Customer1: Start Auction', async function(){\n const invTx = invokeScript({fee:INV_FEE, \n dApp: address(accounts.auction),\n call: {\n function:\"startAuction\",\n args:[\n {type:\"integer\", value: auctionDuration}, \n {type:\"integer\", value: 1000000}, \n {type:\"string\", value: \"WAVES\"}\n ]}, \n payment: [\n {amount: 1, assetId:issueTxId }\n ]\n }, accounts.customer1)\n\n await broadcast(invTx)\n auctionStartTx = await waitForTx(invTx.id)\n auctionId = auctionStartTx.id\n\n console.log(\"Start auction height : \" + auctionStartTx.height)\n })\n\n it('Unable to bid less then start price', async function(){\n const invTx = invokeScript({fee:INV_FEE, dApp: address(accounts.auction), call: {function:\"bid\", args:[{type:\"string\", value: auctionId}]}, \n payment: [{amount: 999999, assetId:null }]}, \n accounts.customer2)\n expect(broadcast(invTx)).rejectedWith(\"Bid must be more then 1000000\")\n })\n \n it('Customer2: bid 0.1 WAVES', async function(){\n\n customer2Before = await balance(address(accounts.customer2))\n\n const invTx = invokeScript({fee:INV_FEE, dApp: address(accounts.auction), call: {function:\"bid\", args:[{type:\"string\", value: auctionId}]}, \n payment: [{amount: 10000000, assetId:null }]}, \n accounts.customer2)\n await broadcast(invTx)\n await waitForTx(invTx.id)\n })\n\n it('Customer3: bid 0.1 WAVES - should fail', async function(){\n const invTx = invokeScript({fee:INV_FEE, dApp: address(accounts.auction), call: {function:\"bid\", args:[{type:\"string\", value: auctionId}]}, \n payment: [{amount: 10000000, assetId:null }]}, \n accounts.customer3)\n expect(broadcast(invTx)).rejectedWith(\"Bid must be more then 10000000\")\n })\n\n it('Customer3: bid 0.2 WAVES - now should work', async function(){\n const invTx = invokeScript({fee:INV_FEE, dApp: address(accounts.auction), call: {function:\"bid\", args:[{type:\"string\", value: auctionId}]}, \n payment: [{amount: 20000000, assetId:null }]}, \n accounts.customer3)\n const resp = await broadcast(invTx)\n await waitForTx(invTx.id)\n })\n\n it('Previous bid returned to bidder', async function(){\n const customer2After = await balance(address(accounts.customer2))\n expect(customer2After).to.equal(customer2Before - INV_FEE, \"Bid must be returned\")\n }) \n \n it('Wait for auction end', async function(){\n const timeout = 180000\n\t this.timeout(timeout)\n console.log(\"Cur height: \" + await currentHeight())\n console.log(\"Waiting \" + (auctionStartTx.height + auctionDuration))\n await waitForHeight(auctionStartTx.height + auctionDuration, {timeout})//waitForTxWithNConfirmations(auctionStartTx, auctionDuration, {timeout})\n })\n\n it('Customer2: bid 0.3 WAVES after acution end - should fail', async function(){\n const invTx = invokeScript({fee:INV_FEE, dApp: address(accounts.auction), call: {function:\"bid\", args:[{type:\"string\", value: auctionId}]}, \n payment: [{amount: 30000000, assetId:null }]}, \n accounts.customer2)\n expect(broadcast(invTx)).rejectedWith(\"Auction already finished\")\n })\n\n it('Customer3: Winner take prize', async function(){\n \n console.log(\"Cur height: \" + await currentHeight())\n\n const winAmount = 20000000\n \n const nftBalBefore = await assetBalance(issueTxId, address(accounts.customer3))\n const wavesBalanceBefore = await balance(address(accounts.customer1))\n \n const winnerBefore = await rememberBalances(\"Customer3 (winner): \", address(accounts.customer3), issueTxId)\n const organizerBefore = await rememberBalances(\"Customer1 (organizer): \", address(accounts.customer1), issueTxId)\n\n const invTx = invokeScript({fee:INV_FEE, dApp: address(accounts.auction), call: {function:\"withdraw\", args:[{type:\"string\", value: auctionId}]}, \n payment: []}, \n accounts.customer3)\n await broadcast(invTx)\n await waitForTx(invTx.id)\n console.log(\"withdraw tx sent\")\n\n const winnerAfter = await rememberBalances(\"Customer3 (winner): \", address(accounts.customer3), issueTxId)\n const organizerAfter = await rememberBalances(\"Customer1 (organizer): \", address(accounts.customer1), issueTxId)\n\n expect(winnerAfter[0]).to.equal(winnerBefore[0] - INV_FEE, \"WAVES Balance of winner is reduced only by fee\")\n expect(winnerAfter[1]).to.equal(winnerBefore[1] + 1, \"Winner get's his auction prize\")\n\n })\n})","type":"js","id":"auction/test/auction_test.js","sha":"3ba783d2a43faadfb01977827676dc10af31e180","readonly":true}]}]},{"name":"casino","sha":"2c54926c01f5e6c10ed0ddd660b4e451e5698d0d","content":[{"name":"readme.md","content":"# Casino\n\nThis is an implementation of the Casino with new RIDE features, so called ride 4 dapps\n\n## Oracle \n\nYou need an oracle which will provide results for the round\nOracle must provide the result in the following form\nroundKey -> result\nwhere roundKey is a string identifying the round, and result is a string in which:\n character 0..1 - represent winning number\n character 2 \t\t- represents winning red|black \n character 3\t\t- represents winiing even|odd\n character 4\t\t- represents winning half of the desk \n character 5 \t\t- represents winning third of the desk \n character 6\t\t- represents winning row of the desk\n\n## Making bet\n\nTo participate you need to invoke 'bet' function with \n\tstring argument identifying the round which you want to participate\n\tint argument identifying type of the bet (0 - number, 1 - red|black, 2 - even|odd ...)\n \tint argument representing you guess according to the bet type \n And you need to put not less than 0.5 Waves to the call - it's your bet\n You can make multiple invokes of the 'bet' function for the same round\n\n After the oracle put stop mark for the round (data transaction with key _stop)\n you can not make bets for this round anymore.\n\n## Getting your prize if you win\n After the oracle put result you can invoke 'withdraw' function with \n\tstring argument identifying the round \n The function will send all money you won ","type":"md","id":"casino/readme.md","sha":"b2e770f95cd408f88969b53cafde57cc439e83c6","readonly":true},{"name":"ride","sha":"5ac001810f3b07a39c44a262b1e6603136456cc8","content":[{"name":"casino.ride","content":"{-# STDLIB_VERSION 3 #-}\n{-# CONTENT_TYPE DAPP #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n\nlet oracle = extract(addressFromString(\"$ORACLE_ADDRESS\"))\nlet minBet = \t 50000000\nlet maxSumBet = 1000000000 # max sum bet for round\n\nfunc calcWinAmount(this: Address|Alias, key: String, koeff: Int) = {\n\n match getInteger(this, key) {\n case a: Int => a * koeff\n case _ => 0\n }\n}\n\n@Callable(i)\nfunc bet(round: String, guessType: Int, guessValue: Int) = {\n\n let pmt = extract(i.payment)\n\n if (isDefined(pmt.assetId)) then \n throw(\"Bets only in Waves supported\")\n else if (pmt.amount < minBet) then\n throw(\"Your Bet amount is less then minimal bet \" + toString(minBet))\n else if (isDefined(getBoolean(oracle, round + \"_stop\")) || isDefined(getString(oracle, round))) then\n throw(\"This round is already played\")\n else {\n let roundBetsKey = round + \"_sumBets\"\n let curSumBets = match getInteger(this, roundBetsKey) {\n case a:Int => a\n case _ => 0\n }\n let newSumBets = curSumBets + pmt.amount\n\n if (newSumBets > maxSumBet) then \n throw(\"Maximum amount of bets for round \" + toString(maxSumBet) + \". With your bet it's \" + toString(newSumBets))\n else\n {\n let betKey = toBase58String(i.caller.bytes) + \"_\" + round\n + \"_\" + toString(guessType) + \"_\" + toString(guessValue)\n let curBetAmount = match getInteger(this, betKey) {\n case a:Int => a\n case _ => 0\n }\n let newBetAmount = curBetAmount + pmt.amount\n\n WriteSet([ DataEntry(betKey, newBetAmount), \n DataEntry(roundBetsKey, newSumBets)])\n }\n }\n}\n\n@Callable(i)\nfunc withdraw(round: String) = {\n let betKeyPart = toBase58String(i.caller.bytes) + \"_\" + round\n let withdrawKey = betKeyPart + \"_withdraw\"\n\n if (isDefined(getInteger(this, withdrawKey))) then {\n throw(\"You have already got your prize\")\n #WriteSet([]) \n }\n else\n {\n let valComplex = getStringValue(oracle, round)\n\n let winNum = parseIntValue(drop(take(valComplex, 2), 0))\n let winRedBlack = parseIntValue(drop(take(valComplex, 3), 2))\n let winEvenOdd = parseIntValue(drop(take(valComplex, 4), 3))\n let winDeskHalf = parseIntValue(drop(take(valComplex, 5), 4))\n let winDeskThird = parseIntValue(drop(take(valComplex, 6), 5))\n let winRow = parseIntValue(drop(take(valComplex, 7), 6))\n\n\n let winAmount = calcWinAmount(this, betKeyPart + \"_0_\" + toString(winNum), 36) + \n calcWinAmount(this, betKeyPart + \"_1_\" + toString(winRedBlack), 2) + \n calcWinAmount(this, betKeyPart + \"_2_\" + toString(winEvenOdd), 2) + \n calcWinAmount(this, betKeyPart + \"_3_\" + toString(winDeskHalf), 2) + \n calcWinAmount(this, betKeyPart + \"_4_\" + toString(winDeskThird), 3) + \n calcWinAmount(this, betKeyPart + \"_5_\" + toString(winRow), 3) \n\n if (winAmount == 0) then\n throw(\"You won nothing this round\")\n else\n ScriptResult(\n WriteSet([DataEntry(withdrawKey, winAmount)]),\n TransferSet([ScriptTransfer(i.caller, winAmount, unit)])\n )\n }\n}\n\n\n@Verifier(tx)\nfunc verify() = {\n sigVerify(tx.bodyBytes, tx.proofs[0], base58'FYCT9GxhR2igEeyf9SWGi85bebBVaTAf9WUihEQnnBa9')\n #true\n}","type":"ride","id":"casino/ride/casino.ride","sha":"cc0303916efbbe158ae86c0a0234e3088a0ce31b","readonly":true}]},{"name":"test","sha":"96a18197382ae8c789024fa35ab35e1135db9219","content":[{"name":"casino_test.js","content":"// ATTENTION: Tests can work incorrectly if you use nodes with cashed requests for balances\n// It could happen that 'nodes-testnet.wavesnodes.com' has that kind of cache\n\nconst WAVES = 10 ** 8;\n\nconst SETSCRIPT_FEE = 0.01 * WAVES\nconst ISSUE_FEE = 1 * WAVES\nconst INV_FEE = 0.005 * WAVES\nconst ADD_FEE = 0.004 * WAVES\nconst MIN_FEE = 0.001 * WAVES\n\nconst BET_TYPE_NUMBER = 0\nconst BET_TYPE_RED_BLACK = 1\nconst BET_TYPE_EVEN_ODD = 2\nconst BET_TYPE_DESK_HALF = 3\nconst BET_TYPE_DESK_THIRD = 4\nconst BET_TYPE_ROW = 5\n\nconst betAmount = 1.5 * WAVES\n\nasync function rememberBalances(text, forAddress) {\n const wavesBal = await balance(forAddress)\n\n console.log (text + \": \" + wavesBal + \" WAVES\")\n\n return wavesBal\n}\n\nfunction makeBet(casinoPubKey, roundId, betAmount, betType, guess, playerPubKey) {\n\n const bet = invokeScript({fee:INV_FEE, dApp: address(casinoPubKey), \n call: {function:\"bet\", args:[{type:\"string\", value: roundId}, {type:\"integer\", value: betType}, {type:\"integer\", value: guess}]}, \n payment: [{amount: betAmount, assetId:null }]}, \n playerPubKey)\n\n console.log(\"Bet. round: '\" + roundId + \"', amount: \" + betAmount / 10 ** 8 + \", betType: \" + betType + \", guess: '\" + guess + \"'\")\n return bet\n}\n\nfunction withdraw(casinoPubKey, roundId, playerPubKey) {\n\n const withdrawTx = invokeScript({fee:INV_FEE, dApp: address(casinoPubKey), \n call: {function:\"withdraw\", args:[{type:\"string\", value: roundId}]}, \n payment: []}, \n playerPubKey)\n\n return withdrawTx\n}\n\nasync function oracleStopRound(oraclePublicKey, roundId) {\n\n const stopRound = data({data:[{key:roundId + '_stop', value:true, type: 'boolean'}]}, oraclePublicKey)\n\n await broadcast(stopRound)\n await waitForTx(stopRound.id)\n console.log(\"Stop round: \" + roundId)\n}\n\nfunc makeOracleResultForNumber() {\n const s = \"0\" + theAnswer\n // TODO:\n // Currently emulating just bet on number. These \"12345\" digits must be calculated in other way\n // \"1\" must be changed to black/red indication\n // \"2\" must be changed to even/odd indication\n // etc.\n return s.substr(s.length - 2) + \"12345\"\n}\n\nasync function oraclePublishCorrectAnswer(oraclePublicKey, roundId, theAnswer) {\n\n const answerStr = makeOracleResultForNumber(theAnswer)\n\n const oraclePublishAnswer = data({data:[{key:roundId, value:answerStr, type: 'string'}]}, oraclePublicKey)\n\n await broadcast(oraclePublishAnswer)\n await waitForTx(oraclePublishAnswer.id)\n console.log(\"Published result for round '\" + roundId + \"': \" + answerStr)\n}\n\n\ndescribe('Casino script test suite', async function () {\n\n this.timeout(100000);\n\n before(async function () {\n\n await setupAccounts({casino: SETSCRIPT_FEE + 35 * betAmount, \n player1: 2*betAmount + 2*INV_FEE, \n player2: betAmount + 2*INV_FEE, \n player3: betAmount + 2*INV_FEE, \n oracle: 2 * INV_FEE});\n \n const scriptC = compile(file('casino.ride').replace('$ORACLE_ADDRESS', address(accounts.oracle)));\n const ssTx = setScript({script:scriptC}, accounts.casino);\n await broadcast(ssTx);\n await waitForTx(ssTx.id)\n console.log('Script has been set')\n }); \n\n const roundId = \"Round 1\"\n const correctAnswer = 12\n\n it('Making bets', async function(){\n \n const bet1 = makeBet(accounts.casino, roundId, betAmount, BET_TYPE_NUMBER, 11, accounts.player1)\n await broadcast(bet1)\n const bet2 = makeBet(accounts.casino, roundId, betAmount, BET_TYPE_NUMBER, 10, accounts.player2)\n await broadcast(bet2)\n const bet3 = makeBet(accounts.casino, roundId, betAmount, BET_TYPE_NUMBER, correctAnswer, accounts.player3)\n await broadcast(bet3)\n\n await waitForTx(bet1.id)\n await waitForTx(bet2.id)\n await waitForTx(bet3.id)\n })\n\n it('Inability to make bet after freeze round', async function(){\n\n await oracleStopRound(accounts.oracle, roundId)\n \n const bet1 = makeBet(accounts.casino, roundId, betAmount, BET_TYPE_NUMBER, 14, accounts.player1)\n await expect(broadcast(bet1)).rejectedWith(\"This round is already played\")\n console.log(\"Bet must failed because round finished\") \n })\n\n it('Withdraw test', async function(){\n\n await oraclePublishCorrectAnswer(accounts.oracle, roundId, correctAnswer)\n \n const withdraw1 = withdraw(accounts.casino, roundId, accounts.player1) \n const withdraw2 = withdraw(accounts.casino, roundId, accounts.player2) \n const withdraw3 = withdraw(accounts.casino, roundId, accounts.player3) \n\n const casinoBefore = await rememberBalances(\"casino before: \", address(accounts.casino))\n const winnerBefore = await rememberBalances(\"winner before: \", address(accounts.player3))\n\n expect(broadcast(withdraw1)).rejectedWith(\"You won nothing this round\")\n expect(broadcast(withdraw2)).rejectedWith(\"You won nothing this round\")\n await broadcast(withdraw3)\n await waitForTx(withdraw3.id)\n\n const casinoAfter = await rememberBalances(\"casino after: \", address(accounts.casino))\n const winnerAfter = await rememberBalances(\"winner after: \", address(accounts.player3))\n\n expect(casinoAfter).to.equal(casinoBefore - 36 * betAmount, \"Casino account reduced by win amount\")\n expect(winnerAfter).to.equal(winnerBefore + 36 * betAmount - INV_FEE, \"Winner account got win amount\")\n })\n\n\n})\n","type":"js","id":"casino/test/casino_test.js","sha":"cea7fd959ea77207955504b693e472a8e660c004","readonly":true}]}]},{"name":"dApp-to-dApps","sha":"d4308eaa4197e4d82756a21745e26065e195dfca","content":[{"name":"add-pool-liquidity","sha":"1eb706306940bd3806134b949a80f5fa25ca990c","content":[{"name":"pool.ride","content":"# This is an example of a pool contract for add liquidity scenario.\n#\n# Increases pool liquidity using attached WAVES tokens for leasing and USDN tokens for staking.\n\n{-# STDLIB_VERSION 5 #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n{-# CONTENT_TYPE DAPP #-}\n\nlet usdN = base58''\nlet staker = Address(base58'')\nlet leasePool = Address(base58'')\nlet shareToken = base58''\n\n@Callable(i)\nfunc addLiquidity() = {\n if (i.payments[0].assetId != unit || i.payments[1].assetId != usdN)\n then\n throw(\"unexpected assets\")\n else {\n strict r = invoke(staker, \"stake\", [], [i.payments[1]])\n let stakingAmount = match r {\n case a: Int => a\n case _ => throw(\"unexpected result type from the staker\")\n } \n \n let stakingAmountKey = \"STAKING_AMOUNT_\" + i.caller.toString()\n let leaseAmountKey = \"LEASE_AMOUNT_\" + i.caller.toString()\n let idKey = \"ID_\" + i.caller.toString()\n\n let leasedAmount = this.getInteger(leaseAmountKey).valueOrElse(0)\n let leaseId = this.getString(idKey)\n\n let newLease = Lease(leasePool, leasedAmount + i.payments[0].amount)\n let newLeaseId = calculateLeaseId(newLease)\n\n let cancel = match leaseId {\n case id: String => [ LeaseCancel(fromBase58String(id)) ]\n case _ => [ StringEntry(idKey, toBase58String(newLeaseId)) ]\n }\n\n cancel ++\n [\n newLease,\n ScriptTransfer(i.caller, 1, shareToken),\n IntegerEntry(leaseAmountKey, leasedAmount + i.payments[0].amount),\n IntegerEntry(stakingAmountKey, stakingAmount)\n ]\n }\n}\n","type":"ride","id":"dApp-to-dApps/add-pool-liquidity/pool.ride","sha":"bd0add721b6a84fca5ee0e611137854ba4160469","readonly":true},{"name":"staker.ride","content":"# This is an example of a staker contract for add liquidity scenario.\n#\n# Receives USDN and saves the new staking amount in the state.\n\n{-# STDLIB_VERSION 5 #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n{-# CONTENT_TYPE DAPP #-}\n\nlet usdN = base58''\n\n@Callable(i)\nfunc stake() = {\n if (i.payments[0].assetId != usdN)\n then\n throw(\"unexpected asset\")\n else {\n let currentLiquidity = this.getInteger(i.originCaller.toString()).valueOrElse(0)\n let newLiquidity = currentLiquidity + i.payments[0].amount\n (\n [ IntegerEntry(i.originCaller.toString(), newLiquidity) ],\n newLiquidity\n )\n }\n}\n","type":"ride","id":"dApp-to-dApps/add-pool-liquidity/staker.ride","sha":"f2400701324733b81a09b2e5b29348c4d587c9bd","readonly":true}]},{"name":"flash-loan","sha":"7fb8c2eb20bb246c396a20d6dd1974e6933b85e6","content":[{"name":"borrower.ride","content":"# This is an example of a borrower contract for flash loan scenario.\n#\n# Borrows token A, changes to B, then changes the funds received again to A,\n# returns the money to the lender and stays in profit on token A.\n\n{-# STDLIB_VERSION 5 #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n{-# CONTENT_TYPE DAPP #-}\n\nlet loanFeePercent = 5\nlet assetA = base58''\nlet assetB = base58''\nlet exchangerABAddress = Address(base58'')\nlet exchangerBAAddress = Address(base58'')\nlet loanerAddress = Address(base58'')\n\n@Callable(i)\nfunc trade(beneficiary: ByteVector) = {\n let loanAmount =\n if (i.payments[0].assetId == assetA)\n then i.payments[0].amount\n else throw(\"unexpected payment asset\")\n\n strict startBalanceB = this.assetBalance(assetB)\n strict r1 = invoke(exchangerABAddress, \"exchangeAB\", [], [AttachedPayment(assetA, loanAmount)])\n strict diffB = this.assetBalance(assetB) - startBalanceB\n\n strict r2 = invoke(exchangerBAAddress, \"exchangeBA\", [], [AttachedPayment(assetB, diffB)])\n\n let debt = loanAmount.fraction(100 + loanFeePercent, 100)\n let profit = this.assetBalance(assetA) - debt\n [\n ScriptTransfer(Address(beneficiary), profit, assetA),\n ScriptTransfer(loanerAddress, debt, assetA)\n ]\n}\n","type":"ride","id":"dApp-to-dApps/flash-loan/borrower.ride","sha":"ec08f44f453d8d29e67d4e9de48e117a2c8849a8","readonly":true},{"name":"exchanger1.ride","content":"# This is an example of a first exchanger contract for flash loan scenario.\n#\n# Changes A to B and transfers B to the address of the calling contract.\n# Returns transfer amount.\n\n{-# STDLIB_VERSION 5 #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n{-# CONTENT_TYPE DAPP #-}\n\nlet aToBRate = 5\nlet assetA = base58''\nlet assetB = base58''\n\n@Callable(i)\nfunc exchangeAB() = {\n if (i.payments[0].assetId == assetA)\n then\n [ ScriptTransfer(i.caller, i.payments[0].amount * aToBRate, assetB) ]\n else\n throw(\"unexpected token\")\n}\n","type":"ride","id":"dApp-to-dApps/flash-loan/exchanger1.ride","sha":"ff37ea78bd7950901ae580184e575a101bf0ade1","readonly":true},{"name":"exchanger2.ride","content":"# This is an example of a second exchanger contract for flash loan scenario.\n#\n# Changes B to A and transfers A to the address of the calling contract.\n# Returns transfer amount.\n\n{-# STDLIB_VERSION 5 #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n{-# CONTENT_TYPE DAPP #-}\n\nlet exchangeRate = 5\nlet exchangeRateDiffPercent = 20\nlet aToBRate = exchangeRate.fraction(100 - exchangeRateDiffPercent, 100)\nlet assetA = base58''\nlet assetB = base58''\n\n@Callable(i)\nfunc exchangeBA() = {\n if (i.payments[0].assetId == assetB)\n then\n [ ScriptTransfer(i.caller, i.payments[0].amount / aToBRate, assetA) ]\n else\n throw(\"unexpected token\")\n}\n","type":"ride","id":"dApp-to-dApps/flash-loan/exchanger2.ride","sha":"b4a2ec3d400366ac59b47b0bbe3318fbe2416af0","readonly":true},{"name":"loaner.ride","content":"# This is an example of a loaner contract for flash loan scenario.\n#\n# Should be called from the account related to the borrower.\n#\n# Calls the contract specified by the borrower when called in the transaction\n# and applies the requested amount of token A in the call.\n# Checks that upon completion of the call to the contract, the balance of token A has increased.\n\n{-# STDLIB_VERSION 5 #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n{-# CONTENT_TYPE DAPP #-}\n\nlet assetA = base58''\nlet loanFeePercent = 5\n\n@Callable(i)\nfunc loan(amount: Int, callback: String, borrower: ByteVector) = {\n strict startBalance = this.assetBalance(assetA)\n strict r = invoke(Address(borrower), callback, [i.caller.bytes], [AttachedPayment(assetA, amount)])\n\n let balanceDiff = this.assetBalance(assetA) - startBalance\n let profit = amount.fraction(loanFeePercent, 100)\n\n if (balanceDiff < profit)\n then\n throw(\"debt is not paid: diff=\" + balanceDiff.toString() + \", expected=\" + profit.toString())\n else\n []\n}\n","type":"ride","id":"dApp-to-dApps/flash-loan/loaner.ride","sha":"8ec98d31292fe09081229c8cf4ca839e024b2ed7","readonly":true}]},{"name":"swap","sha":"7725b7831f26cacc715cd6da1617f5e6858f2395","content":[{"name":"exchanger.ride","content":"# This is an example of a exchanger contract for swap scenario.\n#\n# Calls the USDN staking contract canceling USDN staking for the amount\n# that the user should receive during the exchange\n# and transfers USDN to the user's address.\n\n{-# STDLIB_VERSION 5 #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n{-# CONTENT_TYPE DAPP #-}\n\nlet usdN = base58''\nlet exchangeRate = 5\nlet staker = Address(base58'')\n\n@Callable(i)\nfunc exchangeWavesUsdN() = {\n if (i.payments[0].assetId != unit)\n then\n throw(\"unexpected asset\")\n else {\n strict r = invoke(staker, \"cancelStake\", [i.payments[0].amount * exchangeRate], [])\n [ ScriptTransfer(i.caller, i.payments[0].amount * exchangeRate, usdN) ]\n }\n}\n","type":"ride","id":"dApp-to-dApps/swap/exchanger.ride","sha":"a392228b143d3c0bcf165866ce25fd953ab797db","readonly":true},{"name":"staker.ride","content":"# This is an example of a staker contract for swap scenario.\n#\n# \"stake\" receives USDN and saves the new staking amount in the state.\n# \"cancelStake\" withdraws the required amount from staking and transfers it to the account.\n\n{-# STDLIB_VERSION 5 #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n{-# CONTENT_TYPE DAPP #-}\n\nlet usdN = base58''\n\n@Callable(i)\nfunc stake() = {\n if (i.payments[0].assetId != usdN)\n then\n throw(\"unexpected asset\")\n else {\n let currentLiquidity = this.getInteger(i.originCaller.toString()).valueOrElse(0)\n [ IntegerEntry(i.originCaller.toString(), currentLiquidity + i.payments[0].amount) ]\n }\n}\n\n@Callable(i)\nfunc cancelStake(amount: Int) = {\n if (this.getIntegerValue(i.caller.toString()) >= amount)\n then\n [ ScriptTransfer(i.caller, amount, usdN) ]\n else\n throw(\"too big amount\")\n}\n","type":"ride","id":"dApp-to-dApps/swap/staker.ride","sha":"559b3862ce293634e55958d736b660bfc59ba12d","readonly":true}]}]},{"name":"dApps","sha":"765448518455e77ce4bf45106f8d3162e09a81c3","content":[{"name":"8ball","sha":"5a2f4886bd09199f47b164f2a95c7f79e76a0eaa","content":[{"name":"README.md","content":"# Waves Magic 8 Ball\n\nDon't know what to do?\nYou want an answer to THE question?\nMagic 8 Ball - it’s the fastest way to seek advice!\ndApp uses an innovative(not) method of pseudorandom answer generation to give you the best possible answer.\nAnd it also ensures that same question should get a different answer.\n\n### Deploying\n\n1. Compile RIDE script\n2. Deploy smart script to dApp account\n3. You ready to go!\n\n### How to use\n\n1. Prepare Invoke script TX with function name `tellme` and single argument: `question: string`\n2. Broadcast your TX\n3. Your question and answer should be written to dApp data state\n4. Question key: `yourb58address_q`\n5. Answer key: `yourb58address_a`\n\n### dApp on Testnet\n\nCode for [RIDE IDE](https://ide.wavesplatform.com/) console\n```JS\nconst question = \"Should i do that?\"\nconst invokeTX = invokeScript({ fee: 500000, dApp: \"3N27HUMt4ddx2X7foQwZRmpFzg5PSzLrUgU\", call:{function:\"tellme\",args:[{\"type\": \"string\", \"value\": question}]}, payment: null})\nbroadcast(invokeTX)\n```","type":"md","id":"dApps/8ball/README.md","sha":"92748568b007686766cb0b92ac4a767ad4e75a61","readonly":true},{"name":"ride","sha":"6116ce62cf2c2c19cd54c78134662ba39e6862e3","content":[{"name":"8ball.ride","content":"{-# STDLIB_VERSION 3 #-}\n{-# CONTENT_TYPE DAPP #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n\n#\n# Waves dApp version of famous Magic 8 ball toy!\n# Function name: tellme(question: String)\n# Question and answer will be written to dApp data state\n#\n# Example on Testnet: 3N27HUMt4ddx2X7foQwZRmpFzg5PSzLrUgU\n#\n\nlet answersCount = 20\nlet answers = \n [\"It is certain.\",\n \"It is decidedly so.\",\n \"Without a doubt.\",\n \"Yes - definitely.\",\n \"You may rely on it.\",\n \"As I see it, yes.\",\n \"Most likely.\",\n \"Outlook good.\",\n \"Yes.\",\n \"Signs point to yes.\",\n \"Reply hazy, try again.\",\n \"Ask again later.\",\n \"Better not tell you now.\",\n \"Cannot predict now.\",\n \"Concentrate and ask again.\",\n \"Don't count on it.\",\n \"My reply is no.\",\n \"My sources say no.\",\n \"Outlook not so good.\",\n \"Very doubtful.\"]\n\n\n#\n# Simple pseudorandom answer generator\n#\nfunc getAnswer(question: String, previousAnswer: String) = {\n let hash = sha256(toBytes(question + previousAnswer))\n let index = toInt(hash)\n answers[index % answersCount]\n}\n\nfunc getPreviousAnswer(address: String) = {\n match getString(this, address + \"_a\") {\n case a: String => a\n case _ => address\n }\n}\n\n@Callable(i)\nfunc tellme(question: String) = {\n let callerAddress = toBase58String(i.caller.bytes)\n let answer = getAnswer(question, getPreviousAnswer(callerAddress))\n\n WriteSet([\n DataEntry(callerAddress + \"_q\", question),\n DataEntry(callerAddress + \"_a\", answer)\n ])\n}","type":"ride","id":"dApps/8ball/ride/8ball.ride","sha":"fb1eaee4f9abea218a5e33733f7770547a58e951","readonly":true}]},{"name":"tests","sha":"1a99ca340cb62401bbf3f3190a9344a3928ace36","content":[{"name":"8ball_test.js","content":"//\n// Waves dApp Magic 8 ball tests\n//\n\ndescribe('8 ball', () => {\n const ballAddress = \"3N27HUMt4ddx2X7foQwZRmpFzg5PSzLrUgU\"\n const question = \"Test\" + Date.now()\n const tx = invokeScript({fee: 500000, dApp: ballAddress, call:{function:\"tellme\", args:[{\"type\": \"string\", \"value\": question}]}, payment: null})\n\n it('Tx is mined in block', async function(){\n await broadcast(tx)\n await waitForTx(tx.id)\n })\n\n it('Question is in ball', async function(){\n await accountDataByKey(address()+\"_q\", ballAddress)\n .then(reslove => expect(reslove.value).to.equal(question))\n })\n})","type":"js","id":"dApps/8ball/tests/8ball_test.js","sha":"686e31447b60798dca8c30472a9da276335e4519","readonly":true}]}]},{"name":"bankCredit","sha":"e9ed51c48997e159d969decfe48d7b4592fab1df","content":[{"name":"README.md","content":"# Bank credit dApp\nWe assume that customer account have some value by itself\n#### E.g: \n* Account could control another dapp\n* It is tied to his passport via government service\n* Owning an account provides ownership of some real world thing\n* Customer completed some complex KYC with this account on third party service\n\n## Workflow \n1. Bank approves credit for some address via `approveCredit` function. It defines client address, amount of money, target height to return and account script for client.\n2. Customer sets `lock script` fon his account.\n3. Customer can get money if he provides proof, that script was indeed set on his account\n4. Customer can cancel credit contract via 'cancelCredit' if he didn't take the money\n5. Customer can return money via 'returnMoney' function\n\n## Simplifications for this version:\na) This version does not account interest, but it can be easily added via additional argument to 'approveCredit'\nb) This version does not separate different credit contracts for one account. For now it is possible to have only one. Having multiple contracts can also be implemented with contract id's\n\n## Account lock script:\nCustomer sets account script, which forbids setting another account script. After target height script forbids any operations other than calling dApp functions. If contract status is in `[\"returned\", \"canceled\"]`, script allows to unset itself\n","type":"md","id":"dApps/bankCredit/README.md","sha":"2d56b8f796fb09013dc5e138dbff2e4ac0e8cdcf","readonly":true},{"name":"ride","sha":"40762ed42c0300e7b838a596ce5e6a23fb35c586","content":[{"name":"account_lock.ride","content":"# This is LOCK script. Customer has to set this script to his account to be able to get money from the bank\n\n{-# STDLIB_VERSION 3 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n\n# Bank dApp address\nlet BANK = base58'3MpFRn3X9ZqcLimFoqNeZwPBnwP7Br5Fmgs'\n\n\nlet TARGETHEIGHT = match( getInteger(Address(BANK), toBase58String(tx.sender.bytes) + \"_target\")){\n case _: Unit => 0\n case x: Int => x\n}\nlet status = match( getString(Address(BANK), toBase58String(tx.sender.bytes) + \"_status\")){\n case _: Unit => \"unset\"\n case x: String => x\n}\n\n# If it is time to pay and money has been borrowed and not returned, we only allow InvokeScript on bank dApp. Anyone can call this dapp\nif (height > TARGETHEIGHT && status == \"borrowed\") then {\n match (tx){\n case t: InvokeScriptTransaction => addressFromRecipient(t.dApp).bytes == BANK\n case _ => false\n }\n# Otherwise if returned allow all\n}else if(status == \"returned\" || status == \"canceled\") then {\n sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)\n# In any other case forbid SetScript\n}else {\n match (tx){\n case _: SetScriptTransaction => false\n case _ => sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)\n }\n}\n\n\n","type":"ride","id":"dApps/bankCredit/ride/account_lock.ride","sha":"a39bfd03cd706229f1e80f3ff454f19a95fef5f6","readonly":true},{"name":"bank_dapp.ride","content":"{-# STDLIB_VERSION 3 #-}\n{-# CONTENT_TYPE DAPP #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n\n@Callable(i)\nfunc approveCredit(client: String, amount: Int, target: Int, lockHash: ByteVector) = {\n if (this == i.caller && !isDefined(getBoolean(this, client + \"_status\"))) then {\n WriteSet([\n DataEntry(client + \"_status\", \"approved\"),\n DataEntry(client + \"_amount\", amount),\n DataEntry(client + \"_target\", target),\n DataEntry(client + \"_lockScriptId\", lockHash)\n ])\n }else {\n throw(\"Credit for \" + client + \" has already been approved or caller is not dApp owner\")\n }\n\n}\n\n@Callable(i)\nfunc getMoney() = {\n\n let callerStr = toBase58String(i.caller.bytes)\n\n let status = match( this.getString(callerStr + \"_status\")){\n case _: Unit => \"unset\"\n case x: String => x\n }\n\n let lockTxId = this.getString(callerStr + \"_lockScriptId\").extract()\n let lockTx = transactionHeightById(fromBase58String(lockTxId))\n\n let isLockSet = match (lockTx) {\n case _: Int => true\n case _ => throw(\"Lock has not been set\")\n }\n\n let amount = this.getInteger(callerStr + \"_amount\").extract()\n\n if (status == \"approved\" && isLockSet) then {\n ScriptResult(\n WriteSet([\n DataEntry(callerStr + \"_status\", \"borrowed\")\n ]),\n TransferSet([ScriptTransfer(i.caller, amount, unit)])\n )\n }else throw(\"Credit was not approved or money has already been taken\")\n\n}\n\n@Callable(i)\nfunc returnMoney() = {\n let callerStr = toBase58String(i.caller.bytes)\n let status = match( this.getString(callerStr + \"_status\")){\n case _: Unit => \"unset\"\n case x: String => x\n }\n\n let pmt = extract(i.payment)\n\n let amountToReturn = getInteger(this, callerStr + \"_amount\")\n if(status != \"borrowed\") then throw(\"Cannot return, nothing was borrowed\")\n else if (isDefined(pmt.assetId)) then throw(\"Can return only WAVES at the moment\")\n else if (amountToReturn != pmt.amount) then throw(\"Should return borrowed amount\")\n else {\n WriteSet([\n DataEntry(callerStr + \"_status\", \"returned\")\n ])\n }\n}\n\n@Callable(i)\nfunc cancelContract() = {\n let callerStr = toBase58String(i.caller.bytes)\n let status = match( this.getString(callerStr + \"_status\")){\n case _: Unit => \"unset\"\n case x: String => x\n }\n if(status == \"approved\" || status == \"unset\") then WriteSet([DataEntry(callerStr + \"_status\", \"canceled\")])\n else {throw(\"Cannot cancel credit. Money has already been taken\")}\n}\n\n@Verifier(tx)\nfunc verify() = {\n match(tx) {\n case _:DataTransaction => false\n case _:SetScriptTransaction => false\n case _ => sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)\n }\n}\n","type":"ride","id":"dApps/bankCredit/ride/bank_dapp.ride","sha":"dd381771c5c1536e072c24e8a2a5e0b46951804a","readonly":true}]},{"name":"test","sha":"30f00a8b0e3dd62cd728ba284cd72d1453ff0c64","content":[{"name":"test.js","content":"const wvs = 10 ** 8;\n\ndescribe('Bank Dapp test Suite', () => {\n\n let lockTx;\n let removeLockTx;\n let paymentAmount = 0.4 * wvs\n\n before(async function() {\n this.timeout(0);\n\n await setupAccounts({bank: 0.5 * wvs, client: 0.1 * wvs});\n\n const compiledDapp = compile(file('bank_dapp.ride'))\n const bankAddress = address(accounts.bank)\n const lockScript = file('account_lock.ride')\n .replace(`base58'3MpFRn3X9ZqcLimFoqNeZwPBnwP7Br5Fmgs'`, `base58'${bankAddress}'`)\n\n const compiledLock = compile(lockScript)\n\n lockTx = setScript({script: compiledLock}, accounts.client)\n removeLockTx = setScript({script: null, additionalFee: 400000}, accounts.client)\n const dAppTx = setScript({script: compiledDapp}, accounts.bank)\n await broadcast(dAppTx)\n await waitForTx(dAppTx.id)\n console.log('Scrips were deployed')\n })\n\n it('Bank approves credit for customer', async function(){\n const invTx = invokeScript({\n additionalFee: 400000,\n dApp: address(accounts.bank),\n call: {\n function: \"approveCredit\",\n args: [{\n type: \"string\",\n value: address(accounts.client)\n }, {\n type: \"integer\",\n value: paymentAmount\n }, {\n type: \"integer\",\n value: 0\n }, {\n type: \"string\",\n value: lockTx.id\n }]\n }\n }, accounts.bank)\n\n await broadcast(invTx)\n await waitForTx(invTx.id)\n })\n\n it('Customer fails to get money without lock', async function(){\n const invTx = invokeScript({\n additionalFee: 500000,\n dApp: address(accounts.bank),\n call: {\n function: \"getMoney\"\n }\n }, accounts.client)\n await expect(broadcast(invTx)).rejectedWith()\n })\n\n it('Customer sets lock and gets money', async function(){\n this.timeout(0)\n\n await broadcast(lockTx)\n await waitForTx(lockTx.id, {timeout: 1000000})\n\n const invTx = invokeScript({\n additionalFee: 500000,\n dApp: address(accounts.bank),\n call: {\n function: \"getMoney\"\n }\n }, accounts.client)\n await broadcast(invTx)\n await waitForTx(invTx.id, {timeout: 1000000})\n })\n\n it('Customer fails to remove lock', async function(){\n await expect(broadcast(removeLockTx)).rejectedWith()\n })\n\n it('Customer returns money and removes lock from his account', async function(){\n this.timeout(0)\n const invTx = invokeScript({\n additionalFee: 500000,\n dApp: address(accounts.bank),\n call: {\n function: \"returnMoney\",\n args: []\n },\n payment:[{\n amount: paymentAmount\n }]\n }, accounts.client)\n await broadcast(invTx);\n await waitForTx(invTx.id, {timeout: 1000000});\n await broadcast(removeLockTx)\n })\n})\n\n\n","type":"js","id":"dApps/bankCredit/test/test.js","sha":"e718c84b6769b38b4cec51a617172458aa021d6e","readonly":true}]}]},{"name":"fomo.ride","content":"{-# STDLIB_VERSION 3 #-}\n{-# CONTENT_TYPE DAPP #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n\nlet lpKey = \"lastPayment\"\nlet liKey = \"bestFomoer\"\nlet lhKey = \"height\"\nlet day = 1440\n\n@Callable(i)\nfunc fearmissing() = {\n let payment = match i.payment {\n\t case p:AttachedPayment =>\n\t \t\tmatch p.assetId {\n\t\t\t\t case assetId: ByteVector => throw(\"fomo waves only\")\n\t\t\t\t case _ => p.amount\n\t\t\t }\n\n\t case _ => throw(\"payment must be attached\")\n }\n\tlet lastPayment = match getInteger(this, \"lastPayment\") {\n\t\tcase p:Int => p\n\t\tcase _ => 0\n\t}\n\n\tif(payment <= lastPayment)\n\t\tthen throw(\"min payment is \" +toString(payment))\n\t\telse # storing best payment, caller and height\n\t\t\tWriteSet([\n\t\t\t\tDataEntry(lpKey, payment),\n\t\t\t\tDataEntry(liKey, i.caller.bytes),\n\t\t\t\tDataEntry(lhKey, height)\n\t\t\t])\n}\n\n@Callable(i)\nfunc withdraw() = {\n\tlet callerCorrect = i.caller.bytes == extract(getBinary(this, liKey))\n\tlet heightCorrect = extract(getInteger(this, lhKey)) - height >= day\n\tlet canWithdraw = heightCorrect && callerCorrect\n\n\tif (canWithdraw)\n\t\tthen TransferSet([ScriptTransfer(i.caller, wavesBalance(this), unit)])\n\t\telse throw(\"behold\")\n}\n","type":"ride","id":"dApps/fomo.ride","sha":"65fd9ab026daa2444b208f348cb4ac4f53c8f944","readonly":true},{"name":"momentaryLottery","sha":"2ac78350d1e031e5e462d2bba0bd75cf4e4392ab","content":[{"name":"README.md","content":"# Momentary Lottery dApp\n\nMomentary Lottery fully on blockchain\nWin chance is 50/50 with pay rate 1.9x\n\n### Deploying\n\n1. Compile RIDE script\n2. Deploy smart script to dApp account\n3. You are ready to go!\n\n### How to use\n\n1. Prepare Invoke script TX with function name `lotto` or Default function with payment in Waves\n2. Broadcast your TX\n3. dApp will resolve bet and transfer you winning amount or nothing (tough luck)\n\n\n### dApp on Testnet\n\nCode for [RIDE IDE](https://ide.wavesplatform.com/) console\n```JS\nconst betAmount = 1000000\nconst invokeTX = invokeScript({ fee: 500000, dApp: \"3Mu5kasZ85VY5xUCpPYoWr6fBzh6eGZwcnt\", call: null, payment: [{assetId: null, amount: 1000000}]})\nbroadcast(invokeTX)\n```","type":"md","id":"dApps/momentaryLottery/README.md","sha":"27018acd03667fc9c15d3ecc32daf255df50dd39","readonly":true},{"name":"ride","sha":"7f6ab2bb039350a3cc89267232e641a4f896f387","content":[{"name":"momentaryLottery.ride","content":"{-# STDLIB_VERSION 3 #-}\n{-# CONTENT_TYPE DAPP #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n\n#\n# Momentary Lottery fully on blockchain.\n# Win chance is 50/50 with pay rate 1.9x\n# Function name: lotto() or Default function\n# Payment: Any amount in Waves\n#\n# Example on Testnet: 3Mu5kasZ85VY5xUCpPYoWr6fBzh6eGZwcnt\n#\n\n\n#\n# Pseudorandom generator fully based on blockchain state\n#\nfunc randomizer(inv: Invocation) = {\n let lastPlay = match getBinary(this, \"lastPlay\") {\n case s:ByteVector => s\n case _:Unit => base64'V2F2ZXNMb3R0b1Yy'\n }\n\n let rand = lastPlay + inv.transactionId + inv.callerPublicKey + lastBlock.generationSignature + toBytes(lastBlock.timestamp) + toBytes(lastBlock.height)\n sha256(rand)\n}\n\nfunc startLotto(inv: Invocation) = {\n let playLimit = wavesBalance(this) / 100\n let payment = extract(inv.payment)\n\n if(!isDefined(inv.payment)) then {\n throw(\"Should be with Payment in Waves\")\n } else if (isDefined(payment.assetId)) then {\n throw(\"Payment should be in Waves\")\n } else if (payment.amount > playLimit) then {\n throw(\"Payment should be less than \" + toString(playLimit))\n } else {\n\n let randhash = randomizer(inv)\n let winTransfer = TransferSet([ScriptTransfer(inv.caller, payment.amount * 190 / 100, unit)])\n let writeLastPlay = WriteSet([DataEntry(\"lastPlay\", randhash)])\n\n if(randhash.toInt() % 1000 < 500) then {\n ScriptResult(writeLastPlay, winTransfer)\n } else {\n ScriptResult(writeLastPlay, TransferSet([]))\n }\n }\n}\n\n@Callable(inv)\nfunc lotto() = {\n startLotto(inv)\n}\n\n@Callable(inv)\nfunc default() = {\n startLotto(inv)\n}\n","type":"ride","id":"dApps/momentaryLottery/ride/momentaryLottery.ride","sha":"d0863ef850b6bd0cb31703c967e290e5f6731871","readonly":true}]},{"name":"test","sha":"0bf7fff40170654426a477c386f951452f087b5e","content":[{"name":"momentaryLottery_test.js","content":"//\n// Momentary Lottery tests\n// Tests will run from current IDE account\n// Account should have at lease 5 Waves and at least 0.01 non Waves tokens\n//\n\ndescribe('Momentary Lotto', () => {\n const lottoAddress = \"3Mu5kasZ85VY5xUCpPYoWr6fBzh6eGZwcnt\"\n const someAssetId = \"CJDViFTTV5gmR6Kb1xVtwNUb9fkSgjeWrsCRZWQkG8t6\" //Should be on test account balance\n const betAmount = 1000000\n\n it('Play with function name', async function(){\n const tx = invokeScript({ fee: 500000, dApp: lottoAddress, call: {function: \"lotto\", args: []}, payment: [{assetId: null, amount: betAmount}]})\n await broadcast(tx)\n await waitForTx(tx.id)\n })\n\n it('Play with default function', async function(){\n const tx = invokeScript({ fee: 500000, dApp: lottoAddress, call: null, payment: [{assetId: null, amount: betAmount}]})\n await broadcast(tx)\n await waitForTx(tx.id)\n })\n\n it('Without payment', async function(){\n const tx = invokeScript({ fee: 500000, dApp: lottoAddress, call: null, payment: []})\n return expect(broadcast(tx)).to.eventually\n .be.rejectedWith(\"Should be with Payment in Waves\")\n })\n\n it('With payment not in Waves', async function(){\n const tx = invokeScript({ fee: 500000, dApp: lottoAddress, call: null, payment: [{assetId: someAssetId, amount: betAmount}]})\n return expect(broadcast(tx)).to.eventually\n .be.rejectedWith(\"Payment should be in Waves\")\n })\n\n it('Bet amount is too large', async function(){\n const lottoBalance = await balance(lottoAddress)\n const bet = Math.trunc(lottoBalance / 10)\n const tx = invokeScript({ fee: 500000, dApp: lottoAddress, call: null, payment: [{assetId: null, amount: bet}]})\n return expect(broadcast(tx)).to.eventually\n .be.rejectedWith(\"Payment should be less than\")\n })\n})","type":"js","id":"dApps/momentaryLottery/test/momentaryLottery_test.js","sha":"17508c3f5a6070eb5cb1b7de4afd0b21d451d8a0","readonly":true}]}]},{"name":"wallet","sha":"007bc7b2f7652a59409d174f1532c97301c7c709","content":[{"name":"ride","sha":"d12ca77418d80f8e7fc30dd745d3573b40e25c31","content":[{"name":"wallet.ride","content":"# In this example multiple accounts can deposit their funds and safely take them back.\n# User balances are stored in the dApp state as mapping `address=>waves`.\n\n{-# STDLIB_VERSION 3 #-}\n{-# CONTENT_TYPE DAPP #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n\n@Callable(i)\nfunc deposit() = {\n # deposit function can be invoked from UI by user to top up the balance\n let pmt = extract(i.payment) # creating variable with all data about a payment attached to the invokation\n if (isDefined(pmt.assetId)) then throw(\"can hodl waves only at the moment\") # waves-only threshold\n else {\n let currentKey = toBase58String(i.caller.bytes) # determining caller key\n let currentAmount = match getInteger(this, currentKey) { # reading current user's balance from the account state\n case a:Int => a\n case _ => 0 # taking zero as a balance value if this is the first time user deposits money\n }\n let newAmount = currentAmount + pmt.amount # counting new balance as \"old balance + payment value\"\n WriteSet([DataEntry(currentKey, newAmount)]) # updating user's balance in the account state\n }\n}\n\n@Callable(i)\nfunc withdraw(amount: Int) = {\n # withdraw function can be invoked by user to \"cash out\" a part of his balance\n let currentKey = toBase58String(i.caller.bytes) \n let currentAmount = match getInteger(this, currentKey) {\n case a:Int => a\n case _ => 0\n }\n let newAmount = currentAmount - amount\n if (amount < 0) # is user requesting a positive amount?\n then throw(\"Can't withdraw negative amount\")\n else if (newAmount < 0) # does user have enough balance for this withdraw?\n then throw(\"Not enough balance\")\n else ScriptResult(\n WriteSet([DataEntry(currentKey, newAmount)]), # saving new balance to the account state\n TransferSet([ScriptTransfer(i.caller, amount, unit)]) # transfering the withdraw amount to user\n )\n }\n\n@Verifier(tx)\nfunc verify() = false # this script can NOT be updated because of this verifier function\n\n\n","type":"ride","id":"dApps/wallet/ride/wallet.ride","sha":"07277389f9c571bc1deb00a3a896cf34f04499e4","readonly":true}]},{"name":"test","sha":"a1af145249aee29cd0c5907aeafe07209e0aeb89","content":[{"name":"wallet.js","content":"const wvs = 10 ** 8;\r\n\r\ndescribe('wallet test suite', async function () {\r\n\r\n this.timeout(100000);\r\n\r\n before(async function () {\r\n await setupAccounts(\r\n {foofoofoofoofoofoofoofoofoofoofoo: 10 * wvs,\r\n barbarbarbarbarbarbarbarbarbar: 2 * wvs,\r\n wallet: 0.05 * wvs});\r\n const script = compile(file('wallet.ride'));\r\n const ssTx = setScript({script}, accounts.wallet);\r\n await broadcast(ssTx);\r\n await waitForTx(ssTx.id)\r\n console.log('Script has been set')\r\n });\r\n \r\n it('Can deposit', async function () {\r\n\r\n const iTxFoo = invokeScript({\r\n dApp: address(accounts.wallet),\r\n call: {function: \"deposit\"},\r\n payment: [{assetId: null, amount: 0.9 * wvs}]\r\n }, accounts.foofoofoofoofoofoofoofoofoofoofoo);\r\n\r\n\r\n const iTxBar = invokeScript({\r\n dApp: address(accounts.wallet),\r\n call: {function: \"deposit\"},\r\n payment: [{assetId: null, amount: 1.9 * wvs}]\r\n }, accounts.barbarbarbarbarbarbarbarbarbar)\r\n\r\n\r\n await broadcast(iTxFoo);\r\n await broadcast(iTxBar);\r\n await waitForTx(iTxFoo.id);\r\n await waitForTx(iTxBar.id);\r\n })\r\n\r\n it('Cannot withdraw more than was deposited', async function () {\r\n const iTxFoo = invokeScript({\r\n dApp: address(accounts.wallet),\r\n call: {\r\n function: \"withdraw\",\r\n args: [{type:'integer', value: 2 * wvs}]\r\n },\r\n\r\n }, accounts.foofoofoofoofoofoofoofoofoofoofoo);\r\n\r\n expect(broadcast(iTxFoo)).to.be.rejectedWith(\"Not enough balance\")\r\n })\r\n\r\n it('Can withdraw', async function () {\r\n const iTxFoo = invokeScript({\r\n dApp: address(accounts.wallet),\r\n call: {\r\n function: \"withdraw\",\r\n args: [{ type: 'integer', value: 0.9 * wvs }]\r\n },\r\n\r\n }, accounts.foofoofoofoofoofoofoofoofoofoofoo);\r\n await broadcast(iTxFoo)\r\n })\r\n})","type":"js","id":"dApps/wallet/test/wallet.js","sha":"332da465cdf367042249a588b05f8bf7b26d46f2","readonly":true}]}]}]},{"name":"smart-accounts","sha":"52cfd52a29a78e71064d0eb114c9a1d26c48fafb","content":[{"name":"AuthorizedTrader.ride","content":"#allow trader to set orders on your account\n#this is the same as you send your api-key on common exchanges to the trader without sharing your private key or seed\n#trader is allowed to set order on certain pairs\n#order expiration time should be less then 2 minutes, as trader cannot cancel orders in current RIDE version\n#at any time accout owner can cancel\n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n\nlet traderPublicKey = base58'QLMkJYFXsXiLLiKCbVCZZzQQT3whz8PAPdT7w4yQjEn'\nlet ownerPublicKey = base58'4gFmmsNv1qA9Krn3pUGbZVcJQTCsXEXhZjEtszDtxMXz'\nlet amountAsset = base58'8LLpj6yQLUu37KUt3rVo1S69j2gWMbgbM6qqgt2ac1Vb'\nlet matcherPublicKey = base58'7kPFrHDiGw1rCm7LPszuECwWYL3dMf6iMifLRDJQZMzy'\n\n\nmatch (tx) {\n case o:Order =>\n let isWavesPriceAsset = !isDefined(o.assetPair.priceAsset)\n let rightPair = (o.assetPair.amountAsset == amountAsset) && isWavesPriceAsset\n sigVerify(o.bodyBytes, o.proofs[0], traderPublicKey)\n && rightPair\n && o.expiration - o.timestamp < 120*1000\n && o.matcherPublicKey == matcherPublicKey\n case t:SetScriptTransaction | TransferTransaction =>\n sigVerify(t.bodyBytes, t.proofs[0], ownerPublicKey)\n case _ =>\n false\n }","type":"ride","id":"smart-accounts/AuthorizedTrader.ride","sha":"93e87d51d97be39f6eb56d0173d8c8ad1610e854","readonly":true},{"name":"Multisig.ride","content":"{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n\n#define public keys\nlet alicePubKey = base58'5AzfA9UfpWVYiwFwvdr77k6LWupSTGLb14b24oVdEpMM'\nlet bobPubKey = base58'2KwU4vzdgPmKyf7q354H9kSyX9NZjNiq4qbnH2wi2VDF'\nlet cooperPubKey = base58'GbrUeGaBfmyFJjSQb9Z8uTCej5GzjXfRDVGJGrmgt5cD'\n\n#check whoever provided the valid proof\nlet aliceSigned = if(sigVerify(tx.bodyBytes, tx.proofs[0], alicePubKey )) then 1 else 0\nlet bobSigned = if(sigVerify(tx.bodyBytes, tx.proofs[1], bobPubKey )) then 1 else 0\nlet cooperSigned = if(sigVerify(tx.bodyBytes, tx.proofs[2], cooperPubKey )) then 1 else 0\n\n#sum up every valid proof to get at least 2\naliceSigned + bobSigned + cooperSigned >= 2\n","type":"ride","id":"smart-accounts/Multisig.ride","sha":"33df8c96eececaf24bb55a33bd6a6ab66fa3acb1","readonly":true},{"name":"XmasTree.ride","content":"# Contract example from tradisys.com team\n\n### Prerequisites ###\n# - balance = playersPrize + dataTransactionFee * 3 + transferTransactionFee\n# - no data required\n#####################\n\n### Player's precautions ###\n# - Smart account balance is >= playersPrize + dataTransactionFee * 2 + transferTransactionFee\n# - Data on account: playersPublicKey matches player's public key, lockedAt is approximately equal to current block height.\n############################\n\n### Normal flow ###\n# 1) Data transaction from server, data = [lockedAt, playersPublicKey]. lockedAt = height or height - 1. Transition: InitialState -> LockedState\n# 2) Data transaction from player, data = [playersChoice]. Transition: LockedState -> PlayerRevealedHisChoiceState\n# 3) Transfer transaction from player, amount = donation\n# 4) Data transaction from server, data = [serversChoice, serversSalt]. Transition: PlayerRevealedHisChoiceState -> WinnerIsDeterminedState\n# 5) Transfer transaction, recipients = winner (playersPrize + donation). Transition: PlayerDecidedNotToSendDonationState -> \n###################\n\n### Emergency flow ###\n# 1) Normal flow #1 is completed, but user hasn't done any actions in timeoutInBlocks blocks - we allow server to override\n# playersPublicKey and lockedAt data. Transition: UserDecidedNotToPlayState -> LockedState\n# 2) Normal flow #2 is completed, but server hasn't done any actions in timeoutInBlocks * 2 blocks from lockedAt - we allow player\n# to widthdraw all the money. Transition: ServerDecidedNotToPlayState -> \n# 3) Players sent his choice (Normal Flow #2), but not his money (Normal flow #3) - we allow server to withdraw all the money.\n# Transition: PlayerDecidedNotToSendDonationState -> \n######################\n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n\n### Injected values ###\nlet serversPublicKey = base58'5AzfA9UfpWVYiwFwvdr77k6LWupSTGLb14b24oVdEpMM'\nlet enctyptedServersChoice = base58'5AzfA9UfpWVYiwFwvdr77k6LWupSTGLb14b24oVdEpMM' # keccak256(serversChoice + serversSalt)\nlet donation = 100_000_000 # waves * 100_000_000, eq. 300000000 (= 3 waves)\nlet playersPrize = 100_000_000 # waves * 100_000_000, eq. 400000000 (= 2 waves)\nlet boxesCount = 5\n#######################\n\n### Values from data ###\nlet maybeDataPlayersPublicKey = getString(tx.sender, \"playersPublicKey\")\nlet dataPlayersPublicKey = fromBase58String(extract(maybeDataPlayersPublicKey))\nlet dataLockedAt = extract(getInteger(tx.sender, \"lockedAt\"))\nlet maybeDataPlayersChoice = getInteger(tx.sender, \"playersChoice\")\nlet dataPlayersChoice = extract(maybeDataPlayersChoice)\nlet maybeDataServersChoice = getInteger(tx.sender, \"serversChoice\")\nlet dataServersChoice = extract(maybeDataServersChoice)\n########################\n\nlet timeoutInBlocks = 120\nlet dataTransactionFee = 500000 # 0.001 + 0.004 (smart account fee)\nlet transferTransactionFee = 500000 # 0.001 + 0.004 (smart account fee)\nlet serversAddress = addressFromPublicKey(serversPublicKey)\nlet playersAddress = addressFromPublicKey(dataPlayersPublicKey)\nlet accountBalance = wavesBalance(tx.sender)\n\nlet senderIsServer = sigVerify(tx.bodyBytes, tx.proofs[0], serversPublicKey)\nlet senderIsPlayer = sigVerify(tx.bodyBytes, tx.proofs[0], dataPlayersPublicKey)\n\n### States ###\n# InitialState @ no data is deployed to account\n# Balance: playersPrize + dataTransactionFee * 3 + transferTransactionFee\nlet isInitialState = !isDefined(maybeDataPlayersPublicKey) && accountBalance >= playersPrize + dataTransactionFee * 3 + transferTransactionFee\n\n# LockedState @ account is locked for a specific player by server\n# State: playersPublicKey and lockedAt in data; height <= lockedAt + timeoutInBlocks\n# Balance: donation + dataTransactionFee * 2 + massTransferTransactionFee\nlet dataIsValidForLockedState = isDefined(maybeDataPlayersPublicKey) && !isDefined(maybeDataPlayersChoice)\nlet lockedStateTimeout = height > dataLockedAt + timeoutInBlocks\nlet isLockedState = dataIsValidForLockedState && !lockedStateTimeout\n\n# UserDecidedNotToPlayState @ user didn't send a data transaction in timeoutInBlocks blocks\nlet isUserDecidedNotToPlayState = dataIsValidForLockedState && lockedStateTimeout\n\n# PlayerRevealedHisChoiceState @ player sent a data transaction with his choice (and donationted simultaneously)\n# State: playersPublicKey, lockedAt, playersChoice in data; height <= lockedAt + timeoutInBlocks * 2\n# Balance: playersPrize (playersPrize + donation is fine too) + dataTransactionFee + transferTransactionFee\nlet dataIsValidForPlayerRevealedState = isDefined(maybeDataPlayersChoice) && !isDefined(maybeDataServersChoice)\nlet playerRevealedStateTimeout = (height > dataLockedAt + timeoutInBlocks * 2) && (accountBalance >= playersPrize + donation + dataTransactionFee + transferTransactionFee)\nlet isPlayerRevealedHisChoiceState = dataIsValidForPlayerRevealedState && !playerRevealedStateTimeout\n\n# ServerDecidedNotToPlayState @ the same as PlayerRevealedHisChoiceState, but after timeoutInBlocks * from lockedAt\n# Balance: strictly >= playersPrize + donation + dataTransactionFee + transferTransactionFee, otherwise player will be able to publish data transaction w/o transfer\nlet isServerDecidedNotToPlayState = dataIsValidForPlayerRevealedState && playerRevealedStateTimeout\n\n# WinnerIsDeterminedState @ we are ready to send money to winner\n# Balance: strictly >= playersPrize + donation + transferTransactionFee\nlet isDataValidForWinnerIsDeterminedState = isDefined(maybeDataServersChoice)\nlet isBalanceValidForWinnerIsDeterminedState = accountBalance >= playersPrize + donation + transferTransactionFee\nlet isWinnerIsDeterminedState = isDataValidForWinnerIsDeterminedState && isBalanceValidForWinnerIsDeterminedState\n\n# PlayerDecidedNotToSendDonationState @ player sent data transaction with his choice, but not a transfer transaction with donation\nlet isPlayerDecidedNotToSendDonationState = isDataValidForWinnerIsDeterminedState && !isBalanceValidForWinnerIsDeterminedState\n##############\n\nmatch (tx) {\n case dtx:DataTransaction => (\n let payloadSize = size(dtx.data)\n let firstPayloadName = dtx.data[0].key\n let secondPayloadName = dtx.data[1].key\n let firstPayloadAsInteger = extract(getInteger(dtx.data, firstPayloadName))\n let secondPayloadAsString = extract(getString(dtx.data, secondPayloadName))\n let dataFeeIsOk = dtx.fee == dataTransactionFee\n\n if (isInitialState || isUserDecidedNotToPlayState) then ( # Normal flow #1, Emergency flow #1\n let validLockedAtIsProvided = firstPayloadName == \"lockedAt\" && (firstPayloadAsInteger <= height && height - firstPayloadAsInteger <= 5)\n let playersPublicKeyIsProvided = secondPayloadName == \"playersPublicKey\"\n senderIsServer && dataFeeIsOk && validLockedAtIsProvided && playersPublicKeyIsProvided && payloadSize == 2\n ) else if (isLockedState) then ( # Normal flow #2\n let validPlayersChoiceIsProvided = firstPayloadName == \"playersChoice\" && (firstPayloadAsInteger >= 0 && firstPayloadAsInteger < boxesCount)\n senderIsPlayer && dataFeeIsOk && validPlayersChoiceIsProvided && payloadSize == 1\n ) else if (isPlayerRevealedHisChoiceState) then ( # Normal flow #4\n let validServerChoiceWasProvided = firstPayloadName == \"serversChoice\" && (firstPayloadAsInteger >= 0 && firstPayloadAsInteger < boxesCount)\n let serversSaltWasProvided = secondPayloadName == \"serversSalt\"\n let choiceAndSaltMatchesHardcodedValue = keccak256(toBytes(toString(firstPayloadAsInteger) + secondPayloadAsString)) == enctyptedServersChoice\n\n senderIsServer && dataFeeIsOk && validServerChoiceWasProvided && serversSaltWasProvided && choiceAndSaltMatchesHardcodedValue && payloadSize == 2\n ) else (\n false \n )\n )\n case ttx:TransferTransaction => (\n let transferFeeIsOk = ttx.fee == transferTransactionFee\n\n if (isWinnerIsDeterminedState) then ( # Normal flow #5\n let winnerAddress = if (dataServersChoice == dataPlayersChoice) then playersAddress else serversAddress\n let prizeGoesToWinner = ttx.recipient == winnerAddress\n\n transferFeeIsOk && prizeGoesToWinner && ttx.amount == playersPrize + donation\n ) else if (isServerDecidedNotToPlayState) then ( # Emergency flow #2\n let recipientIsPlayer = ttx.recipient == playersAddress\n\n transferFeeIsOk && recipientIsPlayer && ttx.amount == playersPrize + donation\n ) else if (isPlayerDecidedNotToSendDonationState) then ( # Emergency flow #3\n let recipientIsServer = ttx.recipient == serversAddress\n transferFeeIsOk && recipientIsServer && ttx.amount == playersPrize\n ) else (\n false\n )\n )\n case _ => false\n}\n","type":"ride","id":"smart-accounts/XmasTree.ride","sha":"b2e314c0b29503473d033ee30fe7e855c2f12ce0","readonly":true},{"name":"casino.ride","content":"# If you want to test it on TestNet\n# You will need Keeper (Don't forget TO SWITCH IT TO TESTNET MODE!)\n# go http://185.43.6.227:8000\n# and Play\n#\n#\n# This is an account script of a roulette in a casino\n# Results of games are put into the blockchain by the Oracle periodically (every 5 minutes).\n# Oracle posts its messages to separate account \n#\n# How to make bet\n# \n# To participate you need to Transfer Waves to this account - make Payment and register the bet \n#\n# 1. Payment\n# Just send money to the casino's account\n#\t One payment - one bet. Minimal bet amount = 0.5.\n# Bet registration fee (see next paragraph) is substracted from your payment.\n# 2. Register payment as the bet\n# You need to register the bet for the game round. Choose round by it's timestamp (happens every 5 minutes). \n# To register you need send DataTransaction from the script account signed by Payment sender and containing the following data:\n# (, guess), (_round, timestamp_of_the_round)\n# \t timestamp_of_the_round - in UTF8 encoding in bytes(13 bytes)\n# Guess is a ByteArray in the following format:\n# type of bet (1 byte), guess (1 byte)\n# Bet type could be one of the following (in braces possible 'guess' values are defined):\n# 0 - number (number)\n# 1 - red (0) or black (1)\n# 2 - even (0) or odd (1)\n# 3 - 1st half of the desk (0) and 2nd half (1)\n# 4 - 1st third of the desk (0), 2nd third (1), 3rd third (2)\n# 5 - 1st row of the desk (0), 2nd row (1), 3rd row (2)\n#\n# How to get your prise in case you win \n#\n# In case you guess right you can get more money then your bet (see koeff variable in the code).\n# Formula is: (paymentTx.amount - registerBetTxFee) * koeff - dataTxsFees - withdrawTx.fee\n#\n# You win the round defined by your Bet Registration in case the Oracle\n# put equal value to the round's data. Oracle puts DataTransaction where\n# - the key is the timestamp of the round in UTF8 format converted to ByteArray\n# - value is ByteArray containing\n# 1) version (1 byte)\n#\t 2) wining value for bet of type0 - number (1 byte)\n#\t 3) wining value for bet of type1 - red/black (1 byte)\n#\t 4) wining value for bet of type2 - even/odd (1 byte)\n#\t 5) wining value for bet of type3 - halfs of the desk (1 byte)\n#\t 6) wining value for bet of type4 - thirds of the desk (1 byte)\n#\t 7) wining value for bet of type5 - rows of the desk (1 byte)\n#\n# You can also get your money back if you just sent Payment, but didn't register it as a bet.\n# In this case you need to do the same as described below, but amount would be the following:\n# paymentTx.amount - dataTxsFees - withdrawTx.fee \n#\n# To get money you need to do the following:\n# 1. Create withdraw - Transfer transaction. Amount of money must be calculated according to type of your bet\n# and concider fees - fee of withdraw transaction and fees of data transactions (see 2.)\n# Withdraw transaction must:\n#\t 1) be originated from the Casino account (sender - is the Casino account public key)\n# 2) be signed by Payment sender\n#\t 3) contain Payment transaction id in the second proof.\n# Don't send withdraw yet, just remember it's id (). \n#\t You will send it on step 3, after the DataTransaction. \n# 2. Create and send DataTransaction. This DataTransaction links your Payment to the Withdraw.\n# Because of this DataTransaction you only able to get money once per payment which won. \n#\t In case you sent DataTransaction but lost your Withdraw transaction (e.g. it is expired),\n# you can provide another DataTransaction with new link of Payment to Withdraw.\n# Since DataTransactions are made from the name of the Casino account fees \n#\t will be substracted from your prise.\n#\t DataTransaction must: \n# 1) be originated from the Casino account (sender - is the Casino account public key)\n# 2) be signed by Payment sender\n# 3) contain the following (key, value) pairs:\n# (_withdraw, ), (_withdraw_fees, sum_ammount_of_data_txs_fees)\n#\t sum_ammount_of_data_txs_fees - is sum of fees of all DataTransactions for this payment.\n# 3. When DataTransaction is in the blockchain send Withdraw created on step 1.\n#\n# Donation \n# if you find this script useful, you can donate\n# Waves address: 3P5VCmMc7fqqJijHaS3yB8jCwq7rgmLpszx\n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n\nlet me = tx.sender\nlet oracle = extract(addressFromString(\"3NCzaYTNDGtR8zf9yfcqePFjCqFx9S5zhs4\"))\nlet minWithdrawFee = 500000\nlet registerBetTxFee = 500000\n\nmatch(tx) {\n\tcase withdrawTx: TransferTransaction =>\n\t\t# proofs[0] contains signiture by payment sender\n\t\t# proofs[1] contains payment Tx id\n\t\tlet txId = extract(getString(me, toBase58String(tx.proofs[1]) + \"_withdraw\"))\n\t\tmatch(transactionById(tx.proofs[1])) {\n\t\t\tcase paymentTx: TransferTransaction =>\n\t\t\t let isPaymentTookPlace = txId == toBase58String(tx.id) && sigVerify(tx.bodyBytes, tx.proofs[0], paymentTx.senderPublicKey)\n\n\t\t\t\tlet feesKey = toBase58String(tx.proofs[1]) + \"_withdraw_fees\"\n\t\t\t\tlet dataTxsFees = extract(getInteger(me, feesKey))\n\n\t\t\t\tlet guessUnit = getBinary(me, toBase58String(tx.proofs[1]))\n\t\t\t\t\n\t\t\t\tlet correctAmount = if (!isDefined(guessUnit)) then\n\t\t\t\t{\n\t\t\t\t\t# return back payment\n\t\t\t\t\tpaymentTx.amount - dataTxsFees - withdrawTx.fee\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t# get win prise\n\t\t\t\t\tlet guess = extract(guessUnit)\n\n\t\t\t\t\tlet type = take(guess, 1)\n\t\t\t\t\tlet val = drop(guess, 1)\n\t\t\t\t\tlet key = extract(getString(me, toBase58String(tx.proofs[1]) + \"_round\"))\n\n\t\t\t\t\tlet valComplex = extract(getBinary(oracle, key))\n\n\t\t\t\t\tlet koeff =\n\t\t\t\t\t\tif (type == drop(toBytes(0), 7)) then 36\n\t\t\t\t\t\telse if (type == drop(toBytes(1), 7)) then 2\n\t\t\t\t\t\telse if (type == drop(toBytes(2), 7)) then 2\n\t\t\t\t\t\telse if (type == drop(toBytes(3), 7)) then 2\n\t\t\t\t\t\telse if (type == drop(toBytes(4), 7)) then 3\n\t\t\t\t\t\telse if (type == drop(toBytes(5), 7)) then 3\n\t\t\t\t\t\telse 0\n\n\t\t\t\t\t(paymentTx.amount - registerBetTxFee) * koeff - dataTxsFees - withdrawTx.fee\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t(isPaymentTookPlace || throw(\"There was no bet\")) \n\t\t\t\t&& \n\t\t\t\t((withdrawTx.amount == correctAmount) || throw(\"Amount is incorrect. Correct amount is \" + toString(correctAmount))) \n\t\t\t\t&& \n\t\t\t\t((!isDefined(withdrawTx.feeAssetId) && !isDefined(withdrawTx.assetId)) \n\t\t\t\t|| throw(\"Withdraw and fee must be in WAVES\"))\n\n\t\t\tcase _ => false\n\t\t}\n\n\tcase dtx: DataTransaction =>\n\n\t\tif (size(dtx.data) == 3) then\n\t\t{\n\t\t\t# Data Tx for BET REGISTRATION\n\t\t\t\t\t\t\n\t\t\tlet minBet = \t 50000000\n\t\t\tlet maxSumBet = 1000000000 # max sum bet for round\n\t\t\t\n\t\t\tlet paymentTxIdStr = extract(dtx.data[0].key)\n\t\t\t\n\t\t\tlet guessStr = extract(getString(dtx.data, paymentTxIdStr))\n\t\t\tlet paymentRoundKey = paymentTxIdStr + \"_round\"\n\t\t\tlet paymentRound = extract(getString(dtx.data, paymentRoundKey))\n\t\t\t\n\t\t\tlet sumBetsOld = if isDefined(getInteger(me, paymentRound + \"_betsSum\")) \n\t\t\t\t\t\t\t\tthen extract(getInteger(me, paymentRound + \"_betsSum\")) \n\t\t\t\t\t\t\t\telse 0\n\t\t\tlet sumBetsNew = extract(getInteger(dtx.data, paymentRound + \"_betsSum\"))\n\n\t\t\tlet itsTooLate = isDefined(getString(me, paymentRound + \"_stop\"))\n\t\t\t\n\t\t\tlet isPaymentAlreadyMentioned = isDefined(getString(me, paymentTxIdStr))\n\n\t\t\tlet paymentTx = transactionById(fromBase58String(paymentTxIdStr))\n\t\t\tmatch (paymentTx) {\n\t\t\t\tcase paymentTx : TransferTransaction =>\n\t\t\t\t\t# data-transaction must be signed by payment sender\n\t\t\t\t\tlet isDtxSignedByPayer = sigVerify(dtx.bodyBytes, dtx.proofs[0], paymentTx.senderPublicKey)\n\n\t\t\t\t\tlet correctSumBets = sumBetsOld + paymentTx.amount - dtx.fee # data tx fee is payed by Payment sender from its bet\n\n\t\t\t\t\t(addressFromRecipient(paymentTx.recipient) == me || throw(\"Incorrect recipient of the payment\"))\n\t\t\t\t\t&&\n\t\t\t\t\t(!isPaymentAlreadyMentioned || throw(\"This transfer is already used as a bet\")) \n\t\t\t\t\t&& \n\t\t\t\t\t((sumBetsNew == correctSumBets)\n\t\t\t\t\t|| throw(\"Wrong value for Sum of Bets. Must be \" + toString(correctSumBets)))\n\t\t\t\t\t&&\n\t\t\t\t\t((sumBetsNew < maxSumBet) \n\t\t\t\t\t|| throw(\"Maximum amount of bets for round \" + toString(maxSumBet) + \". With your bet it's \" + toString(sumBetsNew)))\n\t\t\t\t\t&&\n\t\t\t\t\t((dtx.fee == registerBetTxFee) \n\t\t\t\t\t|| throw(\"Fee of bet registration data transaction must be \" + toString(registerBetTxFee)))\n\t\t\t\t\t&&\n\t\t\t\t\t((paymentTx.amount - registerBetTxFee >= minBet) || throw(\"Your Bet amount is less then minimal bet \" + toString(minBet) + \". Payment amount for such bet must be \" + toString(minBet+registerBetTxFee)))\n\t\t\t\t\t&& \n\t\t\t\t\t((!isDefined(paymentTx.feeAssetId) || throw(\"Paymnet must be in WAVES\")))\n\t\t\t\t\t&& \n\t\t\t\t\t(!itsTooLate || throw(\"It's too late to play this round. Try next one\"))\n\n\t\t\t\t\t \n\n\t\t\t\tcase _ => false\n\t\t\t}\t\t\n\t\t}\n\t\telse if (size(dtx.data) == 2) then\n\t\t{\n\t\t\t# Data Tx for WITHDRAW registration\n\n\t\t\t# payment transaction in the first key-value.\n\t\t\t# Data tx must be signed by payment sender\n\n\t\t\tlet isDataCountOk = size(dtx.data) == 2\n\n\t\t\tlet paymentTxIdStr = dropRight(extract(dtx.data[0].key), 9) # drop \"_withdraw\"\n\t\t\tlet feesKey = paymentTxIdStr + \"_withdraw_fees\"\n\t\t\tlet paymentTx = transactionById(fromBase58String(paymentTxIdStr))\n\t\t\tlet newFees = extract(getInteger(dtx.data, feesKey))\n\t\t\tlet oldFeesUnit = getInteger(me, feesKey)\n\t\t\tlet oldFees = if isDefined(oldFeesUnit)\n\t\t\t\t\t\t\tthen extract(oldFeesUnit)\n\t\t\t\t\t\t\telse 0\n\n\t\t\tlet isFeeCorrect = newFees == oldFees + dtx.fee\n\n\t\t\t#if payment already mentioned in the State, the corresponding withdraw tx must not exist\n\t\t\t\n\t\t\tlet withdrawTxIdUnit = getString(me, paymentTxIdStr)\n\t\t\tlet isPaymentAlreadyMentioned = isDefined(withdrawTxIdUnit)\n\n\t\t\tlet withdrawTransactionId = fromBase58String(extract(withdrawTxIdUnit))\n\n\t\t\tmatch (paymentTx) {\n\t\t\t\tcase paymentTx : TransferTransaction =>\n\t\t\t\t\t# data-transaction must be signed by payment sender\n\t\t\t\t\tlet isDtxSignedByPayer = sigVerify(dtx.bodyBytes, dtx.proofs[0], paymentTx.senderPublicKey)\n\n\t\t\t\t\t#if payment correct\n\t\t\t\t\tif (addressFromRecipient(paymentTx.recipient) == me\n\t\t\t\t\t\t&&\n\t\t\t\t\t\t(!isPaymentAlreadyMentioned || !isDefined(transactionById(withdrawTransactionId)) ) \n\t\t\t\t\t\t&&\n\t\t\t\t\t\tisDtxSignedByPayer\n\t\t\t\t\t\t&&\n\t\t\t\t\t\tisFeeCorrect\n\t\t\t\t\t\t&&\n\t\t\t\t\t\tisDataCountOk) \n\t\t\t\t\tthen\n\t\t\t\t\t\tlet guess = extract(getBinary(me, paymentTxIdStr))\n\n\t\t\t\t\t\tlet type = take(guess, 1)\n\t\t\t\t\t\tlet key = extract(getString(me, paymentTxIdStr + \"_round\"))\n\n\t\t\t\t\t\tlet valComplex = extract(getBinary(oracle, key))\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet koeff = \n\t\t\t\t\t\t\tif \t(type == drop(toBytes(0), 7)) then 36\n\t\t\t\t\t\t\telse if (type == drop(toBytes(1), 7)) then 2\n\t\t\t\t\t\t\telse if (type == drop(toBytes(2), 7)) then 2\n\t\t\t\t\t\t\telse if (type == drop(toBytes(3), 7)) then 2\n\t\t\t\t\t\t\telse if (type == drop(toBytes(4), 7)) then 3\n\t\t\t\t\t\t\telse if (type == drop(toBytes(5), 7)) then 3\n\t\t\t\t\t\t\telse 0\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet valReal = \n\t\t\t\t\t\t\tif \t(type == drop(toBytes(0), 7)) then drop(take(valComplex, 2), 1)\n\t\t\t\t\t\t\telse if (type == drop(toBytes(1), 7)) then drop(take(valComplex, 3), 2)\n\t\t\t\t\t\t\telse if (type == drop(toBytes(2), 7)) then drop(take(valComplex, 4), 3)\n\t\t\t\t\t\t\telse if (type == drop(toBytes(3), 7)) then drop(take(valComplex, 5), 4)\n\t\t\t\t\t\t\telse if (type == drop(toBytes(4), 7)) then drop(take(valComplex, 6), 5)\n\t\t\t\t\t\t\telse if (type == drop(toBytes(5), 7)) then drop(take(valComplex, 7), 6)\n\t\t\t\t\t\t\telse throw(\"Incorrect type of guess provided\")\n\n\t\t\t\t\t\tlet isWin = drop(guess, 1) == valReal\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet isMoneyStillEnough = newFees < (paymentTx.amount - registerBetTxFee) * koeff + minWithdrawFee\n\n\t\t\t\t\t\t(isWin || throw(\"You didn't guess\")) \n\t\t\t\t\t\t&& \n\t\t\t\t\t\t(isMoneyStillEnough || throw(\"Not enough money for withdraw\")) \n\n\t\t\t\t\telse false\n\t\t\t\t\t\n\t\t\t\tcase _ => false\n\t\t\t}\n\t\t}\n\t\telse \n\t\t\tfalse\n\t\t\n\tcase _ => sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)\n\n}\n","type":"ride","id":"smart-accounts/casino.ride","sha":"6fa6df04bc48291e4ae663109411611ba29df470","readonly":true},{"name":"guess.ride","content":"# in the state of this account, there are two fields \n# \"question\" - with some question and \n# \"hashed answer\" - with an answer to this question \n# which is hashed by keccak256 algorithm user can send \n# any number of WAVES from this account if he/she has \n# a correct answer in an attachment of TransferTransaction \n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ACCOUNT #-}\n\nlet this=extract(tx.sender)\n\nmatch(tx)\n{\n case t : TransferTransaction =>\n let correctAnswer = extract(getBinary(this, \"hashed answer\"))\n let answer = keccak256(t.attachment)\n\n correctAnswer == answer \n && !isDefined(t.assetId)\n case s: SetScriptTransaction | DataTransaction =>\n sigVerify(s.bodyBytes, s.proofs[0], s.senderPublicKey)\n case _ => false\n}\n","type":"ride","id":"smart-accounts/guess.ride","sha":"b0afaed1c55813b0dccc0994cb4972364b783702","readonly":true}]},{"name":"smart-assets","sha":"fe04f0c4f57c1f0649d6b88e9b3d4747a94feae8","content":[{"name":"FixedPriceTicket.ride","content":"# This token represents a ticket that can be traded at face value only.\n#\n# Token price is hard coded into the script, and exchange is allowed\n# only at that price. Such a token can be useful for show or sport\n# tickets to help combat ticketing fraud.\n#\n# Additional restriction: a ticket can be burnt only after the show is over.\n#\n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ASSET #-}\n\nlet expiration = 1552064400000 # March 8 2019, 8pm Moscow time\nlet price = 1000000000 # 10 WAVES\nmatch tx {\n case e: ExchangeTransaction =>\n let pair = e.buyOrder.assetPair\n let tradedForWaves = ! isDefined(pair.amountAsset) ||\n ! isDefined(pair.priceAsset)\n tradedForWaves && e.price == price\n case b: BurnTransaction =>\n b.timestamp > expiration\n case _: TransferTransaction | MassTransferTransaction => true\n case _ => false\n}\n","type":"ride","id":"smart-assets/FixedPriceTicket.ride","sha":"497f04af0aad5352152cfcf715b1f5aeb89c2f7e","readonly":true},{"name":"FixedRateExchange.ride","content":"# This token can be bought/sold for WAVES only at a rate published by\n# asset issuer.\n#\n# The issuer publishes the exchange rate with a data transaction on his\n# account. The actual exchange rate must match the published rate up to\n# 7th significant digit.\n#\n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ASSET #-}\n\nlet issuer = Address(base58'3issuerAddress')\nlet assetId = base58'ThisAsset1d'\nmatch tx {\n case ex: ExchangeTransaction =>\n let pair = AssetPair(assetId, unit)\n let rate = extract(getInteger(issuer, \"exchangeRate\"))\n let rateDiff = rate - fraction(100000000, ex.price, ex.amount)\n ex.buyOrder.assetPair == pair && rateDiff > -100 && rateDiff < 100\n case _ => true\n}\n","type":"ride","id":"smart-assets/FixedRateExchange.ride","sha":"13cafa315a9f0bf191803961542f3675e950cd1d","readonly":true},{"name":"HotPotatoToken.ride","content":"# This is a token-game\n# When you receive this token, you have 5000 blocks to transfer it to somebody else,\n# after that 5000 blocks you will have to pay the fee more than 1 Waves to transfer it.\n# you have to pay 10 Waves as fee to burn it, you can transfer it only to an account with >10 Waves\n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ASSET #-}\n\nlet minimumWavesBalance = 10_00_000_000\nlet moveTimeInBlocks = 5000\nlet minimalFeeToMove = 1_0_000_000\nlet minimalFeeToBurn = 5_0_000_000\n\nmatch (tx) {\n case t:TransferTransaction => {\n\n # to get a height of blockchain when HotPotato was received we expect transaction id\n # of incoming transfer transaction in the attachment\n let txId = t.attachment\n\n # script can check that current recipient doesnt hold HotPotato\n # but not now :)\n\n # let currentRecipientBalance = assetBalance(t.recipient, t.assetId)\n let currentRecipientWavesBalance = wavesBalance(t.recipient)\n\n # assetId equals to issue transaction id, so we can get issuer public key (and address) from the issue transaction\n let transaction = transactionById(extract(t.assetId))\n\n match (transaction) {\n case issueTx:IssueTransaction => {\n # issuer is allowed to send tokens without any additional requirements except signature and recipient Waves balance (should be >= 10)\n let transactionByIssuer = t.senderPublicKey == issueTx.senderPublicKey\n if (transactionByIssuer) then {\n if (currentRecipientWavesBalance < minimumWavesBalance) then {\n throw(\"Current balance is less than minimalWavesBalance\")\n }else {\n true\n }\n }else if (size(t.attachment) < 32) then {\n throw(\"Attachment should contain transaction id \")\n }else{\n # getting incoming transaction by id (from the attachment)\n let receiveTx = transactionById(txId)\n match (receiveTx) {\n case recTx:TransferTransaction | MassTransferTransaction => {\n # get the number of block when address get a potato\n let receivedBlockNumber = extract(transactionHeightById(recTx.id))\n # check that we received assets in allowed span\n let receivedAssetInLastNBlocks = (height - receivedBlockNumber) <= moveTimeInBlocks && t.assetId == recTx.assetId\n let feeMore1Waves = t.fee >= minimalFeeToMove\n if (!receivedAssetInLastNBlocks && !feeMore1Waves) then {\n throw(\"You got potato long time ago, now you have to pay 1 WAVES fee\")\n }else {\n receivedAssetInLastNBlocks || feeMore1Waves\n }\n }\n case _ => throw(\"Receive tx should be a transfer\")\n }\n }\n }\n case _ => throw(\"Not issue tx\")\n }\n }\n # we allow to burn a token only if fee > 5 waves\n case burn: BurnTransaction => {\n if (burn.fee < minimalFeeToBurn) then {\n throw(\"You have to pay 5 WAVES to burn this token\")\n }else{\n true\n }\n }\n # MassTransfer and SetAssetScript transactions are allowed only for issuer\n case mass: MassTransferTransaction | SetAssetScriptTransaction => {\n let transaction = transactionById(extract(mass.assetId))\n\n match (transaction) {\n case issueTx:IssueTransaction => {\n mass.senderPublicKey == issueTx.senderPublicKey\n }\n case _ => throw(\"Bad issue tx type\")\n }\n }\n case _ => throw(\"You only can transfer this token\")\n }","type":"ride","id":"smart-assets/HotPotatoToken.ride","sha":"036b7bbf4bbf366d759b15fb008075fe179484bf","readonly":true},{"name":"LicenseToTrade.ride","content":"# For example you want to create an asset that can be traded only by those clients who have some special asset as a license\n# So you can regulate who is able to trade your token or it may be usefull in games,\n# sending this token can give the character an ability to trade or perform other skills\n# or amount of this token can imitate the health points of the players, so you can \"trade\" only if you are alive:)\n#\n# In this script case you can buy or sell SmartAsset only if your WavesCommunity token balance is greater then 10\n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ASSET #-}\n\nlet WCTlicenseToTradeAsset = base58'2CjLFYkp4W4sEAxCjFG9oD3smfhvV6yQnNmiJyexbLdu'\nmatch (tx) {\n case tx:ExchangeTransaction =>\n assetBalance(tx.sellOrder.sender, WCTlicenseToTradeAsset) > 10_00 && assetBalance(tx.buyOrder.sender, WCTlicenseToTradeAsset) > 10_00\n case _ => true\n}","type":"ride","id":"smart-assets/LicenseToTrade.ride","sha":"eafef93751f32c8eea779a7e5c90f181cf46c924","readonly":true},{"name":"MainCoinsTrade.ride","content":"\n# You can disable transfer, masstransfer and burn of the token,\n# Also you can define in what pairs your token can be traded.\n# This token can be traded only with BTC/ETH/LTC/ZEC/DASH/XMR/USD/EUR price assets\n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ASSET #-}\n\nlet BTCId = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'\nlet ETHId = base58'474jTeYx2r2Va35794tCScAXWJG9hU2HcgxzMowaZUnu'\nlet LTCId = base58'HZk1mbfuJpmxU1Fs4AX5MWLVYtctsNcg6e2C6VKqK8zk'\nlet ZECId = base58'BrjUWjndUanm5VsJkbUip8VRYy6LWJePtxya3FNv4TQa'\nlet DASHId = base58'B3uGHFRpSUuGEDWjqB9LWWxafQj8VTvpMucEyoxzws5H'\nlet XMRId = base58'5WvPKSJXzVE2orvbkJ8wsQmmQKqTv9sGBPksV4adViw3'\nlet USDId = base58'Ft8X1v1LTa1ABafufpaCWyVj8KkaxUWE6xBhW6sNFJck'\nlet EURId = base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU'\n\nmatch tx {\n case e : ExchangeTransaction =>\n e.sellOrder.assetPair.priceAsset == BTCId || e.sellOrder.assetPair.priceAsset == ETHId || e.sellOrder.assetPair.priceAsset == LTCId || e.sellOrder.assetPair.priceAsset == ZECId || e.sellOrder.assetPair.priceAsset == DASHId || e.sellOrder.assetPair.priceAsset == XMRId || e.sellOrder.assetPair.priceAsset == USDId || e.sellOrder.assetPair.priceAsset == EURId\n case _:TransferTransaction | MassTransferTransaction | BurnTransaction => false\n case _ => true\n}\n","type":"ride","id":"smart-assets/MainCoinsTrade.ride","sha":"8b08f60327b96779eec6249a2236bff9021de686","readonly":true},{"name":"Medal.ride","content":"# This is a medal token.\n#\n# Medals are awarded to people using Transfer or MassTransfer. The issuer\n# can mint new medals or burn unused ones. The medal asset should have\n# zero decimals.\n#\n# A person who's awarded a medal can not transfer nor sell it,\n# but can give it back to the issuer.\n#\n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ASSET #-}\n\nlet master = addressFromString(\"3masterAddress\")\nmatch tx {\n case t: TransferTransaction =>\n t.sender == master || t.recipient == master\n case mt: MassTransferTransaction =>\n mt.sender == master\n case _: ExchangeTransaction => false\n case _ => true\n}\n","type":"ride","id":"smart-assets/Medal.ride","sha":"9ddf92907b91c8dd697ec3d6ab225f3d97824f96","readonly":true},{"name":"RecipientSignature.ride","content":"\n# General idea of this token is to allow transfer only with recipient's permisson. \n# Token ownership can be used as a proof of physycal object ownership and token transfer as a proof of 'real world' object transfer.\n\n# To use this token:\n# 1. Sender creates tx without proof and sends it to recipient\n# 2. Recipient calculates signature, adds his public key and signature to attachment field. Sends tx back to sender.\n# 3. Sender signs tx with attachment. Tx can now be sent to blockchain\n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ASSET #-}\n\n# Set network byte. 87 for mainnet\nlet NETWORKBYTE = takeRight(toBytes(87), 1)\n\nmatch (tx) {\n # Only allow transfer transactions\n case t:TransferTransaction => {\n # Since smart assets don't have access to proofs, attachment is used, but attachment is also signed.\n # For that reason we will verify signature against tx without attachment\n let txWithoutAttachment = dropRight(t.bodyBytes, 97) + takeRight(toBytes(0), 1)\n\n # Attachment contains recipient public key and signature\n let recipientPublicKeyAndSignature = t.attachment\n let recipientPublicKey = take(recipientPublicKeyAndSignature, 32)\n let recipientSignature = takeRight(recipientPublicKeyAndSignature, 64)\n\n # Get recipient address from public key in attachment\n let recipientPublicKeyHash = take(keccak256(blake2b256(recipientPublicKey)), 20)\n let rpkWithVersionAndByte = takeRight(toBytes(1), 1) + NETWORKBYTE + recipientPublicKeyHash\n let checksum = take(keccak256(blake2b256(rpkWithVersionAndByte)), 4)\n let recipientAddressFromPublicKey = rpkWithVersionAndByte + checksum\n let recipientAddressFromTx = addressFromRecipient(t.recipient).bytes\n \n # Verify that tx.recipient equals recipient from attsachment\n if (recipientAddressFromPublicKey != recipientAddressFromTx) then throw(\n \"Recipient address error:\" + toBase58String(recipientAddressFromPublicKey)\n ) else {\n # Verify recipient signature\n if (!sigVerify(txWithoutAttachment, recipientSignature, recipientPublicKey)) then throw(\n \"Invaid recipient signature:\" + toBase58String(recipientSignature) + \"\\n BodyBytes:\" + toBase64String(txWithoutAttachment)\n ) else {\n true\n }}\n }\n # No exchange or masstransfer\n case _ => false\n }\n","type":"ride","id":"smart-assets/RecipientSignature.ride","sha":"82d6a2b8399054c305694a074ab193bcaa2acc5e","readonly":true},{"name":"ScheduleTrade.ride","content":"\n# Also you can issue an asset that can be traded on DEX only according with some schedule.\n# For example every day from 10 to 19 o’clock, from monday to friday, like on real exchanges.\n\n# First of all you have to publish a data transaction with a schedule for the next week timestamps,\n# and renew it every week (it is possible to automate this task with a cron script)\n\n# This is the example of data transactions with a an approximate height from 10 to 19 o'clock from 25 February to the 1st of March:\n# You can issue an asset that will verify that current blockchain height is between tradeStart and tradeEnd\n# Example or data TX:\n\n# {\n# \"type\": 12,\n# \"data\": {\n# \"fee\": {\n# \"assetId\": \"WAVES\",\n# \"tokens\": \"0.005\"\n# },\n# \"data\": [\n# {\n# \"type\": \"integer\",\n# \"key\": \"mondayTradeStart\",\n# \"value\": 1411748\n# },\n# {\n# \"type\": \"integer\",\n# \"key\": \"mondayTradeEnd\",\n# \"value\": 1412288\n# },\n# {\n# \"type\": \"integer\",\n# \"key\": \"tuesdayTradeStart\",\n# \"value\": 1413188\n# },\n# {\n# \"type\": \"integer\",\n# \"key\": \"tuesdayTradeEnd\",\n# \"value\": 1413728\n# },\n#\n# {\n# \"type\": \"integer\",\n# \"key\": \"wednesdayTradeStart\",\n# \"value\": 1414628\n# },\n# {\n# \"type\": \"integer\",\n# \"key\": \"wednesdayTradeEnd\",\n# \"value\": 1415168\n# },\n# {\n# \"type\": \"integer\",\n# \"key\": \"thursdayTradeStart\",\n# \"value\": 1416068\n# },\n# {\n# \"type\": \"integer\",\n# \"key\": \"thursdayTradeEnd\",\n# \"value\": 1416608\n# },\n# {\n# \"type\": \"integer\",\n# \"key\": \"fridayTradeStart\",\n# \"value\": 1417508\n# },\n# {\n# \"type\": \"integer\",\n# \"key\": \"fridayTradeEnd\",\n# \"value\": 1418048\n# }\n# ]\n# }\n# }\n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ASSET #-}\n\nlet timeOracleAddress = Address(base58'3P4V5znH4AvkpNVZ2EKSmkdSCeJppsZ4x8F')\nmatch (tx) {\n case _:ExchangeTransaction =>\n let mondayTradeStart = extract(getInteger(timeOracleAddress, \"mondayTradeStart\"))\n let mondayTradeEnd = extract(getInteger(timeOracleAddress, \"mondayTradeEnd\"))\n let tuesdayTradeStart = extract(getInteger(timeOracleAddress, \"tuesdayTradeStart\"))\n let tuesdayTradeEnd = extract(getInteger(timeOracleAddress, \"tuesdayTradeEnd\"))\n let wednesdayTradeStart = extract(getInteger(timeOracleAddress, \"wednesdayTradeStart\"))\n let wednesdayTradeEnd = extract(getInteger(timeOracleAddress, \"wednesdayTradeEnd\"))\n let thursdayTradeStart = extract(getInteger(timeOracleAddress, \"thursdayTradeStart\"))\n let thursdayTradeEnd = extract(getInteger(timeOracleAddress, \"thursdayTradeEnd\"))\n let fridayTradeStart = extract(getInteger(timeOracleAddress, \"fridayTradeStart\"))\n let fridayTradeEnd = extract(getInteger(timeOracleAddress, \"fridayTradeEnd\"))\n\n (height >= mondayTradeStart && height <= mondayTradeEnd) || (height >= tuesdayTradeStart && height <= tuesdayTradeEnd)||\n (height >= wednesdayTradeStart && height <= wednesdayTradeEnd) || (height >= thursdayTradeStart && height <= thursdayTradeEnd)||\n (height >= fridayTradeStart && height <= fridayTradeEnd)\n case _ => true\n}\n","type":"ride","id":"smart-assets/ScheduleTrade.ride","sha":"371e16fdae2a0a5b3bd1e94ad7cb3b6aeba2a351","readonly":true},{"name":"Taxation.ride","content":"# This script allows to apply taxation models to assets\n# Token owners can transfer it only if they pay taxes to the issuer\n# The tax size is defined by token issuer in data transaction\n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ASSET #-}\n\nmatch (tx) {\n # we allow only mass transfer transactions\n # first transfer in MassTransfer should always go to the issuer\n case mtt:MassTransferTransaction => {\n let firstRecipient = mtt.transfers[0].recipient\n let firstAmount = mtt.transfers[0].amount\n let assetId = extract(mtt.assetId)\n let issueTransaction = transactionById(assetId)\n\n # assetId equals to issue transaction id, so we can get issuer public key (and address) from the issue transaction\n match(issueTransaction) {\n case issueTx: IssueTransaction => {\n let issuerAddress = addressFromPublicKey(issueTx.senderPublicKey)\n # to set tax amount, issuer should make a data transaction with integer value by key matching assetId\n let taxSize = extract(getInteger(issuerAddress, toBase58String(assetId)))\n\n firstRecipient == issuerAddress # recipient for the first transfer should be the issuer address\n &&\n firstAmount >= mtt.totalAmount / 100 * taxSize # tax amount can't be less than defined in data transaction\n }\n case _ => false\n }\n }\n case _ => false\n }","type":"ride","id":"smart-assets/Taxation.ride","sha":"eb92f69eaa5dc8b6e78d6807fa8bf4a2acff365e","readonly":true},{"name":"VerifiedTrading.ride","content":"# Set Smart asset to trade only with BetterTokens verified assets and Waves.\n\n{-# STDLIB_VERSION 2 #-}\n{-# CONTENT_TYPE EXPRESSION #-}\n{-# SCRIPT_TYPE ASSET #-}\n\n# BetterTokens Oracle address.\nlet addr = Address(base58'3P6t5mKGwVDkyjFhtUqw4NnecyC3DRpLfkw')\n\nmatch (tx) {\n case e:ExchangeTransaction => \n # Determine if Smart asset is paired with Waves.\n let withWaves = (!isDefined(e.sellOrder.assetPair.priceAsset) || !isDefined(e.sellOrder.assetPair.amountAsset))\n\n if(withWaves == false) then {\n # If paired with another token, check BetterToken status.\n #\n # We cannot determine if Smart asset is amount or price asset in the pair\n # that is why we check in both places.\n let priceAssetKey = \"status_<\" + toBase58String(extract(e.sellOrder.assetPair.priceAsset)) + \">\"\n let priceAssetInOracle = (getInteger(addr, priceAssetKey) == 2)\n\n let amountAssetKey = \"status_<\" + toBase58String(extract(e.sellOrder.assetPair.amountAsset)) + \">\"\n let amountAssetInOracle = (getInteger(addr, priceAssetKey) == 2)\n \n priceAssetInOracle || amountAssetInOracle\n } else {\n true\n }\n case _ => true\n}","type":"ride","id":"smart-assets/VerifiedTrading.ride","sha":"ebe4db16345d2a5ed9ff1d871a5f092d8444a118","readonly":true}]}],"files":{"welcome.md":{"name":"welcome.md","content":"# Waves dApps\n \n### Ride language\n\nWaves blockchain uses functional programming language based on expressions called RIDE. It is simple, yet efficient. \nPlease check [ride documentation](https://docs.wavesplatform.com/en/ride)\n\n\n### Writing dApps\n\nA dApp, or decentralised application, is an application, that executes in a distributed computer system, for instance, \nin a blockchain. In particular, Waves dApp is an application, written in RIDE language and executed on the nodes of the \nWaves blockchain. Check [writing dApps](https://docs.wavesplatform.com/en/building-apps/smart-contracts/writing-dapps)\nsection\n\n### Examples\n\nIDE contains a lot of runnable Scripts, dApps and tests to help you get used to Ride language.\nCheck them in Library menu\n\n\n### Other tools\n\nWeb IDE is just a starting point. For professional development we recommend using our offline tools.\nCheck [Professional toolkit for coding with RIDE](https://blog.wavesplatform.com/how-to-build-deploy-and-test-a-waves-ride-dapp-785311f58c2)\n\n1. [VSCode plugin](https://marketplace.visualstudio.com/items?itemName=wavesplatform.waves-ride)\n2. [Surfboard CLI tool](https://www.npmjs.com/package/@waves/surfboard)\n3. [Waves private node](https://hub.docker.com/r/wavesplatform/waves-private-node)\n\n\n### Video Tutorials \n \n1. [Using Smart Contracts with Waves Console](https://www.youtube.com/watch?v=sOZuE9Ebfko&t=557s) \n2. [Multi Signature Using Waves IDE & WavesJ](https://www.youtube.com/watch?v=o2msjSo0y0o&t=32s) \n3. [Escrow Using Waves IDE & WavesJ](https://www.youtube.com/watch?v=31dwYcgb65M&t=381s) \n4. [Waves Console Commands Example](https://www.youtube.com/watch?v=gBgLjg6nrvA&=&feature=youtu.be)\n5. [Create MultiSig Account via Waves IDE tools](https://www.youtube.com/watch?v=8DKRGnwsBjk) \n\n\n### Hitchhiker’s Guide to Waves Smart Contracts\n\n1. [The First Part](https://blog.wavesplatform.com/the-hitchhikers-guide-to-waves-smart-contracts-part-1-b80aa47a745a) \n2. [The Second Part](https://blog.wavesplatform.com/the-hitchhikers-guide-to-waves-smart-contracts-part-2-44621fd5a007)\n \n \n### Forum\n\n1. [DevTools: IDE + REPL](https://forum.wavesplatform.com/t/devtools-ide-repl/1992)\n\nThis topic is for discussing your issues, requests, feedback and for announcements related to Waves Ride IDE and REPL\n\n","type":"md","id":"welcome.md","sha":"4d9bab57608e43e5c300503a6de305ef4005fd65","readonly":true}}} \ No newline at end of file diff --git a/src/json-data/test-typings.json b/src/json-data/test-typings.json index 7d8961ed..7f6cf0d2 100644 --- a/src/json-data/test-typings.json +++ b/src/json-data/test-typings.json @@ -1 +1 @@ -"/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved. \nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0 \n \nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \nMERCHANTABLITY OR NON-INFRINGEMENT. \n \nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// \r\n\n\n/////////////////////////////\r\n/// ECMAScript APIs\r\n/////////////////////////////\r\n\r\ndeclare var NaN: number;\r\ndeclare var Infinity: number;\r\n\r\n/**\r\n * Evaluates JavaScript code and executes it.\r\n * @param x A String value that contains valid JavaScript code.\r\n */\r\ndeclare function eval(x: string): any;\r\n\r\n/**\r\n * Converts a string to an integer.\r\n * @param s A string to convert into a number.\r\n * @param radix A value between 2 and 36 that specifies the base of the number in numString.\r\n * If this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\n * All other strings are considered decimal.\r\n */\r\ndeclare function parseInt(s: string, radix?: number): number;\r\n\r\n/**\r\n * Converts a string to a floating-point number.\r\n * @param string A string that contains a floating-point number.\r\n */\r\ndeclare function parseFloat(string: string): number;\r\n\r\n/**\r\n * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).\r\n * @param number A numeric value.\r\n */\r\ndeclare function isNaN(number: number): boolean;\r\n\r\n/**\r\n * Determines whether a supplied number is finite.\r\n * @param number Any numeric value.\r\n */\r\ndeclare function isFinite(number: number): boolean;\r\n\r\n/**\r\n * Gets the unencoded version of an encoded Uniform Resource Identifier (URI).\r\n * @param encodedURI A value representing an encoded URI.\r\n */\r\ndeclare function decodeURI(encodedURI: string): string;\r\n\r\n/**\r\n * Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).\r\n * @param encodedURIComponent A value representing an encoded URI component.\r\n */\r\ndeclare function decodeURIComponent(encodedURIComponent: string): string;\r\n\r\n/**\r\n * Encodes a text string as a valid Uniform Resource Identifier (URI)\r\n * @param uri A value representing an encoded URI.\r\n */\r\ndeclare function encodeURI(uri: string): string;\r\n\r\n/**\r\n * Encodes a text string as a valid component of a Uniform Resource Identifier (URI).\r\n * @param uriComponent A value representing an encoded URI component.\r\n */\r\ndeclare function encodeURIComponent(uriComponent: string | number | boolean): string;\r\n\r\n/**\r\n * Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.\r\n * @param string A string value\r\n */\r\ndeclare function escape(string: string): string;\r\n\r\n/**\r\n * Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.\r\n * @param string A string value\r\n */\r\ndeclare function unescape(string: string): string;\r\n\r\ninterface Symbol {\r\n /** Returns a string representation of an object. */\r\n toString(): string;\r\n\r\n /** Returns the primitive value of the specified object. */\r\n valueOf(): symbol;\r\n}\r\n\r\ndeclare type PropertyKey = string | number | symbol;\r\n\r\ninterface PropertyDescriptor {\r\n configurable?: boolean;\r\n enumerable?: boolean;\r\n value?: any;\r\n writable?: boolean;\r\n get?(): any;\r\n set?(v: any): void;\r\n}\r\n\r\ninterface PropertyDescriptorMap {\r\n [s: string]: PropertyDescriptor;\r\n}\r\n\r\ninterface Object {\r\n /** The initial value of Object.prototype.constructor is the standard built-in Object constructor. */\r\n constructor: Function;\r\n\r\n /** Returns a string representation of an object. */\r\n toString(): string;\r\n\r\n /** Returns a date converted to a string using the current locale. */\r\n toLocaleString(): string;\r\n\r\n /** Returns the primitive value of the specified object. */\r\n valueOf(): Object;\r\n\r\n /**\r\n * Determines whether an object has a property with the specified name.\r\n * @param v A property name.\r\n */\r\n hasOwnProperty(v: PropertyKey): boolean;\r\n\r\n /**\r\n * Determines whether an object exists in another object's prototype chain.\r\n * @param v Another object whose prototype chain is to be checked.\r\n */\r\n isPrototypeOf(v: Object): boolean;\r\n\r\n /**\r\n * Determines whether a specified property is enumerable.\r\n * @param v A property name.\r\n */\r\n propertyIsEnumerable(v: PropertyKey): boolean;\r\n}\r\n\r\ninterface ObjectConstructor {\r\n new(value?: any): Object;\r\n (): any;\r\n (value: any): any;\r\n\r\n /** A reference to the prototype for a class of objects. */\r\n readonly prototype: Object;\r\n\r\n /**\r\n * Returns the prototype of an object.\r\n * @param o The object that references the prototype.\r\n */\r\n getPrototypeOf(o: any): any;\r\n\r\n /**\r\n * Gets the own property descriptor of the specified object.\r\n * An own property descriptor is one that is defined directly on the object and is not inherited from the object's prototype.\r\n * @param o Object that contains the property.\r\n * @param p Name of the property.\r\n */\r\n getOwnPropertyDescriptor(o: any, p: PropertyKey): PropertyDescriptor | undefined;\r\n\r\n /**\r\n * Returns the names of the own properties of an object. The own properties of an object are those that are defined directly\r\n * on that object, and are not inherited from the object's prototype. The properties of an object include both fields (objects) and functions.\r\n * @param o Object that contains the own properties.\r\n */\r\n getOwnPropertyNames(o: any): string[];\r\n\r\n /**\r\n * Creates an object that has the specified prototype or that has null prototype.\r\n * @param o Object to use as a prototype. May be null.\r\n */\r\n create(o: object | null): any;\r\n\r\n /**\r\n * Creates an object that has the specified prototype, and that optionally contains specified properties.\r\n * @param o Object to use as a prototype. May be null\r\n * @param properties JavaScript object that contains one or more property descriptors.\r\n */\r\n create(o: object | null, properties: PropertyDescriptorMap & ThisType): any;\r\n\r\n /**\r\n * Adds a property to an object, or modifies attributes of an existing property.\r\n * @param o Object on which to add or modify the property. This can be a native JavaScript object (that is, a user-defined object or a built in object) or a DOM object.\r\n * @param p The property name.\r\n * @param attributes Descriptor for the property. It can be for a data property or an accessor property.\r\n */\r\n defineProperty(o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType): any;\r\n\r\n /**\r\n * Adds one or more properties to an object, and/or modifies attributes of existing properties.\r\n * @param o Object on which to add or modify the properties. This can be a native JavaScript object or a DOM object.\r\n * @param properties JavaScript object that contains one or more descriptor objects. Each descriptor object describes a data property or an accessor property.\r\n */\r\n defineProperties(o: any, properties: PropertyDescriptorMap & ThisType): any;\r\n\r\n /**\r\n * Prevents the modification of attributes of existing properties, and prevents the addition of new properties.\r\n * @param o Object on which to lock the attributes.\r\n */\r\n seal(o: T): T;\r\n\r\n /**\r\n * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.\r\n * @param o Object on which to lock the attributes.\r\n */\r\n freeze(a: T[]): readonly T[];\r\n\r\n /**\r\n * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.\r\n * @param o Object on which to lock the attributes.\r\n */\r\n freeze(f: T): T;\r\n\r\n /**\r\n * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.\r\n * @param o Object on which to lock the attributes.\r\n */\r\n freeze(o: T): Readonly;\r\n\r\n /**\r\n * Prevents the addition of new properties to an object.\r\n * @param o Object to make non-extensible.\r\n */\r\n preventExtensions(o: T): T;\r\n\r\n /**\r\n * Returns true if existing property attributes cannot be modified in an object and new properties cannot be added to the object.\r\n * @param o Object to test.\r\n */\r\n isSealed(o: any): boolean;\r\n\r\n /**\r\n * Returns true if existing property attributes and values cannot be modified in an object, and new properties cannot be added to the object.\r\n * @param o Object to test.\r\n */\r\n isFrozen(o: any): boolean;\r\n\r\n /**\r\n * Returns a value that indicates whether new properties can be added to an object.\r\n * @param o Object to test.\r\n */\r\n isExtensible(o: any): boolean;\r\n\r\n /**\r\n * Returns the names of the enumerable string properties and methods of an object.\r\n * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\r\n */\r\n keys(o: object): string[];\r\n}\r\n\r\n/**\r\n * Provides functionality common to all JavaScript objects.\r\n */\r\ndeclare var Object: ObjectConstructor;\r\n\r\n/**\r\n * Creates a new function.\r\n */\r\ninterface Function {\r\n /**\r\n * Calls the function, substituting the specified object for the this value of the function, and the specified array for the arguments of the function.\r\n * @param thisArg The object to be used as the this object.\r\n * @param argArray A set of arguments to be passed to the function.\r\n */\r\n apply(this: Function, thisArg: any, argArray?: any): any;\r\n\r\n /**\r\n * Calls a method of an object, substituting another object for the current object.\r\n * @param thisArg The object to be used as the current object.\r\n * @param argArray A list of arguments to be passed to the method.\r\n */\r\n call(this: Function, thisArg: any, ...argArray: any[]): any;\r\n\r\n /**\r\n * For a given function, creates a bound function that has the same body as the original function.\r\n * The this object of the bound function is associated with the specified object, and has the specified initial parameters.\r\n * @param thisArg An object to which the this keyword can refer inside the new function.\r\n * @param argArray A list of arguments to be passed to the new function.\r\n */\r\n bind(this: Function, thisArg: any, ...argArray: any[]): any;\r\n\r\n /** Returns a string representation of a function. */\r\n toString(): string;\r\n\r\n prototype: any;\r\n readonly length: number;\r\n\r\n // Non-standard extensions\r\n arguments: any;\r\n caller: Function;\r\n}\r\n\r\ninterface FunctionConstructor {\r\n /**\r\n * Creates a new function.\r\n * @param args A list of arguments the function accepts.\r\n */\r\n new(...args: string[]): Function;\r\n (...args: string[]): Function;\r\n readonly prototype: Function;\r\n}\r\n\r\ndeclare var Function: FunctionConstructor;\r\n\r\n/**\r\n * Extracts the type of the 'this' parameter of a function type, or 'unknown' if the function type has no 'this' parameter.\r\n */\r\ntype ThisParameterType = T extends (this: unknown, ...args: any[]) => any ? unknown : T extends (this: infer U, ...args: any[]) => any ? U : unknown;\r\n\r\n/**\r\n * Removes the 'this' parameter from a function type.\r\n */\r\ntype OmitThisParameter = unknown extends ThisParameterType ? T : T extends (...args: infer A) => infer R ? (...args: A) => R : T;\r\n\r\ninterface CallableFunction extends Function {\r\n /**\r\n * Calls the function with the specified object as the this value and the elements of specified array as the arguments.\r\n * @param thisArg The object to be used as the this object.\r\n * @param args An array of argument values to be passed to the function.\r\n */\r\n apply(this: (this: T) => R, thisArg: T): R;\r\n apply(this: (this: T, ...args: A) => R, thisArg: T, args: A): R;\r\n\r\n /**\r\n * Calls the function with the specified object as the this value and the specified rest arguments as the arguments.\r\n * @param thisArg The object to be used as the this object.\r\n * @param args Argument values to be passed to the function.\r\n */\r\n call(this: (this: T, ...args: A) => R, thisArg: T, ...args: A): R;\r\n\r\n /**\r\n * For a given function, creates a bound function that has the same body as the original function.\r\n * The this object of the bound function is associated with the specified object, and has the specified initial parameters.\r\n * @param thisArg The object to be used as the this object.\r\n * @param args Arguments to bind to the parameters of the function.\r\n */\r\n bind(this: T, thisArg: ThisParameterType): OmitThisParameter;\r\n bind(this: (this: T, arg0: A0, ...args: A) => R, thisArg: T, arg0: A0): (...args: A) => R;\r\n bind(this: (this: T, arg0: A0, arg1: A1, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1): (...args: A) => R;\r\n bind(this: (this: T, arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2): (...args: A) => R;\r\n bind(this: (this: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3): (...args: A) => R;\r\n bind(this: (this: T, ...args: AX[]) => R, thisArg: T, ...args: AX[]): (...args: AX[]) => R;\r\n}\r\n\r\ninterface NewableFunction extends Function {\r\n /**\r\n * Calls the function with the specified object as the this value and the elements of specified array as the arguments.\r\n * @param thisArg The object to be used as the this object.\r\n * @param args An array of argument values to be passed to the function.\r\n */\r\n apply(this: new () => T, thisArg: T): void;\r\n apply(this: new (...args: A) => T, thisArg: T, args: A): void;\r\n\r\n /**\r\n * Calls the function with the specified object as the this value and the specified rest arguments as the arguments.\r\n * @param thisArg The object to be used as the this object.\r\n * @param args Argument values to be passed to the function.\r\n */\r\n call(this: new (...args: A) => T, thisArg: T, ...args: A): void;\r\n\r\n /**\r\n * For a given function, creates a bound function that has the same body as the original function.\r\n * The this object of the bound function is associated with the specified object, and has the specified initial parameters.\r\n * @param thisArg The object to be used as the this object.\r\n * @param args Arguments to bind to the parameters of the function.\r\n */\r\n bind(this: T, thisArg: any): T;\r\n bind(this: new (arg0: A0, ...args: A) => R, thisArg: any, arg0: A0): new (...args: A) => R;\r\n bind(this: new (arg0: A0, arg1: A1, ...args: A) => R, thisArg: any, arg0: A0, arg1: A1): new (...args: A) => R;\r\n bind(this: new (arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: any, arg0: A0, arg1: A1, arg2: A2): new (...args: A) => R;\r\n bind(this: new (arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: any, arg0: A0, arg1: A1, arg2: A2, arg3: A3): new (...args: A) => R;\r\n bind(this: new (...args: AX[]) => R, thisArg: any, ...args: AX[]): new (...args: AX[]) => R;\r\n}\r\n\r\ninterface IArguments {\r\n [index: number]: any;\r\n length: number;\r\n callee: Function;\r\n}\r\n\r\ninterface String {\r\n /** Returns a string representation of a string. */\r\n toString(): string;\r\n\r\n /**\r\n * Returns the character at the specified index.\r\n * @param pos The zero-based index of the desired character.\r\n */\r\n charAt(pos: number): string;\r\n\r\n /**\r\n * Returns the Unicode value of the character at the specified location.\r\n * @param index The zero-based index of the desired character. If there is no character at the specified index, NaN is returned.\r\n */\r\n charCodeAt(index: number): number;\r\n\r\n /**\r\n * Returns a string that contains the concatenation of two or more strings.\r\n * @param strings The strings to append to the end of the string.\r\n */\r\n concat(...strings: string[]): string;\r\n\r\n /**\r\n * Returns the position of the first occurrence of a substring.\r\n * @param searchString The substring to search for in the string\r\n * @param position The index at which to begin searching the String object. If omitted, search starts at the beginning of the string.\r\n */\r\n indexOf(searchString: string, position?: number): number;\r\n\r\n /**\r\n * Returns the last occurrence of a substring in the string.\r\n * @param searchString The substring to search for.\r\n * @param position The index at which to begin searching. If omitted, the search begins at the end of the string.\r\n */\r\n lastIndexOf(searchString: string, position?: number): number;\r\n\r\n /**\r\n * Determines whether two strings are equivalent in the current locale.\r\n * @param that String to compare to target string\r\n */\r\n localeCompare(that: string): number;\r\n\r\n /**\r\n * Matches a string with a regular expression, and returns an array containing the results of that search.\r\n * @param regexp A variable name or string literal containing the regular expression pattern and flags.\r\n */\r\n match(regexp: string | RegExp): RegExpMatchArray | null;\r\n\r\n /**\r\n * Replaces text in a string, using a regular expression or search string.\r\n * @param searchValue A string to search for.\r\n * @param replaceValue A string containing the text to replace for every successful match of searchValue in this string.\r\n */\r\n replace(searchValue: string | RegExp, replaceValue: string): string;\r\n\r\n /**\r\n * Replaces text in a string, using a regular expression or search string.\r\n * @param searchValue A string to search for.\r\n * @param replacer A function that returns the replacement text.\r\n */\r\n replace(searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;\r\n\r\n /**\r\n * Finds the first substring match in a regular expression search.\r\n * @param regexp The regular expression pattern and applicable flags.\r\n */\r\n search(regexp: string | RegExp): number;\r\n\r\n /**\r\n * Returns a section of a string.\r\n * @param start The index to the beginning of the specified portion of stringObj.\r\n * @param end The index to the end of the specified portion of stringObj. The substring includes the characters up to, but not including, the character indicated by end.\r\n * If this value is not specified, the substring continues to the end of stringObj.\r\n */\r\n slice(start?: number, end?: number): string;\r\n\r\n /**\r\n * Split a string into substrings using the specified separator and return them as an array.\r\n * @param separator A string that identifies character or characters to use in separating the string. If omitted, a single-element array containing the entire string is returned.\r\n * @param limit A value used to limit the number of elements returned in the array.\r\n */\r\n split(separator: string | RegExp, limit?: number): string[];\r\n\r\n /**\r\n * Returns the substring at the specified location within a String object.\r\n * @param start The zero-based index number indicating the beginning of the substring.\r\n * @param end Zero-based index number indicating the end of the substring. The substring includes the characters up to, but not including, the character indicated by end.\r\n * If end is omitted, the characters from start through the end of the original string are returned.\r\n */\r\n substring(start: number, end?: number): string;\r\n\r\n /** Converts all the alphabetic characters in a string to lowercase. */\r\n toLowerCase(): string;\r\n\r\n /** Converts all alphabetic characters to lowercase, taking into account the host environment's current locale. */\r\n toLocaleLowerCase(locales?: string | string[]): string;\r\n\r\n /** Converts all the alphabetic characters in a string to uppercase. */\r\n toUpperCase(): string;\r\n\r\n /** Returns a string where all alphabetic characters have been converted to uppercase, taking into account the host environment's current locale. */\r\n toLocaleUpperCase(locales?: string | string[]): string;\r\n\r\n /** Removes the leading and trailing white space and line terminator characters from a string. */\r\n trim(): string;\r\n\r\n /** Returns the length of a String object. */\r\n readonly length: number;\r\n\r\n // IE extensions\r\n /**\r\n * Gets a substring beginning at the specified location and having the specified length.\r\n * @param from The starting position of the desired substring. The index of the first character in the string is zero.\r\n * @param length The number of characters to include in the returned substring.\r\n */\r\n substr(from: number, length?: number): string;\r\n\r\n /** Returns the primitive value of the specified object. */\r\n valueOf(): string;\r\n\r\n readonly [index: number]: string;\r\n}\r\n\r\ninterface StringConstructor {\r\n new(value?: any): String;\r\n (value?: any): string;\r\n readonly prototype: String;\r\n fromCharCode(...codes: number[]): string;\r\n}\r\n\r\n/**\r\n * Allows manipulation and formatting of text strings and determination and location of substrings within strings.\r\n */\r\ndeclare var String: StringConstructor;\r\n\r\ninterface Boolean {\r\n /** Returns the primitive value of the specified object. */\r\n valueOf(): boolean;\r\n}\r\n\r\ninterface BooleanConstructor {\r\n new(value?: any): Boolean;\r\n (value?: T): boolean;\r\n readonly prototype: Boolean;\r\n}\r\n\r\ndeclare var Boolean: BooleanConstructor;\r\n\r\ninterface Number {\r\n /**\r\n * Returns a string representation of an object.\r\n * @param radix Specifies a radix for converting numeric values to strings. This value is only used for numbers.\r\n */\r\n toString(radix?: number): string;\r\n\r\n /**\r\n * Returns a string representing a number in fixed-point notation.\r\n * @param fractionDigits Number of digits after the decimal point. Must be in the range 0 - 20, inclusive.\r\n */\r\n toFixed(fractionDigits?: number): string;\r\n\r\n /**\r\n * Returns a string containing a number represented in exponential notation.\r\n * @param fractionDigits Number of digits after the decimal point. Must be in the range 0 - 20, inclusive.\r\n */\r\n toExponential(fractionDigits?: number): string;\r\n\r\n /**\r\n * Returns a string containing a number represented either in exponential or fixed-point notation with a specified number of digits.\r\n * @param precision Number of significant digits. Must be in the range 1 - 21, inclusive.\r\n */\r\n toPrecision(precision?: number): string;\r\n\r\n /** Returns the primitive value of the specified object. */\r\n valueOf(): number;\r\n}\r\n\r\ninterface NumberConstructor {\r\n new(value?: any): Number;\r\n (value?: any): number;\r\n readonly prototype: Number;\r\n\r\n /** The largest number that can be represented in JavaScript. Equal to approximately 1.79E+308. */\r\n readonly MAX_VALUE: number;\r\n\r\n /** The closest number to zero that can be represented in JavaScript. Equal to approximately 5.00E-324. */\r\n readonly MIN_VALUE: number;\r\n\r\n /**\r\n * A value that is not a number.\r\n * In equality comparisons, NaN does not equal any value, including itself. To test whether a value is equivalent to NaN, use the isNaN function.\r\n */\r\n readonly NaN: number;\r\n\r\n /**\r\n * A value that is less than the largest negative number that can be represented in JavaScript.\r\n * JavaScript displays NEGATIVE_INFINITY values as -infinity.\r\n */\r\n readonly NEGATIVE_INFINITY: number;\r\n\r\n /**\r\n * A value greater than the largest number that can be represented in JavaScript.\r\n * JavaScript displays POSITIVE_INFINITY values as infinity.\r\n */\r\n readonly POSITIVE_INFINITY: number;\r\n}\r\n\r\n/** An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers. */\r\ndeclare var Number: NumberConstructor;\r\n\r\ninterface TemplateStringsArray extends ReadonlyArray {\r\n readonly raw: readonly string[];\r\n}\r\n\r\n/**\r\n * The type of `import.meta`.\r\n *\r\n * If you need to declare that a given property exists on `import.meta`,\r\n * this type may be augmented via interface merging.\r\n */\r\ninterface ImportMeta {\r\n}\r\n\r\ninterface Math {\r\n /** The mathematical constant e. This is Euler's number, the base of natural logarithms. */\r\n readonly E: number;\r\n /** The natural logarithm of 10. */\r\n readonly LN10: number;\r\n /** The natural logarithm of 2. */\r\n readonly LN2: number;\r\n /** The base-2 logarithm of e. */\r\n readonly LOG2E: number;\r\n /** The base-10 logarithm of e. */\r\n readonly LOG10E: number;\r\n /** Pi. This is the ratio of the circumference of a circle to its diameter. */\r\n readonly PI: number;\r\n /** The square root of 0.5, or, equivalently, one divided by the square root of 2. */\r\n readonly SQRT1_2: number;\r\n /** The square root of 2. */\r\n readonly SQRT2: number;\r\n /**\r\n * Returns the absolute value of a number (the value without regard to whether it is positive or negative).\r\n * For example, the absolute value of -5 is the same as the absolute value of 5.\r\n * @param x A numeric expression for which the absolute value is needed.\r\n */\r\n abs(x: number): number;\r\n /**\r\n * Returns the arc cosine (or inverse cosine) of a number.\r\n * @param x A numeric expression.\r\n */\r\n acos(x: number): number;\r\n /**\r\n * Returns the arcsine of a number.\r\n * @param x A numeric expression.\r\n */\r\n asin(x: number): number;\r\n /**\r\n * Returns the arctangent of a number.\r\n * @param x A numeric expression for which the arctangent is needed.\r\n */\r\n atan(x: number): number;\r\n /**\r\n * Returns the angle (in radians) from the X axis to a point.\r\n * @param y A numeric expression representing the cartesian y-coordinate.\r\n * @param x A numeric expression representing the cartesian x-coordinate.\r\n */\r\n atan2(y: number, x: number): number;\r\n /**\r\n * Returns the smallest integer greater than or equal to its numeric argument.\r\n * @param x A numeric expression.\r\n */\r\n ceil(x: number): number;\r\n /**\r\n * Returns the cosine of a number.\r\n * @param x A numeric expression that contains an angle measured in radians.\r\n */\r\n cos(x: number): number;\r\n /**\r\n * Returns e (the base of natural logarithms) raised to a power.\r\n * @param x A numeric expression representing the power of e.\r\n */\r\n exp(x: number): number;\r\n /**\r\n * Returns the greatest integer less than or equal to its numeric argument.\r\n * @param x A numeric expression.\r\n */\r\n floor(x: number): number;\r\n /**\r\n * Returns the natural logarithm (base e) of a number.\r\n * @param x A numeric expression.\r\n */\r\n log(x: number): number;\r\n /**\r\n * Returns the larger of a set of supplied numeric expressions.\r\n * @param values Numeric expressions to be evaluated.\r\n */\r\n max(...values: number[]): number;\r\n /**\r\n * Returns the smaller of a set of supplied numeric expressions.\r\n * @param values Numeric expressions to be evaluated.\r\n */\r\n min(...values: number[]): number;\r\n /**\r\n * Returns the value of a base expression taken to a specified power.\r\n * @param x The base value of the expression.\r\n * @param y The exponent value of the expression.\r\n */\r\n pow(x: number, y: number): number;\r\n /** Returns a pseudorandom number between 0 and 1. */\r\n random(): number;\r\n /**\r\n * Returns a supplied numeric expression rounded to the nearest integer.\r\n * @param x The value to be rounded to the nearest integer.\r\n */\r\n round(x: number): number;\r\n /**\r\n * Returns the sine of a number.\r\n * @param x A numeric expression that contains an angle measured in radians.\r\n */\r\n sin(x: number): number;\r\n /**\r\n * Returns the square root of a number.\r\n * @param x A numeric expression.\r\n */\r\n sqrt(x: number): number;\r\n /**\r\n * Returns the tangent of a number.\r\n * @param x A numeric expression that contains an angle measured in radians.\r\n */\r\n tan(x: number): number;\r\n}\r\n/** An intrinsic object that provides basic mathematics functionality and constants. */\r\ndeclare var Math: Math;\r\n\r\n/** Enables basic storage and retrieval of dates and times. */\r\ninterface Date {\r\n /** Returns a string representation of a date. The format of the string depends on the locale. */\r\n toString(): string;\r\n /** Returns a date as a string value. */\r\n toDateString(): string;\r\n /** Returns a time as a string value. */\r\n toTimeString(): string;\r\n /** Returns a value as a string value appropriate to the host environment's current locale. */\r\n toLocaleString(): string;\r\n /** Returns a date as a string value appropriate to the host environment's current locale. */\r\n toLocaleDateString(): string;\r\n /** Returns a time as a string value appropriate to the host environment's current locale. */\r\n toLocaleTimeString(): string;\r\n /** Returns the stored time value in milliseconds since midnight, January 1, 1970 UTC. */\r\n valueOf(): number;\r\n /** Gets the time value in milliseconds. */\r\n getTime(): number;\r\n /** Gets the year, using local time. */\r\n getFullYear(): number;\r\n /** Gets the year using Universal Coordinated Time (UTC). */\r\n getUTCFullYear(): number;\r\n /** Gets the month, using local time. */\r\n getMonth(): number;\r\n /** Gets the month of a Date object using Universal Coordinated Time (UTC). */\r\n getUTCMonth(): number;\r\n /** Gets the day-of-the-month, using local time. */\r\n getDate(): number;\r\n /** Gets the day-of-the-month, using Universal Coordinated Time (UTC). */\r\n getUTCDate(): number;\r\n /** Gets the day of the week, using local time. */\r\n getDay(): number;\r\n /** Gets the day of the week using Universal Coordinated Time (UTC). */\r\n getUTCDay(): number;\r\n /** Gets the hours in a date, using local time. */\r\n getHours(): number;\r\n /** Gets the hours value in a Date object using Universal Coordinated Time (UTC). */\r\n getUTCHours(): number;\r\n /** Gets the minutes of a Date object, using local time. */\r\n getMinutes(): number;\r\n /** Gets the minutes of a Date object using Universal Coordinated Time (UTC). */\r\n getUTCMinutes(): number;\r\n /** Gets the seconds of a Date object, using local time. */\r\n getSeconds(): number;\r\n /** Gets the seconds of a Date object using Universal Coordinated Time (UTC). */\r\n getUTCSeconds(): number;\r\n /** Gets the milliseconds of a Date, using local time. */\r\n getMilliseconds(): number;\r\n /** Gets the milliseconds of a Date object using Universal Coordinated Time (UTC). */\r\n getUTCMilliseconds(): number;\r\n /** Gets the difference in minutes between the time on the local computer and Universal Coordinated Time (UTC). */\r\n getTimezoneOffset(): number;\r\n /**\r\n * Sets the date and time value in the Date object.\r\n * @param time A numeric value representing the number of elapsed milliseconds since midnight, January 1, 1970 GMT.\r\n */\r\n setTime(time: number): number;\r\n /**\r\n * Sets the milliseconds value in the Date object using local time.\r\n * @param ms A numeric value equal to the millisecond value.\r\n */\r\n setMilliseconds(ms: number): number;\r\n /**\r\n * Sets the milliseconds value in the Date object using Universal Coordinated Time (UTC).\r\n * @param ms A numeric value equal to the millisecond value.\r\n */\r\n setUTCMilliseconds(ms: number): number;\r\n\r\n /**\r\n * Sets the seconds value in the Date object using local time.\r\n * @param sec A numeric value equal to the seconds value.\r\n * @param ms A numeric value equal to the milliseconds value.\r\n */\r\n setSeconds(sec: number, ms?: number): number;\r\n /**\r\n * Sets the seconds value in the Date object using Universal Coordinated Time (UTC).\r\n * @param sec A numeric value equal to the seconds value.\r\n * @param ms A numeric value equal to the milliseconds value.\r\n */\r\n setUTCSeconds(sec: number, ms?: number): number;\r\n /**\r\n * Sets the minutes value in the Date object using local time.\r\n * @param min A numeric value equal to the minutes value.\r\n * @param sec A numeric value equal to the seconds value.\r\n * @param ms A numeric value equal to the milliseconds value.\r\n */\r\n setMinutes(min: number, sec?: number, ms?: number): number;\r\n /**\r\n * Sets the minutes value in the Date object using Universal Coordinated Time (UTC).\r\n * @param min A numeric value equal to the minutes value.\r\n * @param sec A numeric value equal to the seconds value.\r\n * @param ms A numeric value equal to the milliseconds value.\r\n */\r\n setUTCMinutes(min: number, sec?: number, ms?: number): number;\r\n /**\r\n * Sets the hour value in the Date object using local time.\r\n * @param hours A numeric value equal to the hours value.\r\n * @param min A numeric value equal to the minutes value.\r\n * @param sec A numeric value equal to the seconds value.\r\n * @param ms A numeric value equal to the milliseconds value.\r\n */\r\n setHours(hours: number, min?: number, sec?: number, ms?: number): number;\r\n /**\r\n * Sets the hours value in the Date object using Universal Coordinated Time (UTC).\r\n * @param hours A numeric value equal to the hours value.\r\n * @param min A numeric value equal to the minutes value.\r\n * @param sec A numeric value equal to the seconds value.\r\n * @param ms A numeric value equal to the milliseconds value.\r\n */\r\n setUTCHours(hours: number, min?: number, sec?: number, ms?: number): number;\r\n /**\r\n * Sets the numeric day-of-the-month value of the Date object using local time.\r\n * @param date A numeric value equal to the day of the month.\r\n */\r\n setDate(date: number): number;\r\n /**\r\n * Sets the numeric day of the month in the Date object using Universal Coordinated Time (UTC).\r\n * @param date A numeric value equal to the day of the month.\r\n */\r\n setUTCDate(date: number): number;\r\n /**\r\n * Sets the month value in the Date object using local time.\r\n * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively.\r\n * @param date A numeric value representing the day of the month. If this value is not supplied, the value from a call to the getDate method is used.\r\n */\r\n setMonth(month: number, date?: number): number;\r\n /**\r\n * Sets the month value in the Date object using Universal Coordinated Time (UTC).\r\n * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively.\r\n * @param date A numeric value representing the day of the month. If it is not supplied, the value from a call to the getUTCDate method is used.\r\n */\r\n setUTCMonth(month: number, date?: number): number;\r\n /**\r\n * Sets the year of the Date object using local time.\r\n * @param year A numeric value for the year.\r\n * @param month A zero-based numeric value for the month (0 for January, 11 for December). Must be specified if numDate is specified.\r\n * @param date A numeric value equal for the day of the month.\r\n */\r\n setFullYear(year: number, month?: number, date?: number): number;\r\n /**\r\n * Sets the year value in the Date object using Universal Coordinated Time (UTC).\r\n * @param year A numeric value equal to the year.\r\n * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively. Must be supplied if numDate is supplied.\r\n * @param date A numeric value equal to the day of the month.\r\n */\r\n setUTCFullYear(year: number, month?: number, date?: number): number;\r\n /** Returns a date converted to a string using Universal Coordinated Time (UTC). */\r\n toUTCString(): string;\r\n /** Returns a date as a string value in ISO format. */\r\n toISOString(): string;\r\n /** Used by the JSON.stringify method to enable the transformation of an object's data for JavaScript Object Notation (JSON) serialization. */\r\n toJSON(key?: any): string;\r\n}\r\n\r\ninterface DateConstructor {\r\n new(): Date;\r\n new(value: number | string): Date;\r\n new(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date;\r\n (): string;\r\n readonly prototype: Date;\r\n /**\r\n * Parses a string containing a date, and returns the number of milliseconds between that date and midnight, January 1, 1970.\r\n * @param s A date string\r\n */\r\n parse(s: string): number;\r\n /**\r\n * Returns the number of milliseconds between midnight, January 1, 1970 Universal Coordinated Time (UTC) (or GMT) and the specified date.\r\n * @param year The full year designation is required for cross-century date accuracy. If year is between 0 and 99 is used, then year is assumed to be 1900 + year.\r\n * @param month The month as a number between 0 and 11 (January to December).\r\n * @param date The date as a number between 1 and 31.\r\n * @param hours Must be supplied if minutes is supplied. A number from 0 to 23 (midnight to 11pm) that specifies the hour.\r\n * @param minutes Must be supplied if seconds is supplied. A number from 0 to 59 that specifies the minutes.\r\n * @param seconds Must be supplied if milliseconds is supplied. A number from 0 to 59 that specifies the seconds.\r\n * @param ms A number from 0 to 999 that specifies the milliseconds.\r\n */\r\n UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number;\r\n now(): number;\r\n}\r\n\r\ndeclare var Date: DateConstructor;\r\n\r\ninterface RegExpMatchArray extends Array {\r\n index?: number;\r\n input?: string;\r\n}\r\n\r\ninterface RegExpExecArray extends Array {\r\n index: number;\r\n input: string;\r\n}\r\n\r\ninterface RegExp {\r\n /**\r\n * Executes a search on a string using a regular expression pattern, and returns an array containing the results of that search.\r\n * @param string The String object or string literal on which to perform the search.\r\n */\r\n exec(string: string): RegExpExecArray | null;\r\n\r\n /**\r\n * Returns a Boolean value that indicates whether or not a pattern exists in a searched string.\r\n * @param string String on which to perform the search.\r\n */\r\n test(string: string): boolean;\r\n\r\n /** Returns a copy of the text of the regular expression pattern. Read-only. The regExp argument is a Regular expression object. It can be a variable name or a literal. */\r\n readonly source: string;\r\n\r\n /** Returns a Boolean value indicating the state of the global flag (g) used with a regular expression. Default is false. Read-only. */\r\n readonly global: boolean;\r\n\r\n /** Returns a Boolean value indicating the state of the ignoreCase flag (i) used with a regular expression. Default is false. Read-only. */\r\n readonly ignoreCase: boolean;\r\n\r\n /** Returns a Boolean value indicating the state of the multiline flag (m) used with a regular expression. Default is false. Read-only. */\r\n readonly multiline: boolean;\r\n\r\n lastIndex: number;\r\n\r\n // Non-standard extensions\r\n compile(): this;\r\n}\r\n\r\ninterface RegExpConstructor {\r\n new(pattern: RegExp | string): RegExp;\r\n new(pattern: string, flags?: string): RegExp;\r\n (pattern: RegExp | string): RegExp;\r\n (pattern: string, flags?: string): RegExp;\r\n readonly prototype: RegExp;\r\n\r\n // Non-standard extensions\r\n $1: string;\r\n $2: string;\r\n $3: string;\r\n $4: string;\r\n $5: string;\r\n $6: string;\r\n $7: string;\r\n $8: string;\r\n $9: string;\r\n lastMatch: string;\r\n}\r\n\r\ndeclare var RegExp: RegExpConstructor;\r\n\r\ninterface Error {\r\n name: string;\r\n message: string;\r\n stack?: string;\r\n}\r\n\r\ninterface ErrorConstructor {\r\n new(message?: string): Error;\r\n (message?: string): Error;\r\n readonly prototype: Error;\r\n}\r\n\r\ndeclare var Error: ErrorConstructor;\r\n\r\ninterface EvalError extends Error {\r\n}\r\n\r\ninterface EvalErrorConstructor {\r\n new(message?: string): EvalError;\r\n (message?: string): EvalError;\r\n readonly prototype: EvalError;\r\n}\r\n\r\ndeclare var EvalError: EvalErrorConstructor;\r\n\r\ninterface RangeError extends Error {\r\n}\r\n\r\ninterface RangeErrorConstructor {\r\n new(message?: string): RangeError;\r\n (message?: string): RangeError;\r\n readonly prototype: RangeError;\r\n}\r\n\r\ndeclare var RangeError: RangeErrorConstructor;\r\n\r\ninterface ReferenceError extends Error {\r\n}\r\n\r\ninterface ReferenceErrorConstructor {\r\n new(message?: string): ReferenceError;\r\n (message?: string): ReferenceError;\r\n readonly prototype: ReferenceError;\r\n}\r\n\r\ndeclare var ReferenceError: ReferenceErrorConstructor;\r\n\r\ninterface SyntaxError extends Error {\r\n}\r\n\r\ninterface SyntaxErrorConstructor {\r\n new(message?: string): SyntaxError;\r\n (message?: string): SyntaxError;\r\n readonly prototype: SyntaxError;\r\n}\r\n\r\ndeclare var SyntaxError: SyntaxErrorConstructor;\r\n\r\ninterface TypeError extends Error {\r\n}\r\n\r\ninterface TypeErrorConstructor {\r\n new(message?: string): TypeError;\r\n (message?: string): TypeError;\r\n readonly prototype: TypeError;\r\n}\r\n\r\ndeclare var TypeError: TypeErrorConstructor;\r\n\r\ninterface URIError extends Error {\r\n}\r\n\r\ninterface URIErrorConstructor {\r\n new(message?: string): URIError;\r\n (message?: string): URIError;\r\n readonly prototype: URIError;\r\n}\r\n\r\ndeclare var URIError: URIErrorConstructor;\r\n\r\ninterface JSON {\r\n /**\r\n * Converts a JavaScript Object Notation (JSON) string into an object.\r\n * @param text A valid JSON string.\r\n * @param reviver A function that transforms the results. This function is called for each member of the object.\r\n * If a member contains nested objects, the nested objects are transformed before the parent object is.\r\n */\r\n parse(text: string, reviver?: (this: any, key: string, value: any) => any): any;\r\n /**\r\n * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.\r\n * @param value A JavaScript value, usually an object or array, to be converted.\r\n * @param replacer A function that transforms the results.\r\n * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.\r\n */\r\n stringify(value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string;\r\n /**\r\n * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.\r\n * @param value A JavaScript value, usually an object or array, to be converted.\r\n * @param replacer An array of strings and numbers that acts as a approved list for selecting the object properties that will be stringified.\r\n * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.\r\n */\r\n stringify(value: any, replacer?: (number | string)[] | null, space?: string | number): string;\r\n}\r\n\r\n/**\r\n * An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.\r\n */\r\ndeclare var JSON: JSON;\r\n\r\n\r\n/////////////////////////////\r\n/// ECMAScript Array API (specially handled by compiler)\r\n/////////////////////////////\r\n\r\ninterface ReadonlyArray {\r\n /**\r\n * Gets the length of the array. This is a number one higher than the highest element defined in an array.\r\n */\r\n readonly length: number;\r\n /**\r\n * Returns a string representation of an array.\r\n */\r\n toString(): string;\r\n /**\r\n * Returns a string representation of an array. The elements are converted to string using their toLocalString methods.\r\n */\r\n toLocaleString(): string;\r\n /**\r\n * Combines two or more arrays.\r\n * @param items Additional items to add to the end of array1.\r\n */\r\n concat(...items: ConcatArray[]): T[];\r\n /**\r\n * Combines two or more arrays.\r\n * @param items Additional items to add to the end of array1.\r\n */\r\n concat(...items: (T | ConcatArray)[]): T[];\r\n /**\r\n * Adds all the elements of an array separated by the specified separator string.\r\n * @param separator A string used to separate one element of an array from the next in the resulting String. If omitted, the array elements are separated with a comma.\r\n */\r\n join(separator?: string): string;\r\n /**\r\n * Returns a section of an array.\r\n * @param start The beginning of the specified portion of the array.\r\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n */\r\n slice(start?: number, end?: number): T[];\r\n /**\r\n * Returns the index of the first occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\r\n */\r\n indexOf(searchElement: T, fromIndex?: number): number;\r\n /**\r\n * Returns the index of the last occurrence of a specified value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at the last index in the array.\r\n */\r\n lastIndexOf(searchElement: T, fromIndex?: number): number;\r\n /**\r\n * Determines whether all the members of an array satisfy the specified test.\r\n * @param callbackfn A function that accepts up to three arguments. The every method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value false, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n every(callbackfn: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): boolean;\r\n /**\r\n * Determines whether the specified callback function returns true for any element of an array.\r\n * @param callbackfn A function that accepts up to three arguments. The some method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value true, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n some(callbackfn: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): boolean;\r\n /**\r\n * Performs the specified action for each element in an array.\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\n forEach(callbackfn: (value: T, index: number, array: readonly T[]) => void, thisArg?: any): void;\r\n /**\r\n * Calls a defined callback function on each element of an array, and returns an array that contains the results.\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\n map(callbackfn: (value: T, index: number, array: readonly T[]) => U, thisArg?: any): U[];\r\n /**\r\n * Returns the elements of an array that meet the condition specified in a callback function.\r\n * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\n filter(callbackfn: (value: T, index: number, array: readonly T[]) => value is S, thisArg?: any): S[];\r\n /**\r\n * Returns the elements of an array that meet the condition specified in a callback function.\r\n * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\n filter(callbackfn: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): T[];\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T): T;\r\n reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T, initialValue: T): T;\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: readonly T[]) => U, initialValue: U): U;\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T): T;\r\n reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T, initialValue: T): T;\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: readonly T[]) => U, initialValue: U): U;\r\n\r\n readonly [n: number]: T;\r\n}\r\n\r\ninterface ConcatArray {\r\n readonly length: number;\r\n readonly [n: number]: T;\r\n join(separator?: string): string;\r\n slice(start?: number, end?: number): T[];\r\n}\r\n\r\ninterface Array {\r\n /**\r\n * Gets or sets the length of the array. This is a number one higher than the highest element defined in an array.\r\n */\r\n length: number;\r\n /**\r\n * Returns a string representation of an array.\r\n */\r\n toString(): string;\r\n /**\r\n * Returns a string representation of an array. The elements are converted to string using their toLocalString methods.\r\n */\r\n toLocaleString(): string;\r\n /**\r\n * Removes the last element from an array and returns it.\r\n */\r\n pop(): T | undefined;\r\n /**\r\n * Appends new elements to an array, and returns the new length of the array.\r\n * @param items New elements of the Array.\r\n */\r\n push(...items: T[]): number;\r\n /**\r\n * Combines two or more arrays.\r\n * @param items Additional items to add to the end of array1.\r\n */\r\n concat(...items: ConcatArray[]): T[];\r\n /**\r\n * Combines two or more arrays.\r\n * @param items Additional items to add to the end of array1.\r\n */\r\n concat(...items: (T | ConcatArray)[]): T[];\r\n /**\r\n * Adds all the elements of an array separated by the specified separator string.\r\n * @param separator A string used to separate one element of an array from the next in the resulting String. If omitted, the array elements are separated with a comma.\r\n */\r\n join(separator?: string): string;\r\n /**\r\n * Reverses the elements in an Array.\r\n */\r\n reverse(): T[];\r\n /**\r\n * Removes the first element from an array and returns it.\r\n */\r\n shift(): T | undefined;\r\n /**\r\n * Returns a section of an array.\r\n * @param start The beginning of the specified portion of the array.\r\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n */\r\n slice(start?: number, end?: number): T[];\r\n /**\r\n * Sorts an array.\r\n * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\r\n * ```ts\r\n * [11,2,22,1].sort((a, b) => a - b)\r\n * ```\r\n */\r\n sort(compareFn?: (a: T, b: T) => number): this;\r\n /**\r\n * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.\r\n * @param start The zero-based location in the array from which to start removing elements.\r\n * @param deleteCount The number of elements to remove.\r\n */\r\n splice(start: number, deleteCount?: number): T[];\r\n /**\r\n * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.\r\n * @param start The zero-based location in the array from which to start removing elements.\r\n * @param deleteCount The number of elements to remove.\r\n * @param items Elements to insert into the array in place of the deleted elements.\r\n */\r\n splice(start: number, deleteCount: number, ...items: T[]): T[];\r\n /**\r\n * Inserts new elements at the start of an array.\r\n * @param items Elements to insert at the start of the Array.\r\n */\r\n unshift(...items: T[]): number;\r\n /**\r\n * Returns the index of the first occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\r\n */\r\n indexOf(searchElement: T, fromIndex?: number): number;\r\n /**\r\n * Returns the index of the last occurrence of a specified value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at the last index in the array.\r\n */\r\n lastIndexOf(searchElement: T, fromIndex?: number): number;\r\n /**\r\n * Determines whether all the members of an array satisfy the specified test.\r\n * @param callbackfn A function that accepts up to three arguments. The every method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value false, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n every(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;\r\n /**\r\n * Determines whether the specified callback function returns true for any element of an array.\r\n * @param callbackfn A function that accepts up to three arguments. The some method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value true, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n some(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;\r\n /**\r\n * Performs the specified action for each element in an array.\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\n forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;\r\n /**\r\n * Calls a defined callback function on each element of an array, and returns an array that contains the results.\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\n map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[];\r\n /**\r\n * Returns the elements of an array that meet the condition specified in a callback function.\r\n * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\n filter(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[];\r\n /**\r\n * Returns the elements of an array that meet the condition specified in a callback function.\r\n * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\n filter(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T[];\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;\r\n reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;\r\n reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;\r\n\r\n [n: number]: T;\r\n}\r\n\r\ninterface ArrayConstructor {\r\n new(arrayLength?: number): any[];\r\n new (arrayLength: number): T[];\r\n new (...items: T[]): T[];\r\n (arrayLength?: number): any[];\r\n (arrayLength: number): T[];\r\n (...items: T[]): T[];\r\n isArray(arg: any): arg is any[];\r\n readonly prototype: any[];\r\n}\r\n\r\ndeclare var Array: ArrayConstructor;\r\n\r\ninterface TypedPropertyDescriptor {\r\n enumerable?: boolean;\r\n configurable?: boolean;\r\n writable?: boolean;\r\n value?: T;\r\n get?: () => T;\r\n set?: (value: T) => void;\r\n}\r\n\r\ndeclare type ClassDecorator = (target: TFunction) => TFunction | void;\r\ndeclare type PropertyDecorator = (target: Object, propertyKey: string | symbol) => void;\r\ndeclare type MethodDecorator = (target: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor | void;\r\ndeclare type ParameterDecorator = (target: Object, propertyKey: string | symbol, parameterIndex: number) => void;\r\n\r\ndeclare type PromiseConstructorLike = new (executor: (resolve: (value?: T | PromiseLike) => void, reject: (reason?: any) => void) => void) => PromiseLike;\r\n\r\ninterface PromiseLike {\r\n /**\r\n * Attaches callbacks for the resolution and/or rejection of the Promise.\r\n * @param onfulfilled The callback to execute when the Promise is resolved.\r\n * @param onrejected The callback to execute when the Promise is rejected.\r\n * @returns A Promise for the completion of which ever callback is executed.\r\n */\r\n then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): PromiseLike;\r\n}\r\n\r\n/**\r\n * Represents the completion of an asynchronous operation\r\n */\r\ninterface Promise {\r\n /**\r\n * Attaches callbacks for the resolution and/or rejection of the Promise.\r\n * @param onfulfilled The callback to execute when the Promise is resolved.\r\n * @param onrejected The callback to execute when the Promise is rejected.\r\n * @returns A Promise for the completion of which ever callback is executed.\r\n */\r\n then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): Promise;\r\n\r\n /**\r\n * Attaches a callback for only the rejection of the Promise.\r\n * @param onrejected The callback to execute when the Promise is rejected.\r\n * @returns A Promise for the completion of the callback.\r\n */\r\n catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): Promise;\r\n}\r\n\r\ninterface ArrayLike {\r\n readonly length: number;\r\n readonly [n: number]: T;\r\n}\r\n\r\n/**\r\n * Make all properties in T optional\r\n */\r\ntype Partial = {\r\n [P in keyof T]?: T[P];\r\n};\r\n\r\n/**\r\n * Make all properties in T required\r\n */\r\ntype Required = {\r\n [P in keyof T]-?: T[P];\r\n};\r\n\r\n/**\r\n * Make all properties in T readonly\r\n */\r\ntype Readonly = {\r\n readonly [P in keyof T]: T[P];\r\n};\r\n\r\n/**\r\n * From T, pick a set of properties whose keys are in the union K\r\n */\r\ntype Pick = {\r\n [P in K]: T[P];\r\n};\r\n\r\n/**\r\n * Construct a type with a set of properties K of type T\r\n */\r\ntype Record = {\r\n [P in K]: T;\r\n};\r\n\r\n/**\r\n * Exclude from T those types that are assignable to U\r\n */\r\ntype Exclude = T extends U ? never : T;\r\n\r\n/**\r\n * Extract from T those types that are assignable to U\r\n */\r\ntype Extract = T extends U ? T : never;\r\n\r\n/**\r\n * Construct a type with the properties of T except for those in type K.\r\n */\r\ntype Omit = Pick>;\r\n\r\n/**\r\n * Exclude null and undefined from T\r\n */\r\ntype NonNullable = T extends null | undefined ? never : T;\r\n\r\n/**\r\n * Obtain the parameters of a function type in a tuple\r\n */\r\ntype Parameters any> = T extends (...args: infer P) => any ? P : never;\r\n\r\n/**\r\n * Obtain the parameters of a constructor function type in a tuple\r\n */\r\ntype ConstructorParameters any> = T extends new (...args: infer P) => any ? P : never;\r\n\r\n/**\r\n * Obtain the return type of a function type\r\n */\r\ntype ReturnType any> = T extends (...args: any) => infer R ? R : any;\r\n\r\n/**\r\n * Obtain the return type of a constructor function type\r\n */\r\ntype InstanceType any> = T extends new (...args: any) => infer R ? R : any;\r\n\r\n/**\r\n * Marker for contextual 'this' type\r\n */\r\ninterface ThisType { }\r\n\r\n/**\r\n * Represents a raw buffer of binary data, which is used to store data for the\r\n * different typed arrays. ArrayBuffers cannot be read from or written to directly,\r\n * but can be passed to a typed array or DataView Object to interpret the raw\r\n * buffer as needed.\r\n */\r\ninterface ArrayBuffer {\r\n /**\r\n * Read-only. The length of the ArrayBuffer (in bytes).\r\n */\r\n readonly byteLength: number;\r\n\r\n /**\r\n * Returns a section of an ArrayBuffer.\r\n */\r\n slice(begin: number, end?: number): ArrayBuffer;\r\n}\r\n\r\n/**\r\n * Allowed ArrayBuffer types for the buffer of an ArrayBufferView and related Typed Arrays.\r\n */\r\ninterface ArrayBufferTypes {\r\n ArrayBuffer: ArrayBuffer;\r\n}\r\ntype ArrayBufferLike = ArrayBufferTypes[keyof ArrayBufferTypes];\r\n\r\ninterface ArrayBufferConstructor {\r\n readonly prototype: ArrayBuffer;\r\n new(byteLength: number): ArrayBuffer;\r\n isView(arg: any): arg is ArrayBufferView;\r\n}\r\ndeclare var ArrayBuffer: ArrayBufferConstructor;\r\n\r\ninterface ArrayBufferView {\r\n /**\r\n * The ArrayBuffer instance referenced by the array.\r\n */\r\n buffer: ArrayBufferLike;\r\n\r\n /**\r\n * The length in bytes of the array.\r\n */\r\n byteLength: number;\r\n\r\n /**\r\n * The offset in bytes of the array.\r\n */\r\n byteOffset: number;\r\n}\r\n\r\ninterface DataView {\r\n readonly buffer: ArrayBuffer;\r\n readonly byteLength: number;\r\n readonly byteOffset: number;\r\n /**\r\n * Gets the Float32 value at the specified byte offset from the start of the view. There is\r\n * no alignment constraint; multi-byte values may be fetched from any offset.\r\n * @param byteOffset The place in the buffer at which the value should be retrieved.\r\n */\r\n getFloat32(byteOffset: number, littleEndian?: boolean): number;\r\n\r\n /**\r\n * Gets the Float64 value at the specified byte offset from the start of the view. There is\r\n * no alignment constraint; multi-byte values may be fetched from any offset.\r\n * @param byteOffset The place in the buffer at which the value should be retrieved.\r\n */\r\n getFloat64(byteOffset: number, littleEndian?: boolean): number;\r\n\r\n /**\r\n * Gets the Int8 value at the specified byte offset from the start of the view. There is\r\n * no alignment constraint; multi-byte values may be fetched from any offset.\r\n * @param byteOffset The place in the buffer at which the value should be retrieved.\r\n */\r\n getInt8(byteOffset: number): number;\r\n\r\n /**\r\n * Gets the Int16 value at the specified byte offset from the start of the view. There is\r\n * no alignment constraint; multi-byte values may be fetched from any offset.\r\n * @param byteOffset The place in the buffer at which the value should be retrieved.\r\n */\r\n getInt16(byteOffset: number, littleEndian?: boolean): number;\r\n /**\r\n * Gets the Int32 value at the specified byte offset from the start of the view. There is\r\n * no alignment constraint; multi-byte values may be fetched from any offset.\r\n * @param byteOffset The place in the buffer at which the value should be retrieved.\r\n */\r\n getInt32(byteOffset: number, littleEndian?: boolean): number;\r\n\r\n /**\r\n * Gets the Uint8 value at the specified byte offset from the start of the view. There is\r\n * no alignment constraint; multi-byte values may be fetched from any offset.\r\n * @param byteOffset The place in the buffer at which the value should be retrieved.\r\n */\r\n getUint8(byteOffset: number): number;\r\n\r\n /**\r\n * Gets the Uint16 value at the specified byte offset from the start of the view. There is\r\n * no alignment constraint; multi-byte values may be fetched from any offset.\r\n * @param byteOffset The place in the buffer at which the value should be retrieved.\r\n */\r\n getUint16(byteOffset: number, littleEndian?: boolean): number;\r\n\r\n /**\r\n * Gets the Uint32 value at the specified byte offset from the start of the view. There is\r\n * no alignment constraint; multi-byte values may be fetched from any offset.\r\n * @param byteOffset The place in the buffer at which the value should be retrieved.\r\n */\r\n getUint32(byteOffset: number, littleEndian?: boolean): number;\r\n\r\n /**\r\n * Stores an Float32 value at the specified byte offset from the start of the view.\r\n * @param byteOffset The place in the buffer at which the value should be set.\r\n * @param value The value to set.\r\n * @param littleEndian If false or undefined, a big-endian value should be written,\r\n * otherwise a little-endian value should be written.\r\n */\r\n setFloat32(byteOffset: number, value: number, littleEndian?: boolean): void;\r\n\r\n /**\r\n * Stores an Float64 value at the specified byte offset from the start of the view.\r\n * @param byteOffset The place in the buffer at which the value should be set.\r\n * @param value The value to set.\r\n * @param littleEndian If false or undefined, a big-endian value should be written,\r\n * otherwise a little-endian value should be written.\r\n */\r\n setFloat64(byteOffset: number, value: number, littleEndian?: boolean): void;\r\n\r\n /**\r\n * Stores an Int8 value at the specified byte offset from the start of the view.\r\n * @param byteOffset The place in the buffer at which the value should be set.\r\n * @param value The value to set.\r\n */\r\n setInt8(byteOffset: number, value: number): void;\r\n\r\n /**\r\n * Stores an Int16 value at the specified byte offset from the start of the view.\r\n * @param byteOffset The place in the buffer at which the value should be set.\r\n * @param value The value to set.\r\n * @param littleEndian If false or undefined, a big-endian value should be written,\r\n * otherwise a little-endian value should be written.\r\n */\r\n setInt16(byteOffset: number, value: number, littleEndian?: boolean): void;\r\n\r\n /**\r\n * Stores an Int32 value at the specified byte offset from the start of the view.\r\n * @param byteOffset The place in the buffer at which the value should be set.\r\n * @param value The value to set.\r\n * @param littleEndian If false or undefined, a big-endian value should be written,\r\n * otherwise a little-endian value should be written.\r\n */\r\n setInt32(byteOffset: number, value: number, littleEndian?: boolean): void;\r\n\r\n /**\r\n * Stores an Uint8 value at the specified byte offset from the start of the view.\r\n * @param byteOffset The place in the buffer at which the value should be set.\r\n * @param value The value to set.\r\n */\r\n setUint8(byteOffset: number, value: number): void;\r\n\r\n /**\r\n * Stores an Uint16 value at the specified byte offset from the start of the view.\r\n * @param byteOffset The place in the buffer at which the value should be set.\r\n * @param value The value to set.\r\n * @param littleEndian If false or undefined, a big-endian value should be written,\r\n * otherwise a little-endian value should be written.\r\n */\r\n setUint16(byteOffset: number, value: number, littleEndian?: boolean): void;\r\n\r\n /**\r\n * Stores an Uint32 value at the specified byte offset from the start of the view.\r\n * @param byteOffset The place in the buffer at which the value should be set.\r\n * @param value The value to set.\r\n * @param littleEndian If false or undefined, a big-endian value should be written,\r\n * otherwise a little-endian value should be written.\r\n */\r\n setUint32(byteOffset: number, value: number, littleEndian?: boolean): void;\r\n}\r\n\r\ninterface DataViewConstructor {\r\n new(buffer: ArrayBufferLike, byteOffset?: number, byteLength?: number): DataView;\r\n}\r\ndeclare var DataView: DataViewConstructor;\r\n\r\n/**\r\n * A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\n * number of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Int8Array {\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * The ArrayBuffer instance referenced by the array.\r\n */\r\n readonly buffer: ArrayBufferLike;\r\n\r\n /**\r\n * The length in bytes of the array.\r\n */\r\n readonly byteLength: number;\r\n\r\n /**\r\n * The offset in bytes of the array.\r\n */\r\n readonly byteOffset: number;\r\n\r\n /**\r\n * Returns the this object after copying a section of the array identified by start and end\r\n * to the same array starting at position target\r\n * @param target If target is negative, it is treated as length+target where length is the\r\n * length of the array.\r\n * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n * is treated as length+end.\r\n * @param end If not specified, length of the this object is used as its default value.\r\n */\r\n copyWithin(target: number, start: number, end?: number): this;\r\n\r\n /**\r\n * Determines whether all the members of an array satisfy the specified test.\r\n * @param callbackfn A function that accepts up to three arguments. The every method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value false, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n every(callbackfn: (value: number, index: number, array: Int8Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Returns the this object after filling the section identified by start and end with value\r\n * @param value value to fill array section with\r\n * @param start index to start filling the array at. If start is negative, it is treated as\r\n * length+start where length is the length of the array.\r\n * @param end index to stop filling the array at. If end is negative, it is treated as\r\n * length+end.\r\n */\r\n fill(value: number, start?: number, end?: number): this;\r\n\r\n /**\r\n * Returns the elements of an array that meet the condition specified in a callback function.\r\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n filter(callbackfn: (value: number, index: number, array: Int8Array) => any, thisArg?: any): Int8Array;\r\n\r\n /**\r\n * Returns the value of the first element in the array where predicate is true, and undefined\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found, find\r\n * immediately returns that element value. Otherwise, find returns undefined.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n find(predicate: (value: number, index: number, obj: Int8Array) => boolean, thisArg?: any): number | undefined;\r\n\r\n /**\r\n * Returns the index of the first element in the array where predicate is true, and -1\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found,\r\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n findIndex(predicate: (value: number, index: number, obj: Int8Array) => boolean, thisArg?: any): number;\r\n\r\n /**\r\n * Performs the specified action for each element in an array.\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n forEach(callbackfn: (value: number, index: number, array: Int8Array) => void, thisArg?: any): void;\r\n\r\n /**\r\n * Returns the index of the first occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * Adds all the elements of an array separated by the specified separator string.\r\n * @param separator A string used to separate one element of an array from the next in the\r\n * resulting String. If omitted, the array elements are separated with a comma.\r\n */\r\n join(separator?: string): string;\r\n\r\n /**\r\n * Returns the index of the last occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * The length of the array.\r\n */\r\n readonly length: number;\r\n\r\n /**\r\n * Calls a defined callback function on each element of an array, and returns an array that\r\n * contains the results.\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n map(callbackfn: (value: number, index: number, array: Int8Array) => number, thisArg?: any): Int8Array;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number): number;\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an\r\n * argument instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number): number;\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Reverses the elements in an Array.\r\n */\r\n reverse(): Int8Array;\r\n\r\n /**\r\n * Sets a value or an array of values.\r\n * @param array A typed or untyped array of values to set.\r\n * @param offset The index in the current array at which the values are to be written.\r\n */\r\n set(array: ArrayLike, offset?: number): void;\r\n\r\n /**\r\n * Returns a section of an array.\r\n * @param start The beginning of the specified portion of the array.\r\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n */\r\n slice(start?: number, end?: number): Int8Array;\r\n\r\n /**\r\n * Determines whether the specified callback function returns true for any element of an array.\r\n * @param callbackfn A function that accepts up to three arguments. The some method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value true, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n some(callbackfn: (value: number, index: number, array: Int8Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Sorts an array.\r\n * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\r\n * ```ts\r\n * [11,2,22,1].sort((a, b) => a - b)\r\n * ```\r\n */\r\n sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n /**\r\n * Gets a new Int8Array view of the ArrayBuffer store for this array, referencing the elements\r\n * at begin, inclusive, up to end, exclusive.\r\n * @param begin The index of the beginning of the array.\r\n * @param end The index of the end of the array.\r\n */\r\n subarray(begin?: number, end?: number): Int8Array;\r\n\r\n /**\r\n * Converts a number to a string by using the current locale.\r\n */\r\n toLocaleString(): string;\r\n\r\n /**\r\n * Returns a string representation of an array.\r\n */\r\n toString(): string;\r\n\r\n [index: number]: number;\r\n}\r\ninterface Int8ArrayConstructor {\r\n readonly prototype: Int8Array;\r\n new(length: number): Int8Array;\r\n new(arrayOrArrayBuffer: ArrayLike | ArrayBufferLike): Int8Array;\r\n new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Int8Array;\r\n\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * Returns a new array from a set of elements.\r\n * @param items A set of elements to include in the new array object.\r\n */\r\n of(...items: number[]): Int8Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n */\r\n from(arrayLike: ArrayLike): Int8Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n * @param mapfn A mapping function to call on every element of the array.\r\n * @param thisArg Value of 'this' used to invoke the mapfn.\r\n */\r\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int8Array;\r\n\r\n\r\n}\r\ndeclare var Int8Array: Int8ArrayConstructor;\r\n\r\n/**\r\n * A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\n * requested number of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Uint8Array {\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * The ArrayBuffer instance referenced by the array.\r\n */\r\n readonly buffer: ArrayBufferLike;\r\n\r\n /**\r\n * The length in bytes of the array.\r\n */\r\n readonly byteLength: number;\r\n\r\n /**\r\n * The offset in bytes of the array.\r\n */\r\n readonly byteOffset: number;\r\n\r\n /**\r\n * Returns the this object after copying a section of the array identified by start and end\r\n * to the same array starting at position target\r\n * @param target If target is negative, it is treated as length+target where length is the\r\n * length of the array.\r\n * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n * is treated as length+end.\r\n * @param end If not specified, length of the this object is used as its default value.\r\n */\r\n copyWithin(target: number, start: number, end?: number): this;\r\n\r\n /**\r\n * Determines whether all the members of an array satisfy the specified test.\r\n * @param callbackfn A function that accepts up to three arguments. The every method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value false, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n every(callbackfn: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Returns the this object after filling the section identified by start and end with value\r\n * @param value value to fill array section with\r\n * @param start index to start filling the array at. If start is negative, it is treated as\r\n * length+start where length is the length of the array.\r\n * @param end index to stop filling the array at. If end is negative, it is treated as\r\n * length+end.\r\n */\r\n fill(value: number, start?: number, end?: number): this;\r\n\r\n /**\r\n * Returns the elements of an array that meet the condition specified in a callback function.\r\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n filter(callbackfn: (value: number, index: number, array: Uint8Array) => any, thisArg?: any): Uint8Array;\r\n\r\n /**\r\n * Returns the value of the first element in the array where predicate is true, and undefined\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found, find\r\n * immediately returns that element value. Otherwise, find returns undefined.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n find(predicate: (value: number, index: number, obj: Uint8Array) => boolean, thisArg?: any): number | undefined;\r\n\r\n /**\r\n * Returns the index of the first element in the array where predicate is true, and -1\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found,\r\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n findIndex(predicate: (value: number, index: number, obj: Uint8Array) => boolean, thisArg?: any): number;\r\n\r\n /**\r\n * Performs the specified action for each element in an array.\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n forEach(callbackfn: (value: number, index: number, array: Uint8Array) => void, thisArg?: any): void;\r\n\r\n /**\r\n * Returns the index of the first occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * Adds all the elements of an array separated by the specified separator string.\r\n * @param separator A string used to separate one element of an array from the next in the\r\n * resulting String. If omitted, the array elements are separated with a comma.\r\n */\r\n join(separator?: string): string;\r\n\r\n /**\r\n * Returns the index of the last occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * The length of the array.\r\n */\r\n readonly length: number;\r\n\r\n /**\r\n * Calls a defined callback function on each element of an array, and returns an array that\r\n * contains the results.\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n map(callbackfn: (value: number, index: number, array: Uint8Array) => number, thisArg?: any): Uint8Array;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number): number;\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an\r\n * argument instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number): number;\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Reverses the elements in an Array.\r\n */\r\n reverse(): Uint8Array;\r\n\r\n /**\r\n * Sets a value or an array of values.\r\n * @param array A typed or untyped array of values to set.\r\n * @param offset The index in the current array at which the values are to be written.\r\n */\r\n set(array: ArrayLike, offset?: number): void;\r\n\r\n /**\r\n * Returns a section of an array.\r\n * @param start The beginning of the specified portion of the array.\r\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n */\r\n slice(start?: number, end?: number): Uint8Array;\r\n\r\n /**\r\n * Determines whether the specified callback function returns true for any element of an array.\r\n * @param callbackfn A function that accepts up to three arguments. The some method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value true, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n some(callbackfn: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Sorts an array.\r\n * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\r\n * ```ts\r\n * [11,2,22,1].sort((a, b) => a - b)\r\n * ```\r\n */\r\n sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n /**\r\n * Gets a new Uint8Array view of the ArrayBuffer store for this array, referencing the elements\r\n * at begin, inclusive, up to end, exclusive.\r\n * @param begin The index of the beginning of the array.\r\n * @param end The index of the end of the array.\r\n */\r\n subarray(begin?: number, end?: number): Uint8Array;\r\n\r\n /**\r\n * Converts a number to a string by using the current locale.\r\n */\r\n toLocaleString(): string;\r\n\r\n /**\r\n * Returns a string representation of an array.\r\n */\r\n toString(): string;\r\n\r\n [index: number]: number;\r\n}\r\n\r\ninterface Uint8ArrayConstructor {\r\n readonly prototype: Uint8Array;\r\n new(length: number): Uint8Array;\r\n new(arrayOrArrayBuffer: ArrayLike | ArrayBufferLike): Uint8Array;\r\n new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Uint8Array;\r\n\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * Returns a new array from a set of elements.\r\n * @param items A set of elements to include in the new array object.\r\n */\r\n of(...items: number[]): Uint8Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n */\r\n from(arrayLike: ArrayLike): Uint8Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n * @param mapfn A mapping function to call on every element of the array.\r\n * @param thisArg Value of 'this' used to invoke the mapfn.\r\n */\r\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8Array;\r\n\r\n}\r\ndeclare var Uint8Array: Uint8ArrayConstructor;\r\n\r\n/**\r\n * A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\n * If the requested number of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Uint8ClampedArray {\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * The ArrayBuffer instance referenced by the array.\r\n */\r\n readonly buffer: ArrayBufferLike;\r\n\r\n /**\r\n * The length in bytes of the array.\r\n */\r\n readonly byteLength: number;\r\n\r\n /**\r\n * The offset in bytes of the array.\r\n */\r\n readonly byteOffset: number;\r\n\r\n /**\r\n * Returns the this object after copying a section of the array identified by start and end\r\n * to the same array starting at position target\r\n * @param target If target is negative, it is treated as length+target where length is the\r\n * length of the array.\r\n * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n * is treated as length+end.\r\n * @param end If not specified, length of the this object is used as its default value.\r\n */\r\n copyWithin(target: number, start: number, end?: number): this;\r\n\r\n /**\r\n * Determines whether all the members of an array satisfy the specified test.\r\n * @param callbackfn A function that accepts up to three arguments. The every method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value false, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n every(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Returns the this object after filling the section identified by start and end with value\r\n * @param value value to fill array section with\r\n * @param start index to start filling the array at. If start is negative, it is treated as\r\n * length+start where length is the length of the array.\r\n * @param end index to stop filling the array at. If end is negative, it is treated as\r\n * length+end.\r\n */\r\n fill(value: number, start?: number, end?: number): this;\r\n\r\n /**\r\n * Returns the elements of an array that meet the condition specified in a callback function.\r\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n filter(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => any, thisArg?: any): Uint8ClampedArray;\r\n\r\n /**\r\n * Returns the value of the first element in the array where predicate is true, and undefined\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found, find\r\n * immediately returns that element value. Otherwise, find returns undefined.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n find(predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any): number | undefined;\r\n\r\n /**\r\n * Returns the index of the first element in the array where predicate is true, and -1\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found,\r\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n findIndex(predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any): number;\r\n\r\n /**\r\n * Performs the specified action for each element in an array.\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n forEach(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => void, thisArg?: any): void;\r\n\r\n /**\r\n * Returns the index of the first occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * Adds all the elements of an array separated by the specified separator string.\r\n * @param separator A string used to separate one element of an array from the next in the\r\n * resulting String. If omitted, the array elements are separated with a comma.\r\n */\r\n join(separator?: string): string;\r\n\r\n /**\r\n * Returns the index of the last occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * The length of the array.\r\n */\r\n readonly length: number;\r\n\r\n /**\r\n * Calls a defined callback function on each element of an array, and returns an array that\r\n * contains the results.\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n map(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => number, thisArg?: any): Uint8ClampedArray;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an\r\n * argument instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U;\r\n\r\n /**\r\n * Reverses the elements in an Array.\r\n */\r\n reverse(): Uint8ClampedArray;\r\n\r\n /**\r\n * Sets a value or an array of values.\r\n * @param array A typed or untyped array of values to set.\r\n * @param offset The index in the current array at which the values are to be written.\r\n */\r\n set(array: ArrayLike, offset?: number): void;\r\n\r\n /**\r\n * Returns a section of an array.\r\n * @param start The beginning of the specified portion of the array.\r\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n */\r\n slice(start?: number, end?: number): Uint8ClampedArray;\r\n\r\n /**\r\n * Determines whether the specified callback function returns true for any element of an array.\r\n * @param callbackfn A function that accepts up to three arguments. The some method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value true, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n some(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Sorts an array.\r\n * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\r\n * ```ts\r\n * [11,2,22,1].sort((a, b) => a - b)\r\n * ```\r\n */\r\n sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n /**\r\n * Gets a new Uint8ClampedArray view of the ArrayBuffer store for this array, referencing the elements\r\n * at begin, inclusive, up to end, exclusive.\r\n * @param begin The index of the beginning of the array.\r\n * @param end The index of the end of the array.\r\n */\r\n subarray(begin?: number, end?: number): Uint8ClampedArray;\r\n\r\n /**\r\n * Converts a number to a string by using the current locale.\r\n */\r\n toLocaleString(): string;\r\n\r\n /**\r\n * Returns a string representation of an array.\r\n */\r\n toString(): string;\r\n\r\n [index: number]: number;\r\n}\r\n\r\ninterface Uint8ClampedArrayConstructor {\r\n readonly prototype: Uint8ClampedArray;\r\n new(length: number): Uint8ClampedArray;\r\n new(arrayOrArrayBuffer: ArrayLike | ArrayBufferLike): Uint8ClampedArray;\r\n new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Uint8ClampedArray;\r\n\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * Returns a new array from a set of elements.\r\n * @param items A set of elements to include in the new array object.\r\n */\r\n of(...items: number[]): Uint8ClampedArray;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n */\r\n from(arrayLike: ArrayLike): Uint8ClampedArray;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n * @param mapfn A mapping function to call on every element of the array.\r\n * @param thisArg Value of 'this' used to invoke the mapfn.\r\n */\r\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8ClampedArray;\r\n}\r\ndeclare var Uint8ClampedArray: Uint8ClampedArrayConstructor;\r\n\r\n/**\r\n * A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\n * requested number of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Int16Array {\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * The ArrayBuffer instance referenced by the array.\r\n */\r\n readonly buffer: ArrayBufferLike;\r\n\r\n /**\r\n * The length in bytes of the array.\r\n */\r\n readonly byteLength: number;\r\n\r\n /**\r\n * The offset in bytes of the array.\r\n */\r\n readonly byteOffset: number;\r\n\r\n /**\r\n * Returns the this object after copying a section of the array identified by start and end\r\n * to the same array starting at position target\r\n * @param target If target is negative, it is treated as length+target where length is the\r\n * length of the array.\r\n * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n * is treated as length+end.\r\n * @param end If not specified, length of the this object is used as its default value.\r\n */\r\n copyWithin(target: number, start: number, end?: number): this;\r\n\r\n /**\r\n * Determines whether all the members of an array satisfy the specified test.\r\n * @param callbackfn A function that accepts up to three arguments. The every method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value false, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n every(callbackfn: (value: number, index: number, array: Int16Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Returns the this object after filling the section identified by start and end with value\r\n * @param value value to fill array section with\r\n * @param start index to start filling the array at. If start is negative, it is treated as\r\n * length+start where length is the length of the array.\r\n * @param end index to stop filling the array at. If end is negative, it is treated as\r\n * length+end.\r\n */\r\n fill(value: number, start?: number, end?: number): this;\r\n\r\n /**\r\n * Returns the elements of an array that meet the condition specified in a callback function.\r\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n filter(callbackfn: (value: number, index: number, array: Int16Array) => any, thisArg?: any): Int16Array;\r\n\r\n /**\r\n * Returns the value of the first element in the array where predicate is true, and undefined\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found, find\r\n * immediately returns that element value. Otherwise, find returns undefined.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n find(predicate: (value: number, index: number, obj: Int16Array) => boolean, thisArg?: any): number | undefined;\r\n\r\n /**\r\n * Returns the index of the first element in the array where predicate is true, and -1\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found,\r\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n findIndex(predicate: (value: number, index: number, obj: Int16Array) => boolean, thisArg?: any): number;\r\n\r\n /**\r\n * Performs the specified action for each element in an array.\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n forEach(callbackfn: (value: number, index: number, array: Int16Array) => void, thisArg?: any): void;\r\n /**\r\n * Returns the index of the first occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * Adds all the elements of an array separated by the specified separator string.\r\n * @param separator A string used to separate one element of an array from the next in the\r\n * resulting String. If omitted, the array elements are separated with a comma.\r\n */\r\n join(separator?: string): string;\r\n\r\n /**\r\n * Returns the index of the last occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * The length of the array.\r\n */\r\n readonly length: number;\r\n\r\n /**\r\n * Calls a defined callback function on each element of an array, and returns an array that\r\n * contains the results.\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n map(callbackfn: (value: number, index: number, array: Int16Array) => number, thisArg?: any): Int16Array;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number): number;\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int16Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an\r\n * argument instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number): number;\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int16Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Reverses the elements in an Array.\r\n */\r\n reverse(): Int16Array;\r\n\r\n /**\r\n * Sets a value or an array of values.\r\n * @param array A typed or untyped array of values to set.\r\n * @param offset The index in the current array at which the values are to be written.\r\n */\r\n set(array: ArrayLike, offset?: number): void;\r\n\r\n /**\r\n * Returns a section of an array.\r\n * @param start The beginning of the specified portion of the array.\r\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n */\r\n slice(start?: number, end?: number): Int16Array;\r\n\r\n /**\r\n * Determines whether the specified callback function returns true for any element of an array.\r\n * @param callbackfn A function that accepts up to three arguments. The some method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value true, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n some(callbackfn: (value: number, index: number, array: Int16Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Sorts an array.\r\n * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\r\n * ```ts\r\n * [11,2,22,1].sort((a, b) => a - b)\r\n * ```\r\n */\r\n sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n /**\r\n * Gets a new Int16Array view of the ArrayBuffer store for this array, referencing the elements\r\n * at begin, inclusive, up to end, exclusive.\r\n * @param begin The index of the beginning of the array.\r\n * @param end The index of the end of the array.\r\n */\r\n subarray(begin?: number, end?: number): Int16Array;\r\n\r\n /**\r\n * Converts a number to a string by using the current locale.\r\n */\r\n toLocaleString(): string;\r\n\r\n /**\r\n * Returns a string representation of an array.\r\n */\r\n toString(): string;\r\n\r\n [index: number]: number;\r\n}\r\n\r\ninterface Int16ArrayConstructor {\r\n readonly prototype: Int16Array;\r\n new(length: number): Int16Array;\r\n new(arrayOrArrayBuffer: ArrayLike | ArrayBufferLike): Int16Array;\r\n new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Int16Array;\r\n\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * Returns a new array from a set of elements.\r\n * @param items A set of elements to include in the new array object.\r\n */\r\n of(...items: number[]): Int16Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n */\r\n from(arrayLike: ArrayLike): Int16Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n * @param mapfn A mapping function to call on every element of the array.\r\n * @param thisArg Value of 'this' used to invoke the mapfn.\r\n */\r\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int16Array;\r\n\r\n\r\n}\r\ndeclare var Int16Array: Int16ArrayConstructor;\r\n\r\n/**\r\n * A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\n * requested number of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Uint16Array {\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * The ArrayBuffer instance referenced by the array.\r\n */\r\n readonly buffer: ArrayBufferLike;\r\n\r\n /**\r\n * The length in bytes of the array.\r\n */\r\n readonly byteLength: number;\r\n\r\n /**\r\n * The offset in bytes of the array.\r\n */\r\n readonly byteOffset: number;\r\n\r\n /**\r\n * Returns the this object after copying a section of the array identified by start and end\r\n * to the same array starting at position target\r\n * @param target If target is negative, it is treated as length+target where length is the\r\n * length of the array.\r\n * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n * is treated as length+end.\r\n * @param end If not specified, length of the this object is used as its default value.\r\n */\r\n copyWithin(target: number, start: number, end?: number): this;\r\n\r\n /**\r\n * Determines whether all the members of an array satisfy the specified test.\r\n * @param callbackfn A function that accepts up to three arguments. The every method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value false, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n every(callbackfn: (value: number, index: number, array: Uint16Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Returns the this object after filling the section identified by start and end with value\r\n * @param value value to fill array section with\r\n * @param start index to start filling the array at. If start is negative, it is treated as\r\n * length+start where length is the length of the array.\r\n * @param end index to stop filling the array at. If end is negative, it is treated as\r\n * length+end.\r\n */\r\n fill(value: number, start?: number, end?: number): this;\r\n\r\n /**\r\n * Returns the elements of an array that meet the condition specified in a callback function.\r\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n filter(callbackfn: (value: number, index: number, array: Uint16Array) => any, thisArg?: any): Uint16Array;\r\n\r\n /**\r\n * Returns the value of the first element in the array where predicate is true, and undefined\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found, find\r\n * immediately returns that element value. Otherwise, find returns undefined.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n find(predicate: (value: number, index: number, obj: Uint16Array) => boolean, thisArg?: any): number | undefined;\r\n\r\n /**\r\n * Returns the index of the first element in the array where predicate is true, and -1\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found,\r\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n findIndex(predicate: (value: number, index: number, obj: Uint16Array) => boolean, thisArg?: any): number;\r\n\r\n /**\r\n * Performs the specified action for each element in an array.\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n forEach(callbackfn: (value: number, index: number, array: Uint16Array) => void, thisArg?: any): void;\r\n\r\n /**\r\n * Returns the index of the first occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * Adds all the elements of an array separated by the specified separator string.\r\n * @param separator A string used to separate one element of an array from the next in the\r\n * resulting String. If omitted, the array elements are separated with a comma.\r\n */\r\n join(separator?: string): string;\r\n\r\n /**\r\n * Returns the index of the last occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * The length of the array.\r\n */\r\n readonly length: number;\r\n\r\n /**\r\n * Calls a defined callback function on each element of an array, and returns an array that\r\n * contains the results.\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n map(callbackfn: (value: number, index: number, array: Uint16Array) => number, thisArg?: any): Uint16Array;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number): number;\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint16Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an\r\n * argument instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number): number;\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint16Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Reverses the elements in an Array.\r\n */\r\n reverse(): Uint16Array;\r\n\r\n /**\r\n * Sets a value or an array of values.\r\n * @param array A typed or untyped array of values to set.\r\n * @param offset The index in the current array at which the values are to be written.\r\n */\r\n set(array: ArrayLike, offset?: number): void;\r\n\r\n /**\r\n * Returns a section of an array.\r\n * @param start The beginning of the specified portion of the array.\r\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n */\r\n slice(start?: number, end?: number): Uint16Array;\r\n\r\n /**\r\n * Determines whether the specified callback function returns true for any element of an array.\r\n * @param callbackfn A function that accepts up to three arguments. The some method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value true, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n some(callbackfn: (value: number, index: number, array: Uint16Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Sorts an array.\r\n * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\r\n * ```ts\r\n * [11,2,22,1].sort((a, b) => a - b)\r\n * ```\r\n */\r\n sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n /**\r\n * Gets a new Uint16Array view of the ArrayBuffer store for this array, referencing the elements\r\n * at begin, inclusive, up to end, exclusive.\r\n * @param begin The index of the beginning of the array.\r\n * @param end The index of the end of the array.\r\n */\r\n subarray(begin?: number, end?: number): Uint16Array;\r\n\r\n /**\r\n * Converts a number to a string by using the current locale.\r\n */\r\n toLocaleString(): string;\r\n\r\n /**\r\n * Returns a string representation of an array.\r\n */\r\n toString(): string;\r\n\r\n [index: number]: number;\r\n}\r\n\r\ninterface Uint16ArrayConstructor {\r\n readonly prototype: Uint16Array;\r\n new(length: number): Uint16Array;\r\n new(arrayOrArrayBuffer: ArrayLike | ArrayBufferLike): Uint16Array;\r\n new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Uint16Array;\r\n\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * Returns a new array from a set of elements.\r\n * @param items A set of elements to include in the new array object.\r\n */\r\n of(...items: number[]): Uint16Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n */\r\n from(arrayLike: ArrayLike): Uint16Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n * @param mapfn A mapping function to call on every element of the array.\r\n * @param thisArg Value of 'this' used to invoke the mapfn.\r\n */\r\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint16Array;\r\n\r\n\r\n}\r\ndeclare var Uint16Array: Uint16ArrayConstructor;\r\n/**\r\n * A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\n * requested number of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Int32Array {\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * The ArrayBuffer instance referenced by the array.\r\n */\r\n readonly buffer: ArrayBufferLike;\r\n\r\n /**\r\n * The length in bytes of the array.\r\n */\r\n readonly byteLength: number;\r\n\r\n /**\r\n * The offset in bytes of the array.\r\n */\r\n readonly byteOffset: number;\r\n\r\n /**\r\n * Returns the this object after copying a section of the array identified by start and end\r\n * to the same array starting at position target\r\n * @param target If target is negative, it is treated as length+target where length is the\r\n * length of the array.\r\n * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n * is treated as length+end.\r\n * @param end If not specified, length of the this object is used as its default value.\r\n */\r\n copyWithin(target: number, start: number, end?: number): this;\r\n\r\n /**\r\n * Determines whether all the members of an array satisfy the specified test.\r\n * @param callbackfn A function that accepts up to three arguments. The every method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value false, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n every(callbackfn: (value: number, index: number, array: Int32Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Returns the this object after filling the section identified by start and end with value\r\n * @param value value to fill array section with\r\n * @param start index to start filling the array at. If start is negative, it is treated as\r\n * length+start where length is the length of the array.\r\n * @param end index to stop filling the array at. If end is negative, it is treated as\r\n * length+end.\r\n */\r\n fill(value: number, start?: number, end?: number): this;\r\n\r\n /**\r\n * Returns the elements of an array that meet the condition specified in a callback function.\r\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n filter(callbackfn: (value: number, index: number, array: Int32Array) => any, thisArg?: any): Int32Array;\r\n\r\n /**\r\n * Returns the value of the first element in the array where predicate is true, and undefined\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found, find\r\n * immediately returns that element value. Otherwise, find returns undefined.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n find(predicate: (value: number, index: number, obj: Int32Array) => boolean, thisArg?: any): number | undefined;\r\n\r\n /**\r\n * Returns the index of the first element in the array where predicate is true, and -1\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found,\r\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n findIndex(predicate: (value: number, index: number, obj: Int32Array) => boolean, thisArg?: any): number;\r\n\r\n /**\r\n * Performs the specified action for each element in an array.\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n forEach(callbackfn: (value: number, index: number, array: Int32Array) => void, thisArg?: any): void;\r\n\r\n /**\r\n * Returns the index of the first occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * Adds all the elements of an array separated by the specified separator string.\r\n * @param separator A string used to separate one element of an array from the next in the\r\n * resulting String. If omitted, the array elements are separated with a comma.\r\n */\r\n join(separator?: string): string;\r\n\r\n /**\r\n * Returns the index of the last occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * The length of the array.\r\n */\r\n readonly length: number;\r\n\r\n /**\r\n * Calls a defined callback function on each element of an array, and returns an array that\r\n * contains the results.\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n map(callbackfn: (value: number, index: number, array: Int32Array) => number, thisArg?: any): Int32Array;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number): number;\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int32Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an\r\n * argument instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number): number;\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int32Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Reverses the elements in an Array.\r\n */\r\n reverse(): Int32Array;\r\n\r\n /**\r\n * Sets a value or an array of values.\r\n * @param array A typed or untyped array of values to set.\r\n * @param offset The index in the current array at which the values are to be written.\r\n */\r\n set(array: ArrayLike, offset?: number): void;\r\n\r\n /**\r\n * Returns a section of an array.\r\n * @param start The beginning of the specified portion of the array.\r\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n */\r\n slice(start?: number, end?: number): Int32Array;\r\n\r\n /**\r\n * Determines whether the specified callback function returns true for any element of an array.\r\n * @param callbackfn A function that accepts up to three arguments. The some method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value true, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n some(callbackfn: (value: number, index: number, array: Int32Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Sorts an array.\r\n * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\r\n * ```ts\r\n * [11,2,22,1].sort((a, b) => a - b)\r\n * ```\r\n */\r\n sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n /**\r\n * Gets a new Int32Array view of the ArrayBuffer store for this array, referencing the elements\r\n * at begin, inclusive, up to end, exclusive.\r\n * @param begin The index of the beginning of the array.\r\n * @param end The index of the end of the array.\r\n */\r\n subarray(begin?: number, end?: number): Int32Array;\r\n\r\n /**\r\n * Converts a number to a string by using the current locale.\r\n */\r\n toLocaleString(): string;\r\n\r\n /**\r\n * Returns a string representation of an array.\r\n */\r\n toString(): string;\r\n\r\n [index: number]: number;\r\n}\r\n\r\ninterface Int32ArrayConstructor {\r\n readonly prototype: Int32Array;\r\n new(length: number): Int32Array;\r\n new(arrayOrArrayBuffer: ArrayLike | ArrayBufferLike): Int32Array;\r\n new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Int32Array;\r\n\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * Returns a new array from a set of elements.\r\n * @param items A set of elements to include in the new array object.\r\n */\r\n of(...items: number[]): Int32Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n */\r\n from(arrayLike: ArrayLike): Int32Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n * @param mapfn A mapping function to call on every element of the array.\r\n * @param thisArg Value of 'this' used to invoke the mapfn.\r\n */\r\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int32Array;\r\n\r\n}\r\ndeclare var Int32Array: Int32ArrayConstructor;\r\n\r\n/**\r\n * A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\n * requested number of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Uint32Array {\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * The ArrayBuffer instance referenced by the array.\r\n */\r\n readonly buffer: ArrayBufferLike;\r\n\r\n /**\r\n * The length in bytes of the array.\r\n */\r\n readonly byteLength: number;\r\n\r\n /**\r\n * The offset in bytes of the array.\r\n */\r\n readonly byteOffset: number;\r\n\r\n /**\r\n * Returns the this object after copying a section of the array identified by start and end\r\n * to the same array starting at position target\r\n * @param target If target is negative, it is treated as length+target where length is the\r\n * length of the array.\r\n * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n * is treated as length+end.\r\n * @param end If not specified, length of the this object is used as its default value.\r\n */\r\n copyWithin(target: number, start: number, end?: number): this;\r\n\r\n /**\r\n * Determines whether all the members of an array satisfy the specified test.\r\n * @param callbackfn A function that accepts up to three arguments. The every method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value false, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n every(callbackfn: (value: number, index: number, array: Uint32Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Returns the this object after filling the section identified by start and end with value\r\n * @param value value to fill array section with\r\n * @param start index to start filling the array at. If start is negative, it is treated as\r\n * length+start where length is the length of the array.\r\n * @param end index to stop filling the array at. If end is negative, it is treated as\r\n * length+end.\r\n */\r\n fill(value: number, start?: number, end?: number): this;\r\n\r\n /**\r\n * Returns the elements of an array that meet the condition specified in a callback function.\r\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n filter(callbackfn: (value: number, index: number, array: Uint32Array) => any, thisArg?: any): Uint32Array;\r\n\r\n /**\r\n * Returns the value of the first element in the array where predicate is true, and undefined\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found, find\r\n * immediately returns that element value. Otherwise, find returns undefined.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n find(predicate: (value: number, index: number, obj: Uint32Array) => boolean, thisArg?: any): number | undefined;\r\n\r\n /**\r\n * Returns the index of the first element in the array where predicate is true, and -1\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found,\r\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n findIndex(predicate: (value: number, index: number, obj: Uint32Array) => boolean, thisArg?: any): number;\r\n\r\n /**\r\n * Performs the specified action for each element in an array.\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n forEach(callbackfn: (value: number, index: number, array: Uint32Array) => void, thisArg?: any): void;\r\n /**\r\n * Returns the index of the first occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * Adds all the elements of an array separated by the specified separator string.\r\n * @param separator A string used to separate one element of an array from the next in the\r\n * resulting String. If omitted, the array elements are separated with a comma.\r\n */\r\n join(separator?: string): string;\r\n\r\n /**\r\n * Returns the index of the last occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * The length of the array.\r\n */\r\n readonly length: number;\r\n\r\n /**\r\n * Calls a defined callback function on each element of an array, and returns an array that\r\n * contains the results.\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n map(callbackfn: (value: number, index: number, array: Uint32Array) => number, thisArg?: any): Uint32Array;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number): number;\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint32Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an\r\n * argument instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number): number;\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint32Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Reverses the elements in an Array.\r\n */\r\n reverse(): Uint32Array;\r\n\r\n /**\r\n * Sets a value or an array of values.\r\n * @param array A typed or untyped array of values to set.\r\n * @param offset The index in the current array at which the values are to be written.\r\n */\r\n set(array: ArrayLike, offset?: number): void;\r\n\r\n /**\r\n * Returns a section of an array.\r\n * @param start The beginning of the specified portion of the array.\r\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n */\r\n slice(start?: number, end?: number): Uint32Array;\r\n\r\n /**\r\n * Determines whether the specified callback function returns true for any element of an array.\r\n * @param callbackfn A function that accepts up to three arguments. The some method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value true, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n some(callbackfn: (value: number, index: number, array: Uint32Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Sorts an array.\r\n * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\r\n * ```ts\r\n * [11,2,22,1].sort((a, b) => a - b)\r\n * ```\r\n */\r\n sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n /**\r\n * Gets a new Uint32Array view of the ArrayBuffer store for this array, referencing the elements\r\n * at begin, inclusive, up to end, exclusive.\r\n * @param begin The index of the beginning of the array.\r\n * @param end The index of the end of the array.\r\n */\r\n subarray(begin?: number, end?: number): Uint32Array;\r\n\r\n /**\r\n * Converts a number to a string by using the current locale.\r\n */\r\n toLocaleString(): string;\r\n\r\n /**\r\n * Returns a string representation of an array.\r\n */\r\n toString(): string;\r\n\r\n [index: number]: number;\r\n}\r\n\r\ninterface Uint32ArrayConstructor {\r\n readonly prototype: Uint32Array;\r\n new(length: number): Uint32Array;\r\n new(arrayOrArrayBuffer: ArrayLike | ArrayBufferLike): Uint32Array;\r\n new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Uint32Array;\r\n\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * Returns a new array from a set of elements.\r\n * @param items A set of elements to include in the new array object.\r\n */\r\n of(...items: number[]): Uint32Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n */\r\n from(arrayLike: ArrayLike): Uint32Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n * @param mapfn A mapping function to call on every element of the array.\r\n * @param thisArg Value of 'this' used to invoke the mapfn.\r\n */\r\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint32Array;\r\n\r\n}\r\ndeclare var Uint32Array: Uint32ArrayConstructor;\r\n\r\n/**\r\n * A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\n * of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Float32Array {\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * The ArrayBuffer instance referenced by the array.\r\n */\r\n readonly buffer: ArrayBufferLike;\r\n\r\n /**\r\n * The length in bytes of the array.\r\n */\r\n readonly byteLength: number;\r\n\r\n /**\r\n * The offset in bytes of the array.\r\n */\r\n readonly byteOffset: number;\r\n\r\n /**\r\n * Returns the this object after copying a section of the array identified by start and end\r\n * to the same array starting at position target\r\n * @param target If target is negative, it is treated as length+target where length is the\r\n * length of the array.\r\n * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n * is treated as length+end.\r\n * @param end If not specified, length of the this object is used as its default value.\r\n */\r\n copyWithin(target: number, start: number, end?: number): this;\r\n\r\n /**\r\n * Determines whether all the members of an array satisfy the specified test.\r\n * @param callbackfn A function that accepts up to three arguments. The every method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value false, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n every(callbackfn: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Returns the this object after filling the section identified by start and end with value\r\n * @param value value to fill array section with\r\n * @param start index to start filling the array at. If start is negative, it is treated as\r\n * length+start where length is the length of the array.\r\n * @param end index to stop filling the array at. If end is negative, it is treated as\r\n * length+end.\r\n */\r\n fill(value: number, start?: number, end?: number): this;\r\n\r\n /**\r\n * Returns the elements of an array that meet the condition specified in a callback function.\r\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n filter(callbackfn: (value: number, index: number, array: Float32Array) => any, thisArg?: any): Float32Array;\r\n\r\n /**\r\n * Returns the value of the first element in the array where predicate is true, and undefined\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found, find\r\n * immediately returns that element value. Otherwise, find returns undefined.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n find(predicate: (value: number, index: number, obj: Float32Array) => boolean, thisArg?: any): number | undefined;\r\n\r\n /**\r\n * Returns the index of the first element in the array where predicate is true, and -1\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found,\r\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n findIndex(predicate: (value: number, index: number, obj: Float32Array) => boolean, thisArg?: any): number;\r\n\r\n /**\r\n * Performs the specified action for each element in an array.\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n forEach(callbackfn: (value: number, index: number, array: Float32Array) => void, thisArg?: any): void;\r\n\r\n /**\r\n * Returns the index of the first occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * Adds all the elements of an array separated by the specified separator string.\r\n * @param separator A string used to separate one element of an array from the next in the\r\n * resulting String. If omitted, the array elements are separated with a comma.\r\n */\r\n join(separator?: string): string;\r\n\r\n /**\r\n * Returns the index of the last occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * The length of the array.\r\n */\r\n readonly length: number;\r\n\r\n /**\r\n * Calls a defined callback function on each element of an array, and returns an array that\r\n * contains the results.\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n map(callbackfn: (value: number, index: number, array: Float32Array) => number, thisArg?: any): Float32Array;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number): number;\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an\r\n * argument instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number): number;\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Reverses the elements in an Array.\r\n */\r\n reverse(): Float32Array;\r\n\r\n /**\r\n * Sets a value or an array of values.\r\n * @param array A typed or untyped array of values to set.\r\n * @param offset The index in the current array at which the values are to be written.\r\n */\r\n set(array: ArrayLike, offset?: number): void;\r\n\r\n /**\r\n * Returns a section of an array.\r\n * @param start The beginning of the specified portion of the array.\r\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n */\r\n slice(start?: number, end?: number): Float32Array;\r\n\r\n /**\r\n * Determines whether the specified callback function returns true for any element of an array.\r\n * @param callbackfn A function that accepts up to three arguments. The some method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value true, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n some(callbackfn: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Sorts an array.\r\n * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\r\n * ```ts\r\n * [11,2,22,1].sort((a, b) => a - b)\r\n * ```\r\n */\r\n sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n /**\r\n * Gets a new Float32Array view of the ArrayBuffer store for this array, referencing the elements\r\n * at begin, inclusive, up to end, exclusive.\r\n * @param begin The index of the beginning of the array.\r\n * @param end The index of the end of the array.\r\n */\r\n subarray(begin?: number, end?: number): Float32Array;\r\n\r\n /**\r\n * Converts a number to a string by using the current locale.\r\n */\r\n toLocaleString(): string;\r\n\r\n /**\r\n * Returns a string representation of an array.\r\n */\r\n toString(): string;\r\n\r\n [index: number]: number;\r\n}\r\n\r\ninterface Float32ArrayConstructor {\r\n readonly prototype: Float32Array;\r\n new(length: number): Float32Array;\r\n new(arrayOrArrayBuffer: ArrayLike | ArrayBufferLike): Float32Array;\r\n new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Float32Array;\r\n\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * Returns a new array from a set of elements.\r\n * @param items A set of elements to include in the new array object.\r\n */\r\n of(...items: number[]): Float32Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n */\r\n from(arrayLike: ArrayLike): Float32Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n * @param mapfn A mapping function to call on every element of the array.\r\n * @param thisArg Value of 'this' used to invoke the mapfn.\r\n */\r\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Float32Array;\r\n\r\n\r\n}\r\ndeclare var Float32Array: Float32ArrayConstructor;\r\n\r\n/**\r\n * A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\n * number of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Float64Array {\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * The ArrayBuffer instance referenced by the array.\r\n */\r\n readonly buffer: ArrayBufferLike;\r\n\r\n /**\r\n * The length in bytes of the array.\r\n */\r\n readonly byteLength: number;\r\n\r\n /**\r\n * The offset in bytes of the array.\r\n */\r\n readonly byteOffset: number;\r\n\r\n /**\r\n * Returns the this object after copying a section of the array identified by start and end\r\n * to the same array starting at position target\r\n * @param target If target is negative, it is treated as length+target where length is the\r\n * length of the array.\r\n * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n * is treated as length+end.\r\n * @param end If not specified, length of the this object is used as its default value.\r\n */\r\n copyWithin(target: number, start: number, end?: number): this;\r\n\r\n /**\r\n * Determines whether all the members of an array satisfy the specified test.\r\n * @param callbackfn A function that accepts up to three arguments. The every method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value false, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n every(callbackfn: (value: number, index: number, array: Float64Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Returns the this object after filling the section identified by start and end with value\r\n * @param value value to fill array section with\r\n * @param start index to start filling the array at. If start is negative, it is treated as\r\n * length+start where length is the length of the array.\r\n * @param end index to stop filling the array at. If end is negative, it is treated as\r\n * length+end.\r\n */\r\n fill(value: number, start?: number, end?: number): this;\r\n\r\n /**\r\n * Returns the elements of an array that meet the condition specified in a callback function.\r\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n filter(callbackfn: (value: number, index: number, array: Float64Array) => any, thisArg?: any): Float64Array;\r\n\r\n /**\r\n * Returns the value of the first element in the array where predicate is true, and undefined\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found, find\r\n * immediately returns that element value. Otherwise, find returns undefined.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n find(predicate: (value: number, index: number, obj: Float64Array) => boolean, thisArg?: any): number | undefined;\r\n\r\n /**\r\n * Returns the index of the first element in the array where predicate is true, and -1\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found,\r\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n findIndex(predicate: (value: number, index: number, obj: Float64Array) => boolean, thisArg?: any): number;\r\n\r\n /**\r\n * Performs the specified action for each element in an array.\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n forEach(callbackfn: (value: number, index: number, array: Float64Array) => void, thisArg?: any): void;\r\n\r\n /**\r\n * Returns the index of the first occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * Adds all the elements of an array separated by the specified separator string.\r\n * @param separator A string used to separate one element of an array from the next in the\r\n * resulting String. If omitted, the array elements are separated with a comma.\r\n */\r\n join(separator?: string): string;\r\n\r\n /**\r\n * Returns the index of the last occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * The length of the array.\r\n */\r\n readonly length: number;\r\n\r\n /**\r\n * Calls a defined callback function on each element of an array, and returns an array that\r\n * contains the results.\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n map(callbackfn: (value: number, index: number, array: Float64Array) => number, thisArg?: any): Float64Array;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number): number;\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an\r\n * argument instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number): number;\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Reverses the elements in an Array.\r\n */\r\n reverse(): Float64Array;\r\n\r\n /**\r\n * Sets a value or an array of values.\r\n * @param array A typed or untyped array of values to set.\r\n * @param offset The index in the current array at which the values are to be written.\r\n */\r\n set(array: ArrayLike, offset?: number): void;\r\n\r\n /**\r\n * Returns a section of an array.\r\n * @param start The beginning of the specified portion of the array.\r\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n */\r\n slice(start?: number, end?: number): Float64Array;\r\n\r\n /**\r\n * Determines whether the specified callback function returns true for any element of an array.\r\n * @param callbackfn A function that accepts up to three arguments. The some method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value true, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n some(callbackfn: (value: number, index: number, array: Float64Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Sorts an array.\r\n * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\r\n * ```ts\r\n * [11,2,22,1].sort((a, b) => a - b)\r\n * ```\r\n */\r\n sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n /**\r\n * at begin, inclusive, up to end, exclusive.\r\n * @param begin The index of the beginning of the array.\r\n * @param end The index of the end of the array.\r\n */\r\n subarray(begin?: number, end?: number): Float64Array;\r\n\r\n toString(): string;\r\n\r\n [index: number]: number;\r\n}\r\n\r\ninterface Float64ArrayConstructor {\r\n readonly prototype: Float64Array;\r\n new(length: number): Float64Array;\r\n new(arrayOrArrayBuffer: ArrayLike | ArrayBufferLike): Float64Array;\r\n new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Float64Array;\r\n\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * Returns a new array from a set of elements.\r\n * @param items A set of elements to include in the new array object.\r\n */\r\n of(...items: number[]): Float64Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n */\r\n from(arrayLike: ArrayLike): Float64Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n * @param mapfn A mapping function to call on every element of the array.\r\n * @param thisArg Value of 'this' used to invoke the mapfn.\r\n */\r\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Float64Array;\r\n\r\n}\r\ndeclare var Float64Array: Float64ArrayConstructor;\r\n\r\n/////////////////////////////\r\n/// ECMAScript Internationalization API\r\n/////////////////////////////\r\n\r\ndeclare namespace Intl {\r\n interface CollatorOptions {\r\n usage?: string;\r\n localeMatcher?: string;\r\n numeric?: boolean;\r\n caseFirst?: string;\r\n sensitivity?: string;\r\n ignorePunctuation?: boolean;\r\n }\r\n\r\n interface ResolvedCollatorOptions {\r\n locale: string;\r\n usage: string;\r\n sensitivity: string;\r\n ignorePunctuation: boolean;\r\n collation: string;\r\n caseFirst: string;\r\n numeric: boolean;\r\n }\r\n\r\n interface Collator {\r\n compare(x: string, y: string): number;\r\n resolvedOptions(): ResolvedCollatorOptions;\r\n }\r\n var Collator: {\r\n new(locales?: string | string[], options?: CollatorOptions): Collator;\r\n (locales?: string | string[], options?: CollatorOptions): Collator;\r\n supportedLocalesOf(locales: string | string[], options?: CollatorOptions): string[];\r\n };\r\n\r\n interface NumberFormatOptions {\r\n localeMatcher?: string;\r\n style?: string;\r\n currency?: string;\r\n currencyDisplay?: string;\r\n useGrouping?: boolean;\r\n minimumIntegerDigits?: number;\r\n minimumFractionDigits?: number;\r\n maximumFractionDigits?: number;\r\n minimumSignificantDigits?: number;\r\n maximumSignificantDigits?: number;\r\n }\r\n\r\n interface ResolvedNumberFormatOptions {\r\n locale: string;\r\n numberingSystem: string;\r\n style: string;\r\n currency?: string;\r\n currencyDisplay?: string;\r\n minimumIntegerDigits: number;\r\n minimumFractionDigits: number;\r\n maximumFractionDigits: number;\r\n minimumSignificantDigits?: number;\r\n maximumSignificantDigits?: number;\r\n useGrouping: boolean;\r\n }\r\n\r\n interface NumberFormat {\r\n format(value: number): string;\r\n resolvedOptions(): ResolvedNumberFormatOptions;\r\n }\r\n var NumberFormat: {\r\n new(locales?: string | string[], options?: NumberFormatOptions): NumberFormat;\r\n (locales?: string | string[], options?: NumberFormatOptions): NumberFormat;\r\n supportedLocalesOf(locales: string | string[], options?: NumberFormatOptions): string[];\r\n };\r\n\r\n interface DateTimeFormatOptions {\r\n localeMatcher?: string;\r\n weekday?: string;\r\n era?: string;\r\n year?: string;\r\n month?: string;\r\n day?: string;\r\n hour?: string;\r\n minute?: string;\r\n second?: string;\r\n timeZoneName?: string;\r\n formatMatcher?: string;\r\n hour12?: boolean;\r\n timeZone?: string;\r\n }\r\n\r\n interface ResolvedDateTimeFormatOptions {\r\n locale: string;\r\n calendar: string;\r\n numberingSystem: string;\r\n timeZone: string;\r\n hour12?: boolean;\r\n weekday?: string;\r\n era?: string;\r\n year?: string;\r\n month?: string;\r\n day?: string;\r\n hour?: string;\r\n minute?: string;\r\n second?: string;\r\n timeZoneName?: string;\r\n }\r\n\r\n interface DateTimeFormat {\r\n format(date?: Date | number): string;\r\n resolvedOptions(): ResolvedDateTimeFormatOptions;\r\n }\r\n var DateTimeFormat: {\r\n new(locales?: string | string[], options?: DateTimeFormatOptions): DateTimeFormat;\r\n (locales?: string | string[], options?: DateTimeFormatOptions): DateTimeFormat;\r\n supportedLocalesOf(locales: string | string[], options?: DateTimeFormatOptions): string[];\r\n };\r\n}\r\n\r\ninterface String {\r\n /**\r\n * Determines whether two strings are equivalent in the current or specified locale.\r\n * @param that String to compare to target string\r\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. This parameter must conform to BCP 47 standards; see the Intl.Collator object for details.\r\n * @param options An object that contains one or more properties that specify comparison options. see the Intl.Collator object for details.\r\n */\r\n localeCompare(that: string, locales?: string | string[], options?: Intl.CollatorOptions): number;\r\n}\r\n\r\ninterface Number {\r\n /**\r\n * Converts a number to a string by using the current or specified locale.\r\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\r\n * @param options An object that contains one or more properties that specify comparison options.\r\n */\r\n toLocaleString(locales?: string | string[], options?: Intl.NumberFormatOptions): string;\r\n}\r\n\r\ninterface Date {\r\n /**\r\n * Converts a date and time to a string by using the current or specified locale.\r\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\r\n * @param options An object that contains one or more properties that specify comparison options.\r\n */\r\n toLocaleString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;\r\n /**\r\n * Converts a date to a string by using the current or specified locale.\r\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\r\n * @param options An object that contains one or more properties that specify comparison options.\r\n */\r\n toLocaleDateString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;\r\n\r\n /**\r\n * Converts a time to a string by using the current or specified locale.\r\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\r\n * @param options An object that contains one or more properties that specify comparison options.\r\n */\r\n toLocaleTimeString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;\r\n}\r\n\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved. \nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0 \n \nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \nMERCHANTABLITY OR NON-INFRINGEMENT. \n \nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// \r\n\n\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved. \nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0 \n \nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \nMERCHANTABLITY OR NON-INFRINGEMENT. \n \nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// \r\n\n\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved. \nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0 \n \nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \nMERCHANTABLITY OR NON-INFRINGEMENT. \n \nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// \r\n\n\ninterface Map {\r\n clear(): void;\r\n delete(key: K): boolean;\r\n forEach(callbackfn: (value: V, key: K, map: Map) => void, thisArg?: any): void;\r\n get(key: K): V | undefined;\r\n has(key: K): boolean;\r\n set(key: K, value: V): this;\r\n readonly size: number;\r\n}\r\n\r\ninterface MapConstructor {\r\n new(): Map;\r\n new(entries?: readonly (readonly [K, V])[] | null): Map;\r\n readonly prototype: Map;\r\n}\r\ndeclare var Map: MapConstructor;\r\n\r\ninterface ReadonlyMap {\r\n forEach(callbackfn: (value: V, key: K, map: ReadonlyMap) => void, thisArg?: any): void;\r\n get(key: K): V | undefined;\r\n has(key: K): boolean;\r\n readonly size: number;\r\n}\r\n\r\ninterface WeakMap {\r\n delete(key: K): boolean;\r\n get(key: K): V | undefined;\r\n has(key: K): boolean;\r\n set(key: K, value: V): this;\r\n}\r\n\r\ninterface WeakMapConstructor {\r\n new (entries?: readonly [K, V][] | null): WeakMap;\r\n readonly prototype: WeakMap;\r\n}\r\ndeclare var WeakMap: WeakMapConstructor;\r\n\r\ninterface Set {\r\n add(value: T): this;\r\n clear(): void;\r\n delete(value: T): boolean;\r\n forEach(callbackfn: (value: T, value2: T, set: Set) => void, thisArg?: any): void;\r\n has(value: T): boolean;\r\n readonly size: number;\r\n}\r\n\r\ninterface SetConstructor {\r\n new (values?: readonly T[] | null): Set;\r\n readonly prototype: Set;\r\n}\r\ndeclare var Set: SetConstructor;\r\n\r\ninterface ReadonlySet {\r\n forEach(callbackfn: (value: T, value2: T, set: ReadonlySet) => void, thisArg?: any): void;\r\n has(value: T): boolean;\r\n readonly size: number;\r\n}\r\n\r\ninterface WeakSet {\r\n add(value: T): this;\r\n delete(value: T): boolean;\r\n has(value: T): boolean;\r\n}\r\n\r\ninterface WeakSetConstructor {\r\n new (values?: readonly T[] | null): WeakSet;\r\n readonly prototype: WeakSet;\r\n}\r\ndeclare var WeakSet: WeakSetConstructor;\r\n\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved. \nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0 \n \nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \nMERCHANTABLITY OR NON-INFRINGEMENT. \n \nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// \r\n\n\ninterface PromiseConstructor {\r\n /**\r\n * A reference to the prototype.\r\n */\r\n readonly prototype: Promise;\r\n\r\n /**\r\n * Creates a new Promise.\r\n * @param executor A callback used to initialize the promise. This callback is passed two arguments:\r\n * a resolve callback used to resolve the promise with a value or the result of another promise,\r\n * and a reject callback used to reject the promise with a provided reason or error.\r\n */\r\n new (executor: (resolve: (value?: T | PromiseLike) => void, reject: (reason?: any) => void) => void): Promise;\r\n\r\n /**\r\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\r\n * resolve, or rejected when any Promise is rejected.\r\n * @param values An array of Promises.\r\n * @returns A new Promise.\r\n */\r\n all(values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike, T10 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;\r\n\r\n /**\r\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\r\n * resolve, or rejected when any Promise is rejected.\r\n * @param values An array of Promises.\r\n * @returns A new Promise.\r\n */\r\n all(values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;\r\n\r\n /**\r\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\r\n * resolve, or rejected when any Promise is rejected.\r\n * @param values An array of Promises.\r\n * @returns A new Promise.\r\n */\r\n all(values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;\r\n\r\n /**\r\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\r\n * resolve, or rejected when any Promise is rejected.\r\n * @param values An array of Promises.\r\n * @returns A new Promise.\r\n */\r\n all(values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;\r\n\r\n /**\r\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\r\n * resolve, or rejected when any Promise is rejected.\r\n * @param values An array of Promises.\r\n * @returns A new Promise.\r\n */\r\n all(values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6]>;\r\n\r\n /**\r\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\r\n * resolve, or rejected when any Promise is rejected.\r\n * @param values An array of Promises.\r\n * @returns A new Promise.\r\n */\r\n all(values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike]): Promise<[T1, T2, T3, T4, T5]>;\r\n\r\n /**\r\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\r\n * resolve, or rejected when any Promise is rejected.\r\n * @param values An array of Promises.\r\n * @returns A new Promise.\r\n */\r\n all(values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike ]): Promise<[T1, T2, T3, T4]>;\r\n\r\n /**\r\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\r\n * resolve, or rejected when any Promise is rejected.\r\n * @param values An array of Promises.\r\n * @returns A new Promise.\r\n */\r\n all(values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike]): Promise<[T1, T2, T3]>;\r\n\r\n /**\r\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\r\n * resolve, or rejected when any Promise is rejected.\r\n * @param values An array of Promises.\r\n * @returns A new Promise.\r\n */\r\n all(values: readonly [T1 | PromiseLike, T2 | PromiseLike]): Promise<[T1, T2]>;\r\n\r\n /**\r\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\r\n * resolve, or rejected when any Promise is rejected.\r\n * @param values An array of Promises.\r\n * @returns A new Promise.\r\n */\r\n all(values: readonly (T | PromiseLike)[]): Promise;\r\n\r\n /**\r\n * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\r\n * or rejected.\r\n * @param values An array of Promises.\r\n * @returns A new Promise.\r\n */\r\n race(values: readonly T[]): Promise ? U : T>;\r\n\r\n /**\r\n * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\r\n * or rejected.\r\n * @param values An iterable of Promises.\r\n * @returns A new Promise.\r\n */\r\n race(values: Iterable): Promise ? U : T>;\r\n\r\n /**\r\n * Creates a new rejected promise for the provided reason.\r\n * @param reason The reason the promise was rejected.\r\n * @returns A new rejected Promise.\r\n */\r\n reject(reason?: any): Promise;\r\n\r\n /**\r\n * Creates a new resolved promise for the provided value.\r\n * @param value A promise.\r\n * @returns A promise whose internal state matches the provided promise.\r\n */\r\n resolve(value: T | PromiseLike): Promise;\r\n\r\n /**\r\n * Creates a new resolved promise .\r\n * @returns A resolved promise.\r\n */\r\n resolve(): Promise;\r\n}\r\n\r\ndeclare var Promise: PromiseConstructor;\r\n\n//import {\n IAliasParams,\n IAliasTransaction,\n IBurnParams,\n IBurnTransaction,\n ICancelLeaseParams,\n ICancelLeaseTransaction,\n ICancelOrder,\n ICancelOrderParams,\n IDataParams,\n IDataTransaction,\n IInvokeScriptParams,\n IInvokeScriptTransaction,\n IIssueParams,\n IIssueTransaction,\n ILeaseParams,\n ILeaseTransaction,\n IMassTransferItem,\n IMassTransferParams,\n IMassTransferTransaction,\n IOrderParams,\n IReissueParams,\n IReissueTransaction,\n ISetAssetScriptParams,\n ISetAssetScriptTransaction,\n ISetScriptParams,\n ISetScriptTransaction,\n ISponsorshipParams,\n ISponsorshipTransaction,\n ITransferParams,\n ITransferTransaction,\n TOrder,\n TSeedTypes,\n TTx,\n TTxParams,\n WithId,\n WithTxType,\n INodeRequestOptions,\n TDataEntry, ITransaction, IUpdateAssetInfoParams, IUpdateAssetInfoTransaction\n} from '@waves/waves-transactions';\n\n///splice-start\n {\n\n var env: {\n API_BASE: string,\n SEED: string,\n CHAIN_ID: string,\n }\n ///splice-end\n /**\n * Contains seeds generated by setupAccounts function\n * E.g:\n * ```ts\n * await setupAccounts({foo:10, bar: 20})\n * console.log(accounts.foo, accounts.bar) // these variables now contain seeds from accounts with 10 and 20 wavelets\n * ```\n */\n var accounts: Record;\n\n\n/// TRANSACTION CREATORS\n /**\n * Creates alias transaction or signs already formed one. Creates alias for address.\n * Alias could be used in place of address later\n */\n function alias(params: IAliasParams, seed?: TSeedTypes): IAliasTransaction & WithId\n\n /**\n * Creates burn transaction or signs already formed one. Burn transaction destroys tokens. You cannot burn WAVES\n */\n function burn(params: IBurnParams, seed?: TSeedTypes): IBurnTransaction & WithId\n\n /**\n * Creates cancel-lease transaction or signs already formed one\n */\n function cancelLease(params: ICancelLeaseParams, seed?: TSeedTypes): ICancelLeaseTransaction & WithId\n\n /**\n * Creates cancel-order request or signs already formed one\n */\n function cancelOrder(params: ICancelOrderParams, seed?: TSeedTypes): ICancelOrder\n\n /**\n * Creates data transaction or signs already formed one\n */\n function data(params: IDataParams, seed?: TSeedTypes): IDataTransaction & WithId\n\n /**\n * Creates issue transaction or signs already formed one\n */\n function issue(params: IIssueParams, seed?: TSeedTypes): IIssueTransaction & WithId\n\n /**\n * Creates reissue transaction or signs already formed one\n */\n function reissue(params: IReissueParams, seed?: TSeedTypes): IReissueTransaction & WithId\n\n /**\n * Creates lease transaction or signs already formed one\n */\n function lease(params: ILeaseParams, seed?: TSeedTypes): ILeaseTransaction & WithId\n\n /**\n * Creates mass-transfer transaction or signs already formed one\n */\n function massTransfer(params: IMassTransferParams, seed?: TSeedTypes): IMassTransferTransaction & WithId\n\n /**\n * Creates order or signs already formed one\n */\n function order(params: IOrderParams, seed?: TSeedTypes): TOrder & WithId\n\n /**\n * Creates transfer transaction or signs already formed one\n */\n function transfer(params: ITransferParams, seed?: TSeedTypes): ITransferTransaction & WithId\n\n /**\n * Creates set-script transaction or signs already formed one\n */\n function setScript(params: ISetScriptParams, seed?: TSeedTypes): ISetScriptTransaction & WithId\n\n /**\n * Creates set-asset-script transaction or signs already formed one\n */\n function setAssetScript(params: ISetAssetScriptParams, seed?: TSeedTypes): ISetAssetScriptTransaction & WithId\n\n /**\n * Creates invoke-script transaction or signs already formed one\n */\n function invokeScript(params: IInvokeScriptParams, seed?: TSeedTypes): IInvokeScriptTransaction & WithId\n\n /**\n * Creates sponsorship transaction or signs already formed one\n */\n function sponsorship(params: ISponsorshipParams, seed?: TSeedTypes): ISponsorshipTransaction & WithId\n\n /**\n * Creates updateAssetInfo transaction or signs already formed one\n */\n function updateAssetInfo(params: IUpdateAssetInfoParams, seed?: TSeedTypes): IUpdateAssetInfoTransaction & WithId\n\n\n /**\n * Signs arbitrary transaction\n */\n function signTx(params: TTx | (TTxParams & WithTxType), seed?: TSeedTypes): TTx\n\n\n/// NODE INTERACTION\n /**\n * Resolves when specified txId is mined into the block\n * By default has 20s timeout and uses current environment node\n *\n * ### Usage\n * ```ts\n * const tx = .....\n * await broadcast(tx)\n * await waitForTx(tx.id)\n * ```\n */\n function waitForTx(txId: string, options?: INodeRequestOptions, requestOptions?: RequestInit): Promise\n\n /**\n * Resolves N blocks after specified txId is mined into the block\n * By default has 20s timeout and uses current environment node\n */\n function waitForTxWithNConfirmations(txId: string, confirmations: number, options?: INodeRequestOptions, requestOptions?: RequestInit): Promise\n\n /**\n * Resolves N blocks after current blockchain height\n * By default has 20s timeout and uses current environment node\n */\n function waitNBlocks(blocksCount: number, options?: INodeRequestOptions, requestOptions?: RequestInit): Promise\n\n /**\n * Current blockchain height\n * By default has 20s timeout and uses current environment node\n */\n function currentHeight(apiBase?: string, requestOptions?: RequestInit): Promise\n\n /**\n * Resolves after target height has been reached\n * By default has 20s timeout and uses current environment node\n */\n function waitForHeight(target: number, options?: INodeRequestOptions, requestOptions?: RequestInit): Promise\n\n /**\n * Get transaction by Id. Returns null if no transaction with such id present in blockchain\n */\n function transactionById(txId: string, apiBase?: string, requestOptions?: RequestInit): Promise;\n\n /**\n * Get account effective balance\n * By default uses current environment address and node\n */\n function balance(address?: string, apiBase?: string, requestOptions?: RequestInit): Promise\n\n /**\n * Retrieve information about specific asset account balance\n * By default uses current environment address and node\n */\n function assetBalance(assetId: string, address?: string, apiBase?: string, requestOptions?: RequestInit): Promise\n\n /**\n * Retrieve full information about waves account balance. Effective, generating etc\n * By default uses current environment address and node\n */\n function balanceDetails(address?: string, apiBase?: string, requestOptions?: RequestInit): Promise\n\n /**\n * Get full account dictionary\n * By default uses current environment address and node\n */\n function accountData(address?: string, apiBase?: string, requestOptions?: RequestInit): Promise>\n\n /**\n * Get data from account dictionary by key\n * By default uses current environment address and node\n */\n function accountDataByKey(key: string, address?: string, apiBase?: string, requestOptions?: RequestInit): Promise\n\n /**\n * Get invokeScript tx state changes\n * By default uses current environment address and node\n */\n function stateChanges(invokeScriptTxId: string, apiBase?: string, requestOptions?: RequestInit): Promise\n\n /**\n * Sends transaction to waves node\n * By default uses current environment address and node\n */\n function broadcast(tx: TTx, apiBase?: string, requestOptions?: RequestInit): Promise\n\n\n// UTILITY\n /**\n * Returns file content as string. Either from 'ride' folder or WEB IDE storage\n */\n function file(name?: string): string\n\n /**\n * Shorthand for file()\n */\n function contract(): Promise\n\n /**\n * Generates key pair from seed\n * By default uses current environment seed\n */\n function keyPair(seed?: string): { publicKey: string, privateKey: string }\n\n /**\n * Generates public key from seed\n * By default uses current environment seed\n */\n function publicKey(seed?: string): string\n\n /**\n * Generates private key from seed\n * By default uses current environment seed\n */\n function privateKey(seed?: string): string\n\n /**\n * Generates address\n * By default uses current environment seed and chainId\n */\n function address(seed?: string, chainId?: string): string\n\n /**\n * Returns base64 representations of compiled ride file\n */\n function compile(code: string): string\n\n /**\n * Signs arbitrary bytes\n * By default uses current environment seed and chainId\n */\n function signBytes(bytes: Uint8Array, seed?: string): string\n\n\n interface ISetupAccountsOptions {\n /**\n * Generated accounts have seed like 'name#' + nonce. E.g.: foo#ff4682. By default nonce is chosen randomly\n * you can set nonce to have consistent seeds between tests\n */\n nonce?: string,\n /**\n * Seed phrase for account, from which waves will be transferred to generated accounts.\n * If not set current account will be used\n */\n masterSeed?: string,\n }\n\n interface IPayment {\n assetId?: string | null\n amount: number\n }\n\n interface IPayment {\n assetId?: string | null\n amount: number\n }\n\n interface IInvokeArgument {\n /**\n * possible values: \"string\" | \"number\" | \"binary\" | \"boolean\"\n */\n type: string,\n value: string | number | boolean\n }\n\n interface IInvokeOptions {\n dApp: string\n functionName: string\n arguments?: (number | string | boolean | Uint8Array | number[] | IInvokeArgument)[]\n payment?: IPayment | IPayment[] | number\n }\n\n /**\n * Creates invoke tx and broadcasts it\n * */\n function invoke(options: IInvokeOptions, seed?: string, apiBase?: string, requestOptions?: RequestInit): Promise;\n\n /**\n * Generates test accounts with balances. Sends waves to generated accounts from master seed. Saves account seeds `accounts`\n * E.g.: setupAccounts({foo:1000}). Now accounts['foo'] contains seed phrase for account and this account has\n * 1000 wavelets\n * By default uses current environment node and seed as masterSeed\n *\n * ### Usage\n * ```ts\n * const wvs = 10 ** 8\n * describe('some suite', () => {\n * before(async ()) => {\n * await setupAccounts({foo: 1 * wvs, bar: 2 * wvs})\n * })\n *\n * it('logs balances', async () => {\n * console.log(await balance(address(accounts.foo)))\n * console.log(await balance(address(accounts.bar)))\n * })\n * })\n * ```\n */\n function setupAccounts(balances: Record, options?: ISetupAccountsOptions, requestOptions?: RequestInit): Promise>\n\n /**\n * Shorthand for `chai.//` [[chai]]\n */\n function //(target: any, message?: string): any\n\n /**\n * Waves-crypto library https://www.npmjs.com/package/@waves/waves-crypto\n * Available in global scope:\n * ```js\n * const addressBytes = crypto.base58Decode('3N77yhDrPTdLFjzNPZcBQPZLDg11EHAB7xF')\n * ```\n */\n module wavesCrypto {\n\n }\n\n\n /**\n * Chai assertion library https://www.chaijs.com/\n * with chaiAsPromised plugin https://www.chaijs.com/plugins/chai-as-promised/\n * * Available in global scope:\n * ```js\n * chai.//(2 === 3).to.be.false\n * ```\n * You can always use shorthand for [[//]]\n */\n module chai {\n\n }\n}\n declare const TRANSACTION_TYPE: {\n ISSUE: 3;\n TRANSFER: 4;\n REISSUE: 5;\n BURN: 6;\n EXCHANGE: 7;\n LEASE: 8;\n CANCEL_LEASE: 9;\n ALIAS: 10;\n MASS_TRANSFER: 11;\n DATA: 12;\n SET_SCRIPT: 13;\n SPONSORSHIP: 14;\n SET_ASSET_SCRIPT: 15;\n INVOKE_SCRIPT: 16;\n UPDATE_ASSET_INFO: 17;\n};\n declare const DATA_FIELD_TYPE: {\n INTEGER: \"integer\";\n BOOLEAN: \"boolean\";\n BINARY: \"binary\";\n STRING: \"string\";\n};\n declare type TDataEntry = TTypedData & {\n key: string;\n};\n declare type TTypedData = IBooleanData | IIntegerData | IStringData | IBinaryData;\n declare type TDeleteRequest = {\n type?: null;\n value?: null;\n key: string;\n};\n interface IBooleanData {\n type: typeof DATA_FIELD_TYPE.BOOLEAN;\n value: boolean;\n}\n interface IIntegerData {\n type: typeof DATA_FIELD_TYPE.INTEGER;\n value: LONG;\n}\n interface IStringData {\n type: typeof DATA_FIELD_TYPE.STRING;\n value: string;\n}\n interface IBinaryData {\n type: typeof DATA_FIELD_TYPE.BINARY;\n value: string;\n}\n interface ITypelessDataEntry {\n key: string;\n value: string | number | boolean | Uint8Array | number[];\n}\n declare type TTransactionType = typeof TRANSACTION_TYPE[keyof typeof TRANSACTION_TYPE];\n declare type TDataFiledType = typeof DATA_FIELD_TYPE[keyof typeof DATA_FIELD_TYPE];\n interface WithSender {\n /**\n * Account public key. This account will pay fee and this account's script will be executed if exists\n */\n senderPublicKey: string;\n}\n interface WithProofs {\n /**\n * ITransaction signatures\n * @minItems 0\n * @maxItems 8\n */\n proofs: string[];\n}\n interface WithChainId {\n /**\n * Network byte.\n * E.g.,\n * 87 is used for Waves mainnet, 84 for Waves testnet\n */\n chainId: number;\n}\n interface WithId {\n /**\n * Transaction ID. 32 bytes hash encoded as base58 string\n */\n id: string;\n}\n interface WithTxType {\n type: TTransactionType;\n}\n/**\n * This interface has common fields for all transactions\n * @typeparam LONG Generic type representing LONG type. Default to string | number\n */\n interface ITransaction extends WithProofs, WithSender {\n type: number;\n timestamp: number;\n fee: LONG;\n version: number;\n chainId: number;\n feeAssetId?: string | null;\n}\n/**\n *\n */\n declare type TTx = IAliasTransaction | IIssueTransaction | ITransferTransaction | IReissueTransaction | IBurnTransaction | ILeaseTransaction | IExchangeTransaction | ICancelLeaseTransaction | IMassTransferTransaction | ISetScriptTransaction | ISponsorshipTransaction | IDataTransaction | ISetAssetScriptTransaction | IInvokeScriptTransaction | IUpdateAssetInfoTransaction;\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IIssueTransaction extends ITransaction, WithChainId {\n type: typeof TRANSACTION_TYPE.ISSUE;\n /**\n * @minLength 4\n * @maxLength 16\n */\n name: string;\n /**\n * @maxLength 1000\n */\n description: string;\n decimals: number;\n quantity: LONG;\n reissuable: boolean;\n script?: string;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface ISetScriptTransaction extends ITransaction, WithChainId {\n type: typeof TRANSACTION_TYPE.SET_SCRIPT;\n /**\n * Compiled script encoded as base64 string\n */\n script: string | null;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface ISetAssetScriptTransaction extends ITransaction, WithChainId {\n type: typeof TRANSACTION_TYPE.SET_ASSET_SCRIPT;\n assetId: string;\n /**\n * Compiled script encoded as base64 string\n */\n script: string | null;\n}\n/**\n * Used to transfer assets from one account to another.\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface ITransferTransaction extends ITransaction {\n type: typeof TRANSACTION_TYPE.TRANSFER;\n recipient: string;\n amount: LONG;\n attachment: TTypedData;\n feeAssetId?: string | null;\n assetId?: string | null;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IMassTransferItem {\n recipient: string;\n amount: LONG;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IReissueTransaction extends ITransaction, WithChainId {\n type: typeof TRANSACTION_TYPE.REISSUE;\n assetId: string;\n quantity: LONG;\n reissuable: boolean;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IBurnTransaction extends ITransaction, WithChainId {\n type: typeof TRANSACTION_TYPE.BURN;\n assetId: string;\n amount: LONG;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IExchangeTransaction extends ITransaction {\n type: typeof TRANSACTION_TYPE.EXCHANGE;\n order1: IOrder;\n order2: IOrder;\n price: LONG;\n amount: LONG;\n buyMatcherFee: LONG;\n sellMatcherFee: LONG;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface ILeaseTransaction extends ITransaction {\n type: typeof TRANSACTION_TYPE.LEASE;\n amount: LONG;\n recipient: string;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface ICancelLeaseTransaction extends ITransaction, WithChainId {\n type: typeof TRANSACTION_TYPE.CANCEL_LEASE;\n leaseId: string;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n * Library requires chainId to be present in this transaction, even thought node returns json without it\n */\n interface IAliasTransaction extends ITransaction, WithChainId {\n type: typeof TRANSACTION_TYPE.ALIAS;\n alias: string;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IMassTransferTransaction extends ITransaction {\n type: typeof TRANSACTION_TYPE.MASS_TRANSFER;\n transfers: IMassTransferItem[];\n attachment: TTypedData;\n assetId?: string | null;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface ISponsorshipTransaction extends ITransaction {\n type: typeof TRANSACTION_TYPE.SPONSORSHIP;\n /**\n * Minimal fee amount in sponsored asset. To disable sponsorship set it to 0\n */\n minSponsoredAssetFee: LONG;\n /**\n * AssetID of sponsored token\n */\n assetId: string;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IDataTransaction extends ITransaction {\n type: typeof TRANSACTION_TYPE.DATA;\n data: Array;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IInvokeScriptPayment {\n assetId: string | null;\n amount: LONG;\n}\n interface IInvokeScriptCall {\n /**\n * Function name\n */\n function: string;\n /**\n * Array of function arguments. E.g.:\n * {type: 'integer', value: 200} or\n * { type: 'binary', value: 'base64:AQa3b8tH'}\n */\n args: TInvokeScriptCallArgument[];\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IInvokeScriptTransaction extends ITransaction {\n type: typeof TRANSACTION_TYPE.INVOKE_SCRIPT;\n dApp: string;\n feeAssetId?: string | null;\n call?: IInvokeScriptCall;\n payment?: IInvokeScriptPayment[];\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IUpdateAssetInfoTransaction extends ITransaction {\n type: typeof TRANSACTION_TYPE.UPDATE_ASSET_INFO;\n assetId: string;\n name: string;\n description: string;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IOrder extends WithProofs, WithSender {\n version?: number;\n orderType: 'buy' | 'sell';\n assetPair: {\n amountAsset: string | null;\n priceAsset: string | null;\n };\n price: LONG;\n amount: LONG;\n timestamp: number;\n expiration: number;\n matcherFee: number;\n matcherPublicKey: string;\n}\n interface IOrderV1 extends IOrder {\n version: 1 | undefined;\n}\n interface IOrderV2 extends IOrder {\n version: 2;\n}\n interface IOrderV3 extends IOrder {\n version: 3;\n matcherFeeAssetId?: string | null;\n}\n declare type TOrder = IOrderV1 | IOrderV2 | IOrderV3;\n/**\n * CancelOrder object. When this object is sent to matcher, order with 'orderId' will be canceled\n */\n interface ICancelOrder {\n sender: string;\n orderId: string;\n signature: string;\n hash: string;\n}\n declare type TTxParams = IAliasParams | IBurnParams | IInvokeScriptParams | ICancelLeaseParams | IDataParams | IIssueParams | ILeaseParams | IMassTransferParams | IReissueParams | ISetAssetScriptParams | ISetScriptParams | ISponsorshipParams | ITransferParams | IUpdateAssetInfoParams;\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IBasicParams {\n /**\n * Transaction version. If not set, the latest available version will be used.\n */\n version?: number;\n /**\n * Transaction fee. If not set, fee will be calculated automatically\n */\n fee?: LONG;\n /**\n * If fee is not set, this value will be added to automatically calculated fee. E.x.:\n * Account is scripted and 400000 fee more is required.\n */\n additionalFee?: number;\n /**\n * If not set, public key will be derived from seed phrase. You should provide senderPublicKey in two cases:\n * 1. Account, from which this tx should be sent, differs from tx signer. E.g., we have smart account that requires 2 signatures.\n * 2. You to create tx without proof. Therefore no seed is provided.\n */\n senderPublicKey?: string;\n /**\n * Transaction timestamp. If not set current timestamp will be used. Date.now()\n */\n timestamp?: number;\n /**\n * Network byte. Could be set as number or as char.\n * If set as char(string), charCodeAt(0) will be used. E.g.,\n * 'W' will be converted to '87'\n * If not set, 87 will be used as default\n */\n chainId?: string | number;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IAliasParams extends IBasicParams {\n alias: string;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IBurnParams extends IBasicParams {\n assetId: string;\n amount: LONG;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface ICancelLeaseParams extends IBasicParams {\n leaseId: string;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IDataParams extends IBasicParams {\n data: Array;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IIssueParams extends IBasicParams {\n /**\n * @minLength 4\n * @maxLength 16\n */\n name: string;\n /**\n * @maxLength 1000\n */\n description: string;\n quantity: LONG;\n decimals?: number;\n reissuable?: boolean;\n script?: string;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface ILeaseParams extends IBasicParams {\n recipient: string;\n amount: LONG;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IMassTransferParams extends IBasicParams {\n transfers: IMassTransferItem[];\n /**\n * Bytearray encoded as base string\n */\n attachment?: string | TTypedData;\n assetId?: string | null;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IOrderParams {\n matcherPublicKey: string;\n price: LONG;\n amount: LONG;\n orderType: 'buy' | 'sell';\n amountAsset: string | null;\n priceAsset: string | null;\n senderPublicKey?: string;\n matcherFee?: number;\n timestamp?: number;\n expiration?: number;\n matcherFeeAssetId?: string | null;\n}\n interface ICancelOrderParams {\n orderId: string;\n signature?: string;\n senderPublicKey?: string;\n}\n interface IWavesAuthParams {\n timestamp?: number;\n publicKey?: string;\n}\n interface IWavesAuth {\n timestamp: number;\n address: string;\n publicKey: string;\n hash: string;\n signature: string;\n}\n interface IAuthParams {\n data: string;\n host: string;\n publicKey?: string;\n}\n interface IAuth {\n data: string;\n host: string;\n address: string;\n publicKey: string;\n hash: string;\n signature: string;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IReissueParams extends IBasicParams {\n assetId: string;\n quantity: LONG;\n reissuable: boolean;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface ISetAssetScriptParams extends IBasicParams {\n /**\n * Compiled script encoded as base64 string\n */\n script: string;\n assetId: string;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface ISetScriptParams extends IBasicParams {\n /**\n * Compiled script encoded as base64 string\n */\n script: string | null;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface ISponsorshipParams extends IBasicParams {\n /**\n * AssetID of sponsored token\n */\n assetId: string;\n /**\n * Minimal fee amount in sponsored asset. To disable sponsorship set it to 0\n */\n minSponsoredAssetFee: LONG;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface ITransferParams extends IBasicParams {\n /**\n * Can be either address(base58 encoded 24 byte address) or alias.\n * Alias should be used like 'alias:{chainId}:{alias}>'. E.g.:\n * If we have alias 'foo', and we want TESTNET transaction, recipient should be 'alias:T:foo'\n */\n recipient: string;\n amount: LONG;\n assetId?: string | null;\n /**\n * Fee can be paid in custom token if sponsorship has been set for this token\n */\n feeAssetId?: string | null;\n /**\n * Bytearray encoded as base58 string\n */\n attachment?: string | TTypedData;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IInvokeScriptParams extends IBasicParams {\n dApp: string;\n feeAssetId?: string | null;\n call?: {\n function: string;\n args?: TInvokeScriptCallArgument[];\n };\n payment?: {\n assetId?: string | null;\n amount: LONG;\n }[];\n}\n interface IInvokeScriptCallStringArgument {\n type: 'string';\n value: string;\n}\n interface IInvokeScriptCallBinaryArgument {\n type: 'binary';\n value: string;\n}\n interface IInvokeScriptCallBoolArgument {\n type: 'boolean';\n value: boolean;\n}\n interface IInvokeScriptCallIntegerArgument {\n type: 'integer';\n value: LONG;\n}\n interface IInvokeScriptCallListArgument {\n type: 'list';\n value: Exclude, IInvokeScriptCallListArgument>[];\n}\n declare type TInvokeScriptCallArgument = IInvokeScriptCallStringArgument | IInvokeScriptCallBinaryArgument | IInvokeScriptCallBoolArgument | IInvokeScriptCallIntegerArgument | IInvokeScriptCallListArgument;\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IUpdateAssetInfoParams extends IBasicParams {\n /**\n * Id of previously issued asset\n */\n assetId: string;\n /**\n * New asset name\n */\n name: string;\n /**\n * New asset description\n */\n description: string;\n}\n\n// Type definitions for mocha 5.2\n// Project: https://mochajs.org\n// Definitions by: Kazi Manzur Rashid \n// otiai10 \n// jt000 \n// Vadim Macagon \n// Andrew Bradley \n// Dmitrii Sorin \n// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped\n// TypeScript Version: 2.1\n\n/**\n * Mocha API\n *\n * @see https://mochajs.org/api/mocha\n */\ndeclare class Mocha {\n private _growl;\n private _reporter;\n private _ui;\n\n constructor(options?: Mocha.MochaOptions);\n\n suite: Mocha.Suite;\n files: string[];\n options: Mocha.MochaInstanceOptions;\n\n /**\n * Enable or disable bailing on the first failure.\n *\n * @see https://mochajs.org/api/mocha#bail\n */\n bail(bail?: boolean): this;\n\n /**\n * Add test `file`.\n *\n * @see https://mochajs.org/api/mocha#addFile\n */\n addFile(file: string): this;\n\n /**\n * Set reporter to one of the built-in reporters.\n *\n * @see https://mochajs.org/api/mocha#reporter\n */\n reporter(reporter: Mocha.Reporter, reporterOptions?: any): this;\n\n /**\n * Set reporter to the provided constructor, one of the built-in reporters, or loads a reporter\n * from a module path. Defaults to `\"spec\"`.\n *\n * @see https://mochajs.org/api/mocha#reporter\n */\n reporter(reporter?: string | Mocha.ReporterConstructor, reporterOptions?: any): this;\n\n /**\n * Set test UI to one of the built-in test interfaces.\n *\n * @see https://mochajs.org/api/mocha#ui\n */\n ui(name: Mocha.Interface): this;\n\n /**\n * Set test UI to one of the built-in test interfaces or loads a test interface from a module\n * path. Defaults to `\"bdd\"`.\n *\n * @see https://mochajs.org/api/mocha#ui\n */\n ui(name?: string): this;\n\n /**\n * Escape string and add it to grep as a RegExp.\n *\n * @see https://mochajs.org/api/mocha#fgrep\n */\n fgrep(str: string): this;\n\n /**\n * Add regexp to grep, if `re` is a string it is escaped.\n *\n * @see https://mochajs.org/api/mocha#grep\n */\n grep(re: string | RegExp): this;\n\n /**\n * Invert `.grep()` matches.\n *\n * @see https://mochajs.org/api/mocha#invert\n */\n invert(): this;\n\n /**\n * Ignore global leaks.\n *\n * @see https://mochajs.org/api/mocha#ignoreLeaks\n */\n ignoreLeaks(ignore: boolean): this;\n\n /**\n * Enable global leak checking.\n *\n * @see https://mochajs.org/api/mocha#checkLeaks\n */\n checkLeaks(): this;\n\n /**\n * Display long stack-trace on failing\n *\n * @see https://mochajs.org/api/mocha#fullTrace\n */\n fullTrace(): this;\n\n /**\n * Enable growl support.\n *\n * @see https://mochajs.org/api/mocha#growl\n */\n growl(): this;\n\n /**\n * Ignore `globals` array or string.\n *\n * @see https://mochajs.org/api/mocha#globals\n */\n globals(globals: string | ReadonlyArray): this;\n\n /**\n * Emit color output.\n *\n * @see https://mochajs.org/api/mocha#useColors\n */\n useColors(colors: boolean): this;\n\n /**\n * Use inline diffs rather than +/-.\n *\n * @see https://mochajs.org/api/mocha#useInlineDiffs\n */\n useInlineDiffs(inlineDiffs: boolean): this;\n\n /**\n * Do not show diffs at all.\n *\n * @see https://mochajs.org/api/mocha#hideDiff\n */\n hideDiff(hideDiff: boolean): this;\n\n /**\n * Set the timeout in milliseconds.\n *\n * @see https://mochajs.org/api/mocha#timeout\n */\n timeout(timeout: string | number): this;\n\n /**\n * Set the number of times to retry failed tests.\n *\n * @see https://mochajs.org/api/mocha#retries\n */\n retries(n: number): this;\n\n /**\n * Set slowness threshold in milliseconds.\n *\n * @see https://mochajs.org/api/mocha#slow\n */\n slow(slow: string | number): this;\n\n /**\n * Enable timeouts.\n *\n * @see https://mochajs.org/api/mocha#enableTimeouts\n */\n enableTimeouts(enabled?: boolean): this;\n\n /**\n * Makes all tests async (accepting a callback)\n *\n * @see https://mochajs.org/api/mocha#asyncOnly.\n */\n asyncOnly(): this;\n\n /**\n * Disable syntax highlighting (in browser).\n *\n * @see https://mochajs.org/api/mocha#noHighlighting\n */\n noHighlighting(): this;\n\n /**\n * Enable uncaught errors to propagate (in browser).\n *\n * @see https://mochajs.org/api/mocha#allowUncaught\n */\n allowUncaught(): boolean;\n\n /**\n * Delay root suite execution.\n *\n * @see https://mochajs.org/api/mocha#delay\n */\n delay(): boolean;\n\n /**\n * Tests marked only fail the suite\n *\n * @see https://mochajs.org/api/mocha#forbidOnly\n */\n forbidOnly(): boolean;\n\n /**\n * Pending tests and tests marked skip fail the suite\n *\n * @see https://mochajs.org/api/mocha#forbidPending\n */\n forbidPending(): boolean;\n\n /**\n * Run tests and invoke `fn()` when complete.\n *\n * Note that `run` relies on Node's `require` to execute\n * the test interface functions and will be subject to the\n * cache - if the files are already in the `require` cache,\n * they will effectively be skipped. Therefore, to run tests\n * multiple times or to run tests in files that are already\n * in the `require` cache, make sure to clear them from the\n * cache first in whichever manner best suits your needs.\n *\n * @see https://mochajs.org/api/mocha#run\n */\n run(fn?: (failures: number) => void): Mocha.Runner;\n\n /**\n * Load registered files.\n *\n * @see https://mochajs.org/api/mocha#loadFiles\n */\n protected loadFiles(fn?: () => void): void;\n}\n\ndeclare namespace Mocha {\n namespace utils {\n /**\n * Compute a slug from the given `str`.\n *\n * @see https://mochajs.org/api/module-utils.html#.slug\n */\n function slug(str: string): string;\n\n /**\n * Strip the function definition from `str`, and re-indent for pre whitespace.\n *\n * @see https://mochajs.org/api/module-utils.html#.clean\n */\n function clean(str: string): string;\n\n /**\n * Highlight the given string of `js`.\n */\n function highlight(js: string): string;\n\n /**\n * Takes some variable and asks `Object.prototype.toString()` what it thinks it is.\n */\n function type(value: any): string;\n\n /**\n * Stringify `value`. Different behavior depending on type of value:\n *\n * - If `value` is undefined or null, return `'[undefined]'` or `'[null]'`, respectively.\n * - If `value` is not an object, function or array, return result of `value.toString()` wrapped in double-quotes.\n * - If `value` is an *empty* object, function, or array, returns `'{}'`, `'[Function]'`, or `'[]'` respectively.\n * - If `value` has properties, call canonicalize} on it, then return result of `JSON.stringify()`\n *\n * @see https://mochajs.org/api/module-utils.html#.stringify\n */\n function stringify(value: any): string;\n\n /**\n * Return a new Thing that has the keys in sorted order. Recursive.\n *\n * If the Thing...\n * - has already been seen, return string `'[Circular]'`\n * - is `undefined`, return string `'[undefined]'`\n * - is `null`, return value `null`\n * - is some other primitive, return the value\n * - is not a primitive or an `Array`, `Object`, or `Function`, return the value of the Thing's `toString()` method\n * - is a non-empty `Array`, `Object`, or `Function`, return the result of calling this function again.\n * - is an empty `Array`, `Object`, or `Function`, returns `'[]'`, `'{}'`, or `'[Function]'` respectively.\n *\n * @see https://mochajs.org/api/module-utils.html#.canonicalize\n */\n function canonicalize(value: any, stack: any[], typeHint: string): any;\n\n /**\n * Lookup file names at the given `path`.\n *\n * @see https://mochajs.org/api/Mocha.utils.html#.exports.lookupFiles\n */\n function lookupFiles(filepath: string, extensions?: string[], recursive?: boolean): string[];\n\n /**\n * Generate an undefined error with a message warning the user.\n *\n * @see https://mochajs.org/api/module-utils.html#.undefinedError\n */\n function undefinedError(): Error;\n\n /**\n * Generate an undefined error if `err` is not defined.\n *\n * @see https://mochajs.org/api/module-utils.html#.getError\n */\n function getError(err: Error | undefined): Error;\n\n /**\n * When invoking this function you get a filter function that get the Error.stack as an\n * input, and return a prettify output. (i.e: strip Mocha and internal node functions from\n * stack trace).\n *\n * @see https://mochajs.org/api/module-utils.html#.stackTraceFilter\n */\n function stackTraceFilter(): (stack: string) => string;\n }\n\n namespace interfaces {\n function bdd(suite: Suite): void;\n function tdd(suite: Suite): void;\n function qunit(suite: Suite): void;\n function exports(suite: Suite): void;\n }\n\n // #region Test interface augmentations\n\n interface HookFunction {\n /**\n * [bdd, qunit, tdd] Describe a \"hook\" to execute the given callback `fn`. The name of the\n * function is used as the name of the hook.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (fn: Func): void;\n\n /**\n * [bdd, qunit, tdd] Describe a \"hook\" to execute the given callback `fn`. The name of the\n * function is used as the name of the hook.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (fn: AsyncFunc): void;\n\n /**\n * [bdd, qunit, tdd] Describe a \"hook\" to execute the given `title` and callback `fn`.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (name: string, fn?: Func): void;\n\n /**\n * [bdd, qunit, tdd] Describe a \"hook\" to execute the given `title` and callback `fn`.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (name: string, fn?: AsyncFunc): void;\n }\n\n interface SuiteFunction {\n /**\n * [bdd, tdd] Describe a \"suite\" with the given `title` and callback `fn` containing\n * nested suites.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (title: string, fn: (this: Suite) => void): Suite;\n\n /**\n * [qunit] Describe a \"suite\" with the given `title`.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (title: string): Suite;\n\n /**\n * [bdd, tdd, qunit] Indicates this suite should be executed exclusively.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n only: ExclusiveSuiteFunction;\n\n /**\n * [bdd, tdd] Indicates this suite should not be executed.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n skip: PendingSuiteFunction;\n }\n\n interface ExclusiveSuiteFunction {\n /**\n * [bdd, tdd] Describe a \"suite\" with the given `title` and callback `fn` containing\n * nested suites. Indicates this suite should be executed exclusively.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (title: string, fn: (this: Suite) => void): Suite;\n\n /**\n * [qunit] Describe a \"suite\" with the given `title`. Indicates this suite should be executed\n * exclusively.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (title: string): Suite;\n }\n\n /**\n * [bdd, tdd] Describe a \"suite\" with the given `title` and callback `fn` containing\n * nested suites. Indicates this suite should not be executed.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @returns [bdd] `Suite`\n * @returns [tdd] `void`\n */\n interface PendingSuiteFunction {\n (title: string, fn: (this: Suite) => void): Suite | void;\n }\n\n interface TestFunction {\n /**\n * Describe a specification or test-case with the given callback `fn` acting as a thunk.\n * The name of the function is used as the name of the test.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (fn: Func): Test;\n\n /**\n * Describe a specification or test-case with the given callback `fn` acting as a thunk.\n * The name of the function is used as the name of the test.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (fn: AsyncFunc): Test;\n\n /**\n * Describe a specification or test-case with the given `title` and callback `fn` acting\n * as a thunk.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (title: string, fn?: Func): Test;\n\n /**\n * Describe a specification or test-case with the given `title` and callback `fn` acting\n * as a thunk.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (title: string, fn?: AsyncFunc): Test;\n\n /**\n * Indicates this test should be executed exclusively.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n only: ExclusiveTestFunction;\n\n /**\n * Indicates this test should not be executed.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n skip: PendingTestFunction;\n\n /**\n * Number of attempts to retry.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n retries(n: number): void;\n }\n\n interface ExclusiveTestFunction {\n /**\n * [bdd, tdd, qunit] Describe a specification or test-case with the given callback `fn`\n * acting as a thunk. The name of the function is used as the name of the test. Indicates\n * this test should be executed exclusively.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (fn: Func): Test;\n\n /**\n * [bdd, tdd, qunit] Describe a specification or test-case with the given callback `fn`\n * acting as a thunk. The name of the function is used as the name of the test. Indicates\n * this test should be executed exclusively.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (fn: AsyncFunc): Test;\n\n /**\n * [bdd, tdd, qunit] Describe a specification or test-case with the given `title` and\n * callback `fn` acting as a thunk. Indicates this test should be executed exclusively.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (title: string, fn?: Func): Test;\n\n /**\n * [bdd, tdd, qunit] Describe a specification or test-case with the given `title` and\n * callback `fn` acting as a thunk. Indicates this test should be executed exclusively.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (title: string, fn?: AsyncFunc): Test;\n }\n\n interface PendingTestFunction {\n /**\n * [bdd, tdd, qunit] Describe a specification or test-case with the given callback `fn`\n * acting as a thunk. The name of the function is used as the name of the test. Indicates\n * this test should not be executed.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (fn: Func): Test;\n\n /**\n * [bdd, tdd, qunit] Describe a specification or test-case with the given callback `fn`\n * acting as a thunk. The name of the function is used as the name of the test. Indicates\n * this test should not be executed.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (fn: AsyncFunc): Test;\n\n /**\n * [bdd, tdd, qunit] Describe a specification or test-case with the given `title` and\n * callback `fn` acting as a thunk. Indicates this test should not be executed.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (title: string, fn?: Func): Test;\n\n /**\n * [bdd, tdd, qunit] Describe a specification or test-case with the given `title` and\n * callback `fn` acting as a thunk. Indicates this test should not be executed.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (title: string, fn?: AsyncFunc): Test;\n }\n\n /**\n * Execute after each test case.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#afterEach\n */\n let afterEach: HookFunction;\n\n /**\n * Execute after running tests.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#after\n */\n let after: HookFunction;\n\n /**\n * Execute before each test case.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#beforeEach\n */\n let beforeEach: HookFunction;\n\n /**\n * Execute before running tests.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#before\n */\n let before: HookFunction;\n\n /**\n * Describe a \"suite\" containing nested suites and tests.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n let describe: SuiteFunction;\n\n /**\n * Describes a test case.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n let it: TestFunction;\n\n /**\n * Describes a pending test case.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n let xit: PendingTestFunction;\n\n /**\n * Execute before each test case.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#beforeEach\n */\n let setup: HookFunction;\n\n /**\n * Execute before running tests.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#before\n */\n let suiteSetup: HookFunction;\n\n /**\n * Execute after running tests.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#after\n */\n let suiteTeardown: HookFunction;\n\n /**\n * Describe a \"suite\" containing nested suites and tests.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n let suite: SuiteFunction;\n\n /**\n * Execute after each test case.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#afterEach\n */\n let teardown: HookFunction;\n\n /**\n * Describes a test case.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n let test: TestFunction;\n\n /**\n * Triggers root suite execution.\n *\n * - _Only available if flag --delay is passed into Mocha._\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#runWithSuite\n */\n function run(): void;\n\n // #endregion Test interface augmentations\n\n namespace reporters {\n /**\n * Initialize a new `Base` reporter.\n *\n * All other reporters generally inherit from this reporter, providing stats such as test duration,\n * number of tests passed / failed, etc.\n *\n * @see https://mochajs.org/api/Mocha.reporters.Base.html\n */\n class Base {\n constructor(runner: Runner, options?: MochaOptions);\n /** @deprecated Use the overload that accepts `Mocha.Runner` instead. */\n constructor(runner: IRunner, options?: MochaOptions);\n\n /**\n * Test run statistics\n */\n stats: Stats;\n\n /**\n * Test failures\n */\n failures: Test[];\n\n /**\n * The configured runner\n */\n runner: Runner;\n\n /**\n * Output common epilogue used by many of the bundled reporters.\n *\n * @see https://mochajs.org/api/Mocha.reporters.Base.html#.Base#epilogue\n */\n epilogue(): void;\n\n done?(failures: number, fn?: (failures: number) => void): void;\n }\n\n namespace Base {\n /**\n * Enables coloring by default\n *\n * @see https://mochajs.org/api/module-base#.useColors\n */\n let useColors: boolean;\n\n /**\n * Inline diffs instead of +/-\n *\n * @see https://mochajs.org/api/module-base#.inlineDiffs\n */\n let inlineDiffs: boolean;\n\n /**\n * Default color map\n *\n * @see https://mochajs.org/api/module-base#.colors\n */\n const colors: ColorMap;\n\n /**\n * Default color map\n *\n * @see https://mochajs.org/api/module-base#.colors\n */\n interface ColorMap {\n // added by Base\n pass: number;\n fail: number;\n \"bright pass\": number;\n \"bright fail\": number;\n \"bright yellow\": number;\n pending: number;\n suite: number;\n \"error title\": number;\n \"error message\": number;\n \"error stack\": number;\n checkmark: number;\n fast: number;\n medium: number;\n slow: number;\n green: number;\n light: number;\n \"diff gutter\": number;\n \"diff added\": number;\n \"diff removed\": number;\n\n // added by Progress\n progress: number;\n\n // added by Landing\n plane: number;\n \"plane crash\": number;\n runway: number;\n\n [key: string]: number;\n }\n\n /**\n * Default symbol map\n *\n * @see https://mochajs.org/api/module-base#.symbols\n */\n const symbols: SymbolMap;\n\n /**\n * Default symbol map\n *\n * @see https://mochajs.org/api/module-base#.symbols\n */\n interface SymbolMap {\n ok: string;\n err: string;\n dot: string;\n comma: string;\n bang: string;\n [key: string]: string;\n }\n\n /**\n * Color `str` with the given `type` (from `colors`)\n *\n * @see https://mochajs.org/api/module-base#.color\n */\n function color(type: string, str: string): string;\n\n /**\n * Expose terminal window size\n *\n * @see https://mochajs.org/api/module-base#.window\n */\n const window: {\n width: number;\n };\n\n /**\n * ANSI TTY control sequences common among reporters.\n *\n * @see https://mochajs.org/api/module-base#.cursor\n */\n namespace cursor {\n /**\n * Hides the cursor\n */\n function hide(): void;\n\n /**\n * Shows the cursor\n */\n function show(): void;\n\n /**\n * Deletes the current line\n */\n function deleteLine(): void;\n\n /**\n * Moves to the beginning of the line\n */\n function beginningOfLine(): void;\n\n /**\n * Clears the line and moves to the beginning of the line.\n */\n function CR(): void;\n }\n\n /**\n * Returns a diff between two strings with colored ANSI output.\n *\n * @see https://mochajs.org/api/module-base#.generateDiff\n */\n function generateDiff(actual: string, expected: string): string;\n\n /**\n * Output the given `failures` as a list.\n *\n * @see https://mochajs.org/api/Mocha.reporters.Base.html#.exports.list1\n */\n function list(failures: Test[]): void;\n }\n\n /**\n * Initialize a new `Dot` matrix test reporter.\n *\n * @see https://mochajs.org/api/Mocha.reporters.Dot.html\n */\n class Dot extends Base {\n }\n\n /**\n * Initialize a new `Doc` reporter.\n *\n * @see https://mochajs.org/api/Mocha.reporters.Doc.html\n */\n class Doc extends Base {\n }\n\n /**\n * Initialize a new `TAP` test reporter.\n *\n * @see https://mochajs.org/api/Mocha.reporters.TAP.html\n */\n class TAP extends Base {\n }\n\n /**\n * Initialize a new `JSON` reporter\n *\n * @see https://mochajs.org/api/Mocha.reporters.JSON.html\n */\n class JSON extends Base {\n }\n\n /**\n * Initialize a new `HTML` reporter.\n *\n * - _This reporter cannot be used on the console._\n *\n * @see https://mochajs.org/api/Mocha.reporters.HTML.html\n */\n class HTML extends Base {\n /**\n * Provide suite URL.\n *\n * @see https://mochajs.org/api/Mocha.reporters.HTML.html#suiteURL\n */\n suiteURL(suite: Suite): string;\n\n /**\n * Provide test URL.\n *\n * @see https://mochajs.org/api/Mocha.reporters.HTML.html#testURL\n */\n testURL(test: Test): string;\n\n /**\n * Adds code toggle functionality for the provided test's list element.\n *\n * @see https://mochajs.org/api/Mocha.reporters.HTML.html#addCodeToggle\n */\n addCodeToggle(el: HTMLLIElement, contents: string): void;\n }\n\n /**\n * Initialize a new `List` test reporter.\n *\n * @see https://mochajs.org/api/Mocha.reporters.List.html\n */\n class List extends Base {\n }\n\n /**\n * Initialize a new `Min` minimal test reporter (best used with --watch).\n *\n * @see https://mochajs.org/api/Mocha.reporters.Min.html\n */\n class Min extends Base {\n }\n\n /**\n * Initialize a new `Spec` test reporter.\n *\n * @see https://mochajs.org/api/Mocha.reporters.Spec.html\n */\n class Spec extends Base {\n }\n\n /**\n * Initialize a new `NyanCat` test reporter.\n *\n * @see https://mochajs.org/api/Mocha.reporters.Nyan.html\n */\n class Nyan extends Base {\n private colorIndex;\n private numberOfLines;\n private rainbowColors;\n private scoreboardWidth;\n private tick;\n private trajectories;\n private trajectoryWidthMax;\n private draw;\n private drawScoreboard;\n private appendRainbow;\n private drawRainbow;\n private drawNyanCat;\n private face;\n private cursorUp;\n private cursorDown;\n private generateColors;\n private rainbowify;\n }\n\n /**\n * Initialize a new `XUnit` test reporter.\n *\n * @see https://mochajs.org/api/Mocha.reporters.XUnit.html\n */\n class XUnit extends Base {\n constructor(runner: Runner, options?: XUnit.MochaOptions);\n /** @deprecated Use the overload that accepts `Mocha.Runner` instead. */\n constructor(runner: IRunner, options?: XUnit.MochaOptions);\n\n /**\n * Override done to close the stream (if it's a file).\n *\n * @see https://mochajs.org/api/Mocha.reporters.XUnit.html#done\n */\n done(failures: number, fn: (failures: number) => void): void;\n\n /**\n * Write out the given line.\n *\n * @see https://mochajs.org/api/Mocha.reporters.XUnit.html#write\n */\n write(line: string): void;\n\n /**\n * Output tag for the given `test.`\n *\n * @see https://mochajs.org/api/Mocha.reporters.XUnit.html#test\n */\n test(test: Test): void;\n }\n\n namespace XUnit {\n interface MochaOptions extends Mocha.MochaOptions {\n reporterOptions?: ReporterOptions;\n }\n\n interface ReporterOptions {\n output?: string;\n suiteName?: string;\n }\n }\n\n /**\n * Initialize a new `Markdown` test reporter.\n *\n * @see https://mochajs.org/api/Mocha.reporters.Markdown.html\n */\n class Markdown extends Base {\n }\n\n /**\n * Initialize a new `Progress` bar test reporter.\n *\n * @see https://mochajs.org/api/Mocha.reporters.Progress.html\n */\n class Progress extends Base {\n constructor(runner: Runner, options?: Progress.MochaOptions);\n /** @deprecated Use the overload that accepts `Mocha.Runner` instead. */\n constructor(runner: IRunner, options?: Progress.MochaOptions);\n }\n\n namespace Progress {\n interface MochaOptions extends Mocha.MochaOptions {\n reporterOptions?: ReporterOptions;\n }\n\n interface ReporterOptions {\n open?: string;\n complete?: string;\n incomplete?: string;\n close?: string;\n verbose?: boolean;\n }\n }\n\n /**\n * Initialize a new `Landing` reporter.\n *\n * @see https://mochajs.org/api/Mocha.reporters.Landing.html\n */\n class Landing extends Base {\n }\n\n /**\n * Initialize a new `JSONStream` test reporter.\n *\n * @see https://mochajs.org/api/Mocha.reporters.JSONStream.html\n */\n class JSONStream extends Base {\n }\n\n // value-only aliases\n const base: typeof Base;\n const dot: typeof Dot;\n const doc: typeof Doc;\n const tap: typeof TAP;\n const json: typeof JSON;\n const html: typeof HTML;\n const list: typeof List;\n const spec: typeof Spec;\n const nyan: typeof Nyan;\n const xunit: typeof XUnit;\n const markdown: typeof Markdown;\n const progress: typeof Progress;\n const landing: typeof Landing;\n // NOTE: not possible to type this correctly:\n // const \"json-stream\": typeof JSONStream;\n }\n\n /**\n * Initialize a new `Runnable` with the given `title` and callback `fn`.\n *\n * @see https://mochajs.org/api/Runnable.html\n */\n class Runnable {\n private _slow;\n private _enableTimeouts;\n private _retries;\n private _currentRetry;\n private _timeout;\n private _timeoutError;\n\n constructor(title: string, fn?: Func | AsyncFunc);\n\n title: string;\n fn: Func | AsyncFunc | undefined;\n body: string;\n async: boolean;\n sync: boolean;\n timedOut: boolean;\n pending: boolean;\n duration?: number;\n parent?: Suite;\n state?: \"failed\" | \"passed\";\n timer?: any;\n ctx?: Context;\n callback?: Done;\n allowUncaught?: boolean;\n file?: string;\n\n /**\n * Get test timeout.\n *\n * @see https://mochajs.org/api/Runnable.html#timeout\n */\n timeout(): number;\n\n /**\n * Set test timeout.\n *\n * @see https://mochajs.org/api/Runnable.html#timeout\n */\n timeout(ms: string | number): this;\n\n /**\n * Get test slowness threshold.\n *\n * @see https://mochajs.org/api/Runnable.html#slow\n */\n slow(): number;\n\n /**\n * Set test slowness threshold.\n *\n * @see https://mochajs.org/api/Runnable.html#slow\n */\n slow(ms: string | number): this;\n\n /**\n * Get whether timeouts are enabled.\n *\n * @see https://mochajs.org/api/Runnable.html#enableTimeouts\n */\n enableTimeouts(): boolean;\n\n /**\n * Set whether timeouts are enabled.\n *\n * @see https://mochajs.org/api/Runnable.html#enableTimeouts\n */\n enableTimeouts(enabled: boolean): this;\n\n /**\n * Halt and mark as pending.\n */\n skip(): never;\n\n /**\n * Check if this runnable or its parent suite is marked as pending.\n *\n * @see https://mochajs.org/api/Runnable.html#isPending\n */\n isPending(): boolean;\n\n /**\n * Return `true` if this Runnable has failed.\n */\n isFailed(): boolean;\n\n /**\n * Return `true` if this Runnable has passed.\n */\n isPassed(): boolean;\n\n /**\n * Set or get number of retries.\n *\n * @see https://mochajs.org/api/Runnable.html#retries\n */\n retries(): number;\n\n /**\n * Set or get number of retries.\n *\n * @see https://mochajs.org/api/Runnable.html#retries\n */\n retries(n: number): void;\n\n /**\n * Set or get current retry\n *\n * @see https://mochajs.org/api/Runnable.html#currentRetry\n */\n protected currentRetry(): number;\n\n /**\n * Set or get current retry\n *\n * @see https://mochajs.org/api/Runnable.html#currentRetry\n */\n protected currentRetry(n: number): void;\n\n /**\n * Return the full title generated by recursively concatenating the parent's full title.\n */\n fullTitle(): string;\n\n /**\n * Return the title path generated by concatenating the parent's title path with the title.\n */\n titlePath(): string[];\n\n /**\n * Clear the timeout.\n *\n * @see https://mochajs.org/api/Runnable.html#clearTimeout\n */\n clearTimeout(): void;\n\n /**\n * Inspect the runnable void of private properties.\n *\n * @see https://mochajs.org/api/Runnable.html#inspect\n */\n inspect(): string;\n\n /**\n * Reset the timeout.\n *\n * @see https://mochajs.org/api/Runnable.html#resetTimeout\n */\n resetTimeout(): void;\n\n /**\n * Get a list of whitelisted globals for this test run.\n *\n * @see https://mochajs.org/api/Runnable.html#globals\n */\n globals(): string[];\n\n /**\n * Set a list of whitelisted globals for this test run.\n *\n * @see https://mochajs.org/api/Runnable.html#globals\n */\n globals(globals: ReadonlyArray): void;\n\n /**\n * Run the test and invoke `fn(err)`.\n *\n * @see https://mochajs.org/api/Runnable.html#run\n */\n run(fn: Done): void;\n }\n\n // #region Runnable \"error\" event\n interface Runnable extends NodeJS.EventEmitter {\n on(event: \"error\", listener: (error: any) => void): this;\n once(event: \"error\", listener: (error: any) => void): this;\n addListener(event: \"error\", listener: (error: any) => void): this;\n removeListener(event: \"error\", listener: (error: any) => void): this;\n prependListener(event: \"error\", listener: (error: any) => void): this;\n prependOnceListener(event: \"error\", listener: (error: any) => void): this;\n emit(name: \"error\", error: any): boolean;\n }\n // #endregion Runnable \"error\" event\n // #region Runnable untyped events\n interface Runnable extends NodeJS.EventEmitter {\n on(event: string, listener: (...args: any[]) => void): this;\n once(event: string, listener: (...args: any[]) => void): this;\n addListener(event: string, listener: (...args: any[]) => void): this;\n removeListener(event: string, listener: (...args: any[]) => void): this;\n prependListener(event: string, listener: (...args: any[]) => void): this;\n prependOnceListener(event: string, listener: (...args: any[]) => void): this;\n emit(name: string, ...args: any[]): boolean;\n }\n // #endregion Runnable untyped events\n\n /**\n * Test context\n *\n * @see https://mochajs.org/api/module-Context.html#~Context\n */\n class Context {\n private _runnable;\n\n test?: Runnable;\n currentTest?: Test;\n\n /**\n * Get the context `Runnable`.\n */\n runnable(): Runnable;\n\n /**\n * Set the context `Runnable`.\n */\n runnable(runnable: Runnable): this;\n /** @deprecated Use the overload that accepts `Mocha.Runnable` instead. */\n runnable(runnable: IRunnable): this;\n\n /**\n * Get test timeout.\n */\n timeout(): number;\n\n /**\n * Set test timeout.\n */\n timeout(ms: string | number): this;\n\n /**\n * Get whether timeouts are enabled.\n */\n enableTimeouts(): boolean;\n\n /**\n * Set whether timeouts are enabled.\n */\n enableTimeouts(enabled: boolean): this;\n\n /**\n * Get test slowness threshold.\n */\n slow(): number;\n\n /**\n * Set test slowness threshold.\n */\n slow(ms: string | number): this;\n\n /**\n * Mark a test as skipped.\n */\n skip(): never;\n\n /**\n * Get the number of allowed retries on failed tests.\n */\n retries(): number;\n\n /**\n * Set the number of allowed retries on failed tests.\n */\n retries(n: number): this;\n\n [key: string]: any;\n }\n\n /**\n * Initialize a `Runner` for the given `suite`.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html\n */\n class Runner {\n private _globals;\n private _abort;\n private _delay;\n private _defaultGrep;\n private next;\n private hookErr;\n private prevGlobalsLength;\n private nextSuite;\n\n constructor(suite: Suite, delay: boolean);\n\n /** @deprecated Use the overload that accepts `Mocha.Suite` instead. */\n constructor(suite: ISuite, delay: boolean);\n\n suite: Suite;\n started: boolean;\n total: number;\n failures: number;\n asyncOnly?: boolean;\n allowUncaught?: boolean;\n fullStackTrace?: boolean;\n forbidOnly?: boolean;\n forbidPending?: boolean;\n ignoreLeaks?: boolean;\n test?: Test;\n currentRunnable?: Runnable;\n stats?: Stats; // added by reporters\n\n /**\n * Run tests with full titles matching `re`. Updates runner.total\n * with number of tests matched.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#.Runner#grep\n */\n grep(re: RegExp, invert: boolean): this;\n\n /**\n * Returns the number of tests matching the grep search for the\n * given suite.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#.Runner#grepTotal\n */\n grepTotal(suite: Suite): number;\n\n /** @deprecated Use the overload that accepts `Mocha.Suite` instead. */\n grepTotal(suite: ISuite): number;\n\n /**\n * Gets the allowed globals.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#.Runner#globals\n */\n globals(): string[];\n\n /**\n * Allow the given `arr` of globals.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#.Runner#globals\n */\n globals(arr: ReadonlyArray): this;\n\n /**\n * Run the root suite and invoke `fn(failures)` on completion.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#.Runner#run\n */\n run(fn?: (failures: number) => void): this;\n\n /**\n * Cleanly abort execution.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#.Runner#abort\n */\n abort(): this;\n\n /**\n * Handle uncaught exceptions.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#uncaught\n */\n uncaught(err: any): void;\n\n /**\n * Wrapper for setImmediate, process.nextTick, or browser polyfill.\n */\n protected static immediately(callback: Function): void;\n\n /**\n * Return a list of global properties.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#globalProps\n */\n protected globalProps(): string[];\n\n /**\n * Check for global variable leaks.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#checkGlobals\n */\n protected checkGlobals(test: Test): void;\n\n /**\n * Fail the given `test`.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#fail\n */\n protected fail(test: Test, err: any): void;\n\n /**\n * Fail the given `hook` with `err`.\n *\n * Hook failures work in the following pattern:\n * - If bail, then exit\n * - Failed `before` hook skips all tests in a suite and subsuites,\n * but jumps to corresponding `after` hook\n * - Failed `before each` hook skips remaining tests in a\n * suite and jumps to corresponding `after each` hook,\n * which is run only once\n * - Failed `after` hook does not alter\n * execution order\n * - Failed `after each` hook skips remaining tests in a\n * suite and subsuites, but executes other `after each`\n * hooks\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#failHook\n */\n protected failHook(hook: Hook, err: any): void;\n\n /**\n * Run hook `name` callbacks and then invoke `fn()`.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#hook\n */\n protected hook(name: string, fn: () => void): void;\n\n /**\n * Run hook `name` for the given array of `suites`\n * in order, and callback `fn(err, errSuite)`.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#hooks\n */\n protected hooks(name: string, suites: Suite[], fn: (err?: any, errSuite?: Suite) => void): void;\n\n /**\n * Run hooks from the top level down.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#hookUp\n */\n protected hookUp(name: string, fn: (err?: any, errSuite?: Suite) => void): void;\n\n /**\n * Run hooks from the bottom up.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#hookDown\n */\n protected hookDown(name: string, fn: (err?: any, errSuite?: Suite) => void): void;\n\n /**\n * Return an array of parent Suites from closest to furthest.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#parents\n */\n protected parents(): Suite[];\n\n /**\n * Run the current test and callback `fn(err)`.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#runTest\n */\n protected runTest(fn: Done): any;\n\n /**\n * Run tests in the given `suite` and invoke the callback `fn()` when complete.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#runTests\n */\n protected runTests(suite: Suite, fn: (errSuite?: Suite) => void): void;\n\n /**\n * Run the given `suite` and invoke the callback `fn()` when complete.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#runSuite\n */\n protected runSuite(suite: Suite, fn: (errSuite?: Suite) => void): void;\n }\n\n // #region Runner \"waiting\" event\n interface Runner {\n on(event: \"waiting\", listener: (rootSuite: Suite) => void): this;\n once(event: \"waiting\", listener: (rootSuite: Suite) => void): this;\n addListener(event: \"waiting\", listener: (rootSuite: Suite) => void): this;\n removeListener(event: \"waiting\", listener: (rootSuite: Suite) => void): this;\n prependListener(event: \"waiting\", listener: (rootSuite: Suite) => void): this;\n prependOnceListener(event: \"waiting\", listener: (rootSuite: Suite) => void): this;\n emit(name: \"waiting\", rootSuite: Suite): boolean;\n }\n // #endregion Runner \"waiting\" event\n // #region Runner \"start\" event\n interface Runner extends NodeJS.EventEmitter {\n on(event: \"start\", listener: () => void): this;\n once(event: \"start\", listener: () => void): this;\n addListener(event: \"start\", listener: () => void): this;\n removeListener(event: \"start\", listener: () => void): this;\n prependListener(event: \"start\", listener: () => void): this;\n prependOnceListener(event: \"start\", listener: () => void): this;\n emit(name: \"start\"): boolean;\n }\n // #endregion Runner \"start\" event\n // #region Runner \"end\" event\n interface Runner extends NodeJS.EventEmitter {\n on(event: \"end\", listener: () => void): this;\n once(event: \"end\", listener: () => void): this;\n addListener(event: \"end\", listener: () => void): this;\n removeListener(event: \"end\", listener: () => void): this;\n prependListener(event: \"end\", listener: () => void): this;\n prependOnceListener(event: \"end\", listener: () => void): this;\n emit(name: \"end\"): boolean;\n }\n // #endregion Runner \"end\" event\n // #region Runner \"suite\" event\n interface Runner extends NodeJS.EventEmitter {\n on(event: \"suite\", listener: (suite: Suite) => void): this;\n once(event: \"suite\", listener: (suite: Suite) => void): this;\n addListener(event: \"suite\", listener: (suite: Suite) => void): this;\n removeListener(event: \"suite\", listener: (suite: Suite) => void): this;\n prependListener(event: \"suite\", listener: (suite: Suite) => void): this;\n prependOnceListener(event: \"suite\", listener: (suite: Suite) => void): this;\n emit(name: \"suite\", suite: Suite): boolean;\n }\n // #endregion Runner \"suite\" event\n // #region Runner \"suite end\" event\n interface Runner extends NodeJS.EventEmitter {\n on(event: \"suite end\", listener: (suite: Suite) => void): this;\n once(event: \"suite end\", listener: (suite: Suite) => void): this;\n addListener(event: \"suite end\", listener: (suite: Suite) => void): this;\n removeListener(event: \"suite end\", listener: (suite: Suite) => void): this;\n prependListener(event: \"suite end\", listener: (suite: Suite) => void): this;\n prependOnceListener(event: \"suite end\", listener: (suite: Suite) => void): this;\n emit(name: \"suite end\", suite: Suite): boolean;\n }\n // #endregion Runner \"suite end\" event\n // #region Runner \"test\" event\n interface Runner extends NodeJS.EventEmitter {\n on(event: \"test\", listener: (test: Test) => void): this;\n once(event: \"test\", listener: (test: Test) => void): this;\n addListener(event: \"test\", listener: (test: Test) => void): this;\n removeListener(event: \"test\", listener: (test: Test) => void): this;\n prependListener(event: \"test\", listener: (test: Test) => void): this;\n prependOnceListener(event: \"test\", listener: (test: Test) => void): this;\n emit(name: \"test\", test: Test): boolean;\n }\n // #endregion Runner \"test\" event\n // #region Runner \"test end\" event\n interface Runner extends NodeJS.EventEmitter {\n on(event: \"test end\", listener: (test: Test) => void): this;\n once(event: \"test end\", listener: (test: Test) => void): this;\n addListener(event: \"test end\", listener: (test: Test) => void): this;\n removeListener(event: \"test end\", listener: (test: Test) => void): this;\n prependListener(event: \"test end\", listener: (test: Test) => void): this;\n prependOnceListener(event: \"test end\", listener: (test: Test) => void): this;\n emit(name: \"test end\", test: Test): boolean;\n }\n // #endregion Runner \"test end\" event\n // #region Runner \"hook\" event\n interface Runner extends NodeJS.EventEmitter {\n on(event: \"hook\", listener: (hook: Hook) => void): this;\n once(event: \"hook\", listener: (hook: Hook) => void): this;\n addListener(event: \"hook\", listener: (hook: Hook) => void): this;\n removeListener(event: \"hook\", listener: (hook: Hook) => void): this;\n prependListener(event: \"hook\", listener: (hook: Hook) => void): this;\n prependOnceListener(event: \"hook\", listener: (hook: Hook) => void): this;\n emit(name: \"hook\", hook: Hook): boolean;\n }\n // #endregion Runner \"hook\" event\n // #region Runner \"hook end\" event\n interface Runner extends NodeJS.EventEmitter {\n on(event: \"hook end\", listener: (hook: Hook) => void): this;\n once(event: \"hook end\", listener: (hook: Hook) => void): this;\n addListener(event: \"hook end\", listener: (hook: Hook) => void): this;\n removeListener(event: \"hook end\", listener: (hook: Hook) => void): this;\n prependListener(event: \"hook end\", listener: (hook: Hook) => void): this;\n prependOnceListener(event: \"hook end\", listener: (hook: Hook) => void): this;\n emit(name: \"hook end\", hook: Hook): boolean;\n }\n // #endregion Runner \"hook end\" event\n // #region Runner \"pass\" event\n interface Runner extends NodeJS.EventEmitter {\n on(event: \"pass\", listener: (test: Test) => void): this;\n once(event: \"pass\", listener: (test: Test) => void): this;\n addListener(event: \"pass\", listener: (test: Test) => void): this;\n removeListener(event: \"pass\", listener: (test: Test) => void): this;\n prependListener(event: \"pass\", listener: (test: Test) => void): this;\n prependOnceListener(event: \"pass\", listener: (test: Test) => void): this;\n emit(name: \"pass\", test: Test): boolean;\n }\n // #endregion Runner \"pass\" event\n // #region Runner \"fail\" event\n interface Runner extends NodeJS.EventEmitter {\n on(event: \"fail\", listener: (test: Test, err: any) => void): this;\n once(event: \"fail\", listener: (test: Test, err: any) => void): this;\n addListener(event: \"fail\", listener: (test: Test, err: any) => void): this;\n removeListener(event: \"fail\", listener: (test: Test, err: any) => void): this;\n prependListener(event: \"fail\", listener: (test: Test, err: any) => void): this;\n prependOnceListener(event: \"fail\", listener: (test: Test, err: any) => void): this;\n emit(name: \"fail\", test: Test, err: any): boolean;\n }\n // #endregion Runner \"fail\" event\n // #region Runner \"pending\" event\n interface Runner extends NodeJS.EventEmitter {\n on(event: \"pending\", listener: (test: Test) => void): this;\n once(event: \"pending\", listener: (test: Test) => void): this;\n addListener(event: \"pending\", listener: (test: Test) => void): this;\n removeListener(event: \"pending\", listener: (test: Test) => void): this;\n prependListener(event: \"pending\", listener: (test: Test) => void): this;\n prependOnceListener(event: \"pending\", listener: (test: Test) => void): this;\n emit(name: \"pending\", test: Test): boolean;\n }\n // #endregion Runner \"pending\" event\n // #region Runner untyped events\n interface Runner extends NodeJS.EventEmitter {\n on(event: string, listener: (...args: any[]) => void): this;\n once(event: string, listener: (...args: any[]) => void): this;\n addListener(event: string, listener: (...args: any[]) => void): this;\n removeListener(event: string, listener: (...args: any[]) => void): this;\n prependListener(event: string, listener: (...args: any[]) => void): this;\n prependOnceListener(event: string, listener: (...args: any[]) => void): this;\n emit(name: string, ...args: any[]): boolean;\n }\n // #endregion Runner untyped events\n\n /**\n * Initialize a new `Suite` with the given `title` and `ctx`.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html\n */\n class Suite {\n private _beforeEach;\n private _beforeAll;\n private _afterEach;\n private _afterAll;\n private _timeout;\n private _enableTimeouts;\n private _slow;\n private _bail;\n private _retries;\n private _onlyTests;\n private _onlySuites;\n\n constructor(title: string, parentContext?: Context);\n /** @deprecated Use the overload that accepts `Mocha.Context` instead. */\n constructor(title: string, parentContext?: IContext);\n\n ctx: Context;\n suites: Suite[];\n tests: Test[];\n pending: boolean;\n file?: string;\n root: boolean;\n delayed: boolean;\n parent: Suite | undefined;\n title: string;\n\n /**\n * Create a new `Suite` with the given `title` and parent `Suite`. When a suite\n * with the same title is already present, that suite is returned to provide\n * nicer reporter and more flexible meta-testing.\n *\n * @see https://mochajs.org/api/mocha#.exports.create\n */\n static create(parent: Suite, title: string): Suite;\n /** @deprecated Use the overload that accepts `Mocha.Suite` instead. */\n static create(parent: ISuite, title: string): Suite;\n\n /**\n * Return a clone of this `Suite`.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#clone\n */\n clone(): Suite;\n\n /**\n * Get timeout `ms`.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#timeout\n */\n timeout(): number;\n\n /**\n * Set timeout `ms` or short-hand such as \"2s\".\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#timeout\n */\n timeout(ms: string | number): this;\n\n /**\n * Get number of times to retry a failed test.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#retries\n */\n retries(): number;\n\n /**\n * Set number of times to retry a failed test.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#retries\n */\n retries(n: string | number): this;\n\n /**\n * Get whether timeouts are enabled.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#enableTimeouts\n */\n enableTimeouts(): boolean;\n\n /**\n * Set whether timeouts are `enabled`.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#enableTimeouts\n */\n enableTimeouts(enabled: boolean): this;\n\n /**\n * Get slow `ms`.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#slow\n */\n slow(): number;\n\n /**\n * Set slow `ms` or short-hand such as \"2s\".\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#slow\n */\n slow(ms: string | number): this;\n\n /**\n * Get whether to bail after first error.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#bail\n */\n bail(): boolean;\n\n /**\n * Set whether to bail after first error.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#bail\n */\n bail(bail: boolean): this;\n\n /**\n * Check if this suite or its parent suite is marked as pending.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#isPending\n */\n isPending(): boolean;\n\n /**\n * Run `fn(test[, done])` before running tests.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#beforeAll\n */\n beforeAll(fn?: Func): this;\n\n /**\n * Run `fn(test[, done])` before running tests.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#beforeAll\n */\n beforeAll(fn?: AsyncFunc): this;\n\n /**\n * Run `fn(test[, done])` before running tests.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#beforeAll\n */\n beforeAll(title: string, fn?: Func): this;\n\n /**\n * Run `fn(test[, done])` before running tests.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#beforeAll\n */\n beforeAll(title: string, fn?: AsyncFunc): this;\n\n /**\n * Run `fn(test[, done])` after running tests.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#afterAll\n */\n afterAll(fn?: Func): this;\n\n /**\n * Run `fn(test[, done])` after running tests.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#afterAll\n */\n afterAll(fn?: AsyncFunc): this;\n\n /**\n * Run `fn(test[, done])` after running tests.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#afterAll\n */\n afterAll(title: string, fn?: Func): this;\n\n /**\n * Run `fn(test[, done])` after running tests.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#afterAll\n */\n afterAll(title: string, fn?: AsyncFunc): this;\n\n /**\n * Run `fn(test[, done])` before each test case.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#beforeEach\n */\n beforeEach(fn?: Func): this;\n\n /**\n * Run `fn(test[, done])` before each test case.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#beforeEach\n */\n beforeEach(fn?: AsyncFunc): this;\n\n /**\n * Run `fn(test[, done])` before each test case.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#beforeEach\n */\n beforeEach(title: string, fn?: Func): this;\n\n /**\n * Run `fn(test[, done])` before each test case.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#beforeEach\n */\n beforeEach(title: string, fn?: AsyncFunc): this;\n\n /**\n * Run `fn(test[, done])` after each test case.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#afterEach\n */\n afterEach(fn?: Func): this;\n\n /**\n * Run `fn(test[, done])` after each test case.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#afterEach\n */\n afterEach(fn?: AsyncFunc): this;\n\n /**\n * Run `fn(test[, done])` after each test case.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#afterEach\n */\n afterEach(title: string, fn?: Func): this;\n\n /**\n * Run `fn(test[, done])` after each test case.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#afterEach\n */\n afterEach(title: string, fn?: AsyncFunc): this;\n\n /**\n * Add a test `suite`.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#addSuite\n */\n addSuite(suite: Suite): this;\n /** @deprecated Use the overload that accepts `Mocha.ISuite` instead. */\n addSuite(suite: ISuite): this;\n\n /**\n * Add a `test` to this suite.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#addTest\n */\n addTest(test: Test): this;\n /** @deprecated Use the overload that accepts `Mocha.ITest` instead. */\n addTest(test: ITest): this;\n\n /**\n * Return the full title generated by recursively concatenating the parent's\n * full title.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#.Suite#fullTitle\n */\n fullTitle(): string;\n\n /**\n * Return the title path generated by recursively concatenating the parent's\n * title path.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#.Suite#titlePath\n */\n titlePath(): string[];\n\n /**\n * Return the total number of tests.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#.Suite#total\n */\n total(): number;\n\n /**\n * Iterates through each suite recursively to find all tests. Applies a\n * function in the format `fn(test)`.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#eachTest\n */\n eachTest(fn: (test: Test) => void): this;\n\n /**\n * This will run the root suite if we happen to be running in delayed mode.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#run\n */\n run(): void;\n\n /**\n * Generic hook-creator.\n */\n protected _createHook(title: string, fn?: Func | AsyncFunc): Hook;\n }\n\n // #region Suite \"beforeAll\" event\n interface Suite extends NodeJS.EventEmitter {\n on(event: \"beforeAll\", listener: (hook: Hook) => void): this;\n once(event: \"beforeAll\", listener: (hook: Hook) => void): this;\n addListener(event: \"beforeAll\", listener: (hook: Hook) => void): this;\n removeListener(event: \"beforeAll\", listener: (hook: Hook) => void): this;\n prependListener(event: \"beforeAll\", listener: (hook: Hook) => void): this;\n prependOnceListener(event: \"beforeAll\", listener: (hook: Hook) => void): this;\n emit(name: \"beforeAll\", hook: Hook): boolean;\n }\n // #endregion Suite \"beforeAll\" event\n // #region Suite \"afterAll\" event\n interface Suite extends NodeJS.EventEmitter {\n on(event: \"afterAll\", listener: (hook: Hook) => void): this;\n once(event: \"afterAll\", listener: (hook: Hook) => void): this;\n addListener(event: \"afterAll\", listener: (hook: Hook) => void): this;\n removeListener(event: \"afterAll\", listener: (hook: Hook) => void): this;\n prependListener(event: \"afterAll\", listener: (hook: Hook) => void): this;\n prependOnceListener(event: \"afterAll\", listener: (hook: Hook) => void): this;\n emit(name: \"afterAll\", hook: Hook): boolean;\n }\n // #endregion Suite \"afterAll\" event\n // #region Suite \"beforeEach\" event\n interface Suite extends NodeJS.EventEmitter {\n on(event: \"beforeEach\", listener: (hook: Hook) => void): this;\n once(event: \"beforeEach\", listener: (hook: Hook) => void): this;\n addListener(event: \"beforeEach\", listener: (hook: Hook) => void): this;\n removeListener(event: \"beforeEach\", listener: (hook: Hook) => void): this;\n prependListener(event: \"beforeEach\", listener: (hook: Hook) => void): this;\n prependOnceListener(event: \"beforeEach\", listener: (hook: Hook) => void): this;\n emit(name: \"beforeEach\", hook: Hook): boolean;\n }\n // #endregion Suite \"beforeEach\" event\n // #region Suite \"afterEach\" event\n interface Suite extends NodeJS.EventEmitter {\n on(event: \"afterEach\", listener: (hook: Hook) => void): this;\n once(event: \"afterEach\", listener: (hook: Hook) => void): this;\n addListener(event: \"afterEach\", listener: (hook: Hook) => void): this;\n removeListener(event: \"afterEach\", listener: (hook: Hook) => void): this;\n prependListener(event: \"afterEach\", listener: (hook: Hook) => void): this;\n prependOnceListener(event: \"afterEach\", listener: (hook: Hook) => void): this;\n emit(name: \"afterEach\", hook: Hook): boolean;\n }\n // #endregion Suite \"afterEach\" event\n // #region Suite \"suite\" event\n interface Suite extends NodeJS.EventEmitter {\n on(event: \"suite\", listener: (suite: Suite) => void): this;\n once(event: \"suite\", listener: (suite: Suite) => void): this;\n addListener(event: \"suite\", listener: (suite: Suite) => void): this;\n removeListener(event: \"suite\", listener: (suite: Suite) => void): this;\n prependListener(event: \"suite\", listener: (suite: Suite) => void): this;\n prependOnceListener(event: \"suite\", listener: (suite: Suite) => void): this;\n emit(name: \"suite\", suite: Suite): boolean;\n }\n // #endregion Suite \"suite\" event\n // #region Suite \"test\" event\n interface Suite {\n on(event: \"test\", listener: (test: Test) => void): this;\n once(event: \"test\", listener: (test: Test) => void): this;\n addListener(event: \"test\", listener: (test: Test) => void): this;\n removeListener(event: \"test\", listener: (test: Test) => void): this;\n prependListener(event: \"test\", listener: (test: Test) => void): this;\n prependOnceListener(event: \"test\", listener: (test: Test) => void): this;\n emit(name: \"test\", test: Test): boolean;\n }\n // #endregion Suite \"test\" event\n // #region Suite \"run\" event\n interface Suite extends NodeJS.EventEmitter {\n on(event: \"run\", listener: () => void): this;\n once(event: \"run\", listener: () => void): this;\n addListener(event: \"run\", listener: () => void): this;\n removeListener(event: \"run\", listener: () => void): this;\n prependListener(event: \"run\", listener: () => void): this;\n prependOnceListener(event: \"run\", listener: () => void): this;\n emit(name: \"run\"): boolean;\n }\n // #endregion Suite \"run\" event\n // #region Suite \"pre-require\" event\n interface Suite extends NodeJS.EventEmitter {\n on(event: \"pre-require\", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;\n once(event: \"pre-require\", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;\n addListener(event: \"pre-require\", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;\n removeListener(event: \"pre-require\", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;\n prependListener(event: \"pre-require\", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;\n prependOnceListener(event: \"pre-require\", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;\n emit(name: \"pre-require\", context: MochaGlobals, file: string, mocha: Mocha): boolean;\n }\n // #endregion Suite \"pre-require\" event\n // #region Suite \"require\" event\n interface Suite extends NodeJS.EventEmitter {\n on(event: \"require\", listener: (module: any, file: string, mocha: Mocha) => void): this;\n once(event: \"require\", listener: (module: any, file: string, mocha: Mocha) => void): this;\n addListener(event: \"require\", listener: (module: any, file: string, mocha: Mocha) => void): this;\n removeListener(event: \"require\", listener: (module: any, file: string, mocha: Mocha) => void): this;\n prependListener(event: \"require\", listener: (module: any, file: string, mocha: Mocha) => void): this;\n prependOnceListener(event: \"require\", listener: (module: any, file: string, mocha: Mocha) => void): this;\n emit(name: \"require\", module: any, file: string, mocha: Mocha): boolean;\n }\n // #endregion Suite \"require\" event\n // #region Suite \"post-require\" event\n interface Suite extends NodeJS.EventEmitter {\n on(event: \"post-require\", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;\n once(event: \"post-require\", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;\n addListener(event: \"post-require\", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;\n removeListener(event: \"post-require\", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;\n prependListener(event: \"post-require\", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;\n prependOnceListener(event: \"post-require\", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;\n emit(name: \"post-require\", context: MochaGlobals, file: string, mocha: Mocha): boolean;\n }\n // #endregion Suite \"post-require\" event\n // #region Suite untyped events\n interface Suite extends NodeJS.EventEmitter {\n on(event: string, listener: (...args: any[]) => void): this;\n once(event: string, listener: (...args: any[]) => void): this;\n addListener(event: string, listener: (...args: any[]) => void): this;\n removeListener(event: string, listener: (...args: any[]) => void): this;\n prependListener(event: string, listener: (...args: any[]) => void): this;\n prependOnceListener(event: string, listener: (...args: any[]) => void): this;\n emit(name: string, ...args: any[]): boolean;\n }\n // #endregion Runner untyped events\n\n /**\n * Initialize a new `Hook` with the given `title` and callback `fn`\n *\n * @see https://mochajs.org/api/Hook.html\n */\n class Hook extends Runnable {\n private _error;\n\n type: \"hook\";\n originalTitle?: string; // added by Runner\n\n /**\n * Get the test `err`.\n *\n * @see https://mochajs.org/api/Hook.html#error\n */\n error(): any;\n\n /**\n * Set the test `err`.\n *\n * @see https://mochajs.org/api/Hook.html#error\n */\n error(err: any): void;\n }\n\n /**\n * Initialize a new `Test` with the given `title` and callback `fn`.\n *\n * @see https://mochajs.org/api/Test.html\n */\n class Test extends Runnable {\n type: \"test\";\n speed?: \"slow\" | \"medium\" | \"fast\"; // added by reporters\n err?: Error; // added by reporters\n clone(): Test;\n }\n\n /**\n * Test statistics\n */\n interface Stats {\n suites: number;\n tests: number;\n passes: number;\n pending: number;\n failures: number;\n start?: Date;\n end?: Date;\n duration?: number;\n }\n\n type TestInterface = (suite: Suite) => void;\n\n interface ReporterConstructor {\n new (runner: Runner, options: MochaOptions): reporters.Base;\n }\n\n type Done = (err?: any) => void;\n\n /**\n * Callback function used for tests and hooks.\n */\n type Func = (this: Context, done: Done) => void;\n\n /**\n * Async callback function used for tests and hooks.\n */\n type AsyncFunc = (this: Context) => PromiseLike;\n\n /**\n * Options to pass to Mocha.\n */\n interface MochaOptions {\n /** Test interfaces (\"bdd\", \"tdd\", \"exports\", etc.). */\n ui?: Interface;\n\n /**\n * Reporter constructor, built-in reporter name, or reporter module path. Defaults to\n * `\"spec\"`.\n */\n reporter?: string | ReporterConstructor;\n\n /** Options to pass to the reporter. */\n reporterOptions?: any;\n\n /** Array of accepted globals. */\n globals?: string[];\n\n /** timeout in milliseconds. */\n timeout?: number;\n\n enableTimeouts?: boolean;\n\n /** number of times to retry failed tests. */\n retries?: number;\n\n /** bail on the first test failure. */\n bail?: boolean;\n\n /** milliseconds to wait before considering a test slow. */\n slow?: number;\n\n /** ignore global leaks. */\n ignoreLeaks?: boolean;\n\n /** display the full stack trace on failure. */\n fullStackTrace?: boolean;\n\n /** string or regexp to filter tests with. */\n grep?: string | RegExp;\n\n /** Enable growl support. */\n growl?: boolean;\n\n /** Emit color output. */\n useColors?: boolean;\n\n /** Use inline diffs rather than +/-. */\n inlineDiffs?: boolean;\n\n /** Do not show diffs at all. */\n hideDiff?: boolean;\n\n asyncOnly?: boolean;\n delay?: boolean;\n forbidOnly?: boolean;\n forbidPending?: boolean;\n noHighlighting?: boolean;\n allowUncaught?: boolean;\n }\n\n interface MochaInstanceOptions extends MochaOptions {\n files?: string[];\n }\n\n /**\n * Variables added to the global scope by Mocha when run in the CLI.\n */\n interface MochaGlobals {\n /**\n * Execute before running tests.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#before\n */\n before: HookFunction;\n\n /**\n * Execute after running tests.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#after\n */\n after: HookFunction;\n\n /**\n * Execute before each test case.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#beforeEach\n */\n beforeEach: HookFunction;\n\n /**\n * Execute after each test case.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#afterEach\n */\n afterEach: HookFunction;\n\n /**\n * Describe a \"suite\" containing nested suites and tests.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n describe: SuiteFunction;\n\n /**\n * Describe a \"suite\" containing nested suites and tests.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n context: SuiteFunction;\n\n /**\n * Pending suite.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n xdescribe: PendingSuiteFunction;\n\n /**\n * Pending suite.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n xcontext: PendingSuiteFunction;\n\n /**\n * Describes a test case.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n it: TestFunction;\n\n /**\n * Describes a test case.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n specify: TestFunction;\n\n /**\n * Describes a pending test case.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n xit: PendingTestFunction;\n\n /**\n * Describes a pending test case.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n xspecify: PendingTestFunction;\n\n /**\n * Execute before running tests.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#before\n */\n suiteSetup: HookFunction;\n\n /**\n * Execute after running tests.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#after\n */\n suiteTeardown: HookFunction;\n\n /**\n * Execute before each test case.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#beforeEach\n */\n setup: HookFunction;\n\n /**\n * Execute after each test case.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#afterEach\n */\n teardown: HookFunction;\n\n /**\n * Describe a \"suite\" containing nested suites and tests.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n suite: SuiteFunction;\n\n /**\n * Describes a test case.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n test: TestFunction;\n\n run: typeof run;\n }\n\n /**\n * Third-party declarations that want to add new entries to the `Reporter` union can\n * contribute names here.\n */\n interface ReporterContributions {\n Base: never;\n base: never;\n Dot: never;\n dot: never;\n TAP: never;\n tap: never;\n JSON: never;\n json: never;\n HTML: never;\n html: never;\n List: never;\n list: never;\n Min: never;\n min: never;\n Spec: never;\n spec: never;\n Nyan: never;\n nyan: never;\n XUnit: never;\n xunit: never;\n Markdown: never;\n markdown: never;\n Progress: never;\n progress: never;\n Landing: never;\n landing: never;\n JSONStream: never;\n \"json-stream\": never;\n }\n\n type Reporter = keyof ReporterContributions;\n\n /**\n * Third-party declarations that want to add new entries to the `Interface` union can\n * contribute names here.\n */\n interface InterfaceContributions {\n bdd: never;\n tdd: never;\n qunit: never;\n exports: never;\n }\n\n type Interface = keyof InterfaceContributions;\n\n // #region Deprecations\n\n /** @deprecated use `Mocha.Context` instead. */\n interface IContext {\n test?: IRunnable;\n runnable(): IRunnable | undefined;\n /** @deprecated `.runnable()` returns `this` in `Mocha.Context`. */\n runnable(runnable: IRunnable): IContext;\n timeout(): number;\n /** @deprecated `.timeout()` returns `this` in `Mocha.Context`. */\n timeout(timeout: number): IContext;\n /** @deprecated `.enableTimeouts()` has additional overloads in `Mocha.Context`. */\n /** @deprecated `.enableTimeouts()` returns `this` in `Mocha.Context`. */\n enableTimeouts(enableTimeouts: boolean): IContext;\n /** @deprecated `.slow()` has additional overloads in `Mocha.Context`. */\n /** @deprecated `.slow()` returns `this` in `Mocha.Context`. */\n slow(slow: number): IContext;\n /** @deprecated `.skip()` returns `never` in `Mocha.Context`. */\n skip(): IContext;\n retries(): number;\n /** @deprecated `.retries()` returns `this` in `Mocha.Context`. */\n retries(retries: number): IContext;\n }\n\n /** @deprecated use `Mocha.Suite` instead. */\n interface ISuiteCallbackContext {\n /** @deprecated `.timeout()` has additional overloads in `Mocha.Suite`. */\n timeout(ms: number | string): this;\n /** @deprecated `.retries()` has additional overloads in `Mocha.Suite`. */\n retries(n: number): this;\n /** @deprecated `.slow()` has additional overloads in `Mocha.Suite`. */\n slow(ms: number): this;\n }\n\n /** @deprecated use `Mocha.Context` instead. */\n interface IHookCallbackContext {\n /** @deprecated `.skip()` returns `never` in `Mocha.Context`. */\n skip(): this;\n /** @deprecated `.timeout()` has additional overloads in `Mocha.Context`. */\n timeout(ms: number | string): this;\n [index: string]: any;\n }\n\n /** @deprecated use `Mocha.Context` instead. */\n interface ITestCallbackContext {\n /** @deprecated `.skip()` returns `never` in `Mocha.Context`. */\n skip(): this;\n /** @deprecated `.timeout()` has additional overloads in `Mocha.Context`. */\n timeout(ms: number | string): this;\n /** @deprecated `.retries()` has additional overloads in `Mocha.Context`. */\n retries(n: number): this;\n /** @deprecated `.slow()` has additional overloads in `Mocha.Context`. */\n slow(ms: number): this;\n [index: string]: any;\n }\n\n /** Partial interface for Mocha's `Runnable` class. */\n /** @deprecated use `Mocha.Runnable` instead. */\n interface IRunnable extends NodeJS.EventEmitter {\n title: string;\n /** @deprecated `.fn` has type `Func | AsyncFunc` in `Mocha.Runnable`. */\n fn: Function | undefined;\n async: boolean;\n sync: boolean;\n timedOut: boolean;\n /** @deprecated `.timeout()` has additional overloads in `Mocha.Runnable`. */\n timeout(n: number | string): this;\n duration?: number;\n }\n\n /** Partial interface for Mocha's `Suite` class. */\n /** @deprecated use `Mocha.Suite` instead. */\n interface ISuite {\n /** @deprecated `.ctx` has type `Mocha.Context` in `Mocha.Suite`. */\n ctx: IContext;\n /** @deprecated `.parent` has type `Mocha.Suite | undefined` in `Mocha.Suite`. */\n parent: ISuite | undefined;\n root: boolean;\n title: string;\n /** @deprecated `.suites` has type `Mocha.Suite[]` in `Mocha.Suite`. */\n suites: ISuite[];\n /** @deprecated `.tests` has type `Mocha.Test[]` in `Mocha.Suite`. */\n tests: ITest[];\n\n bail(): boolean;\n /** @deprecated `.bail()` returns `this` in `Mocha.Suite`. */\n bail(bail: boolean): ISuite;\n fullTitle(): string;\n retries(): number;\n /** @deprecated `.retries()` returns `this` in `Mocha.Suite`. */\n retries(retries: number): ISuite;\n slow(): number;\n /** @deprecated `.slow()` returns `this` in `Mocha.Suite`. */\n slow(slow: number): ISuite;\n timeout(): number;\n /** @deprecated `.timeout()` returns `this` in `Mocha.Suite`. */\n timeout(timeout: number): ISuite;\n }\n\n /** Partial interface for Mocha's `Test` class. */\n /** @deprecated use `Mocha.Test` instead. */\n interface ITest extends IRunnable {\n body?: string;\n file?: string;\n /** @deprecated `.parent` has type `Mocha.Suite | undefined` in `Mocha.Test`. */\n parent?: ISuite;\n pending: boolean;\n state?: 'failed' | 'passed';\n type: 'test';\n fullTitle(): string;\n }\n\n /** @deprecated use `Mocha.Hook` instead. */\n interface IHook extends IRunnable {\n /** @deprecated `.ctx` has type `Mocha.Context` in `Mocha.Runnable`. */\n ctx?: IContext;\n /** @deprecated `.parent` has type `Mocha.Suite` in `Mocha.Runnable`. */\n parent?: ISuite;\n type: 'hook';\n /** @deprecated `.error()` has additional overloads in `Mocha.Hook`. */\n error(err: Error): void;\n }\n\n /** @deprecated use `Mocha.Context` instead. */\n interface IBeforeAndAfterContext extends IHookCallbackContext {\n /** @deprecated `.currentTest` has type `Mocha.Test` in `Mocha.Context`. */\n currentTest?: ITest;\n }\n\n /** @deprecated use `Mocha.Stats` instead. */\n type IStats = Stats;\n\n /** Partial interface for Mocha's `Runner` class. */\n /** @deprecated use `Mocha.Runner` instead. */\n interface IRunner extends NodeJS.EventEmitter {\n asyncOnly?: boolean;\n stats?: IStats;\n started: boolean;\n /** @deprecated `.suite` has type `Mocha.Suite` in `Mocha.Runner`. */\n suite: ISuite;\n total: number;\n failures: number;\n forbidOnly?: boolean;\n forbidPending?: boolean;\n fullStackTrace?: boolean;\n ignoreLeaks?: boolean;\n grep(re: RegExp, invert: boolean): this;\n /** @deprecated Parameter `suite` has type `Mocha.Suite` in `Mocha.Runner`. */\n grepTotal(suite: ISuite): number;\n /** @deprecated `.globals()` has different overloads in `Mocha.Runner`. */\n globals(arr: ReadonlyArray): this | string[];\n abort(): this;\n run(fn?: (failures: number) => void): this;\n }\n\n /** @deprecated use `Mocha.SuiteFunction` instead. */\n interface IContextDefinition {\n /** @deprecated use `Mocha.SuiteFunction` instead. */\n (description: string, callback: (this: ISuiteCallbackContext) => void): ISuite;\n /** @deprecated use `Mocha.SuiteFunction` instead. */\n only(description: string, callback: (this: ISuiteCallbackContext) => void): ISuite;\n /** @deprecated use `Mocha.SuiteFunction` instead. */\n skip(description: string, callback: (this: ISuiteCallbackContext) => void): void;\n }\n\n /** @deprecated use `Mocha.TestFunction` instead. */\n interface ITestDefinition {\n /** @deprecated use `Mocha.TestFunction` instead. */\n /** @deprecated `Mocha.TestFunction` does not allow mixing `done` with a return type of `PromiseLike`. */\n (expectation: string, callback?: (this: ITestCallbackContext, done: MochaDone) => PromiseLike | void): ITest;\n /** @deprecated use `Mocha.TestFunction` instead. */\n /** @deprecated `Mocha.TestFunction#only` does not allow mixing `done` with a return type of `PromiseLike`. */\n only(expectation: string, callback?: (this: ITestCallbackContext, done: MochaDone) => PromiseLike | void): ITest;\n /** @deprecated use `Mocha.TestFunction` instead. */\n /** @deprecated `Mocha.TestFunction#skip` does not allow mixing `done` with a return type of `PromiseLike`. */\n skip(expectation: string, callback?: (this: ITestCallbackContext, done: MochaDone) => PromiseLike | void): void;\n }\n\n // #endregion\n}\n\n// #region Test interface augmentations\n\n/**\n * Triggers root suite execution.\n *\n * - _Only available if flag --delay is passed into Mocha._\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#runWithSuite\n */\ndeclare function run(): void;\n\n/**\n * Execute before running tests.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#before\n */\ndeclare var before: Mocha.HookFunction;\n\n/**\n * Execute before running tests.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#before\n */\ndeclare var suiteSetup: Mocha.HookFunction;\n\n/**\n * Execute after running tests.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#after\n */\ndeclare var after: Mocha.HookFunction;\n\n/**\n * Execute after running tests.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#after\n */\ndeclare var suiteTeardown: Mocha.HookFunction;\n\n/**\n * Execute before each test case.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#beforeEach\n */\ndeclare var beforeEach: Mocha.HookFunction;\n\n/**\n * Execute before each test case.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#beforeEach\n */\ndeclare var setup: Mocha.HookFunction;\n\n/**\n * Execute after each test case.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#afterEach\n */\ndeclare var afterEach: Mocha.HookFunction;\n\n/**\n * Execute after each test case.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#afterEach\n */\ndeclare var teardown: Mocha.HookFunction;\n\n/**\n * Describe a \"suite\" containing nested suites and tests.\n *\n * - _Only available when invoked via the mocha CLI._\n */\ndeclare var describe: Mocha.SuiteFunction;\n\n/**\n * Describe a \"suite\" containing nested suites and tests.\n *\n * - _Only available when invoked via the mocha CLI._\n */\ndeclare var context: Mocha.SuiteFunction;\n\n/**\n * Describe a \"suite\" containing nested suites and tests.\n *\n * - _Only available when invoked via the mocha CLI._\n */\ndeclare var suite: Mocha.SuiteFunction;\n\n/**\n * Pending suite.\n *\n * - _Only available when invoked via the mocha CLI._\n */\ndeclare var xdescribe: Mocha.PendingSuiteFunction;\n\n/**\n * Pending suite.\n *\n * - _Only available when invoked via the mocha CLI._\n */\ndeclare var xcontext: Mocha.PendingSuiteFunction;\n\n/**\n * Describes a test case.\n *\n * - _Only available when invoked via the mocha CLI._\n */\ndeclare var it: Mocha.TestFunction;\n\n/**\n * Describes a test case.\n *\n * - _Only available when invoked via the mocha CLI._\n */\ndeclare var specify: Mocha.TestFunction;\n\n/**\n * Describes a test case.\n *\n * - _Only available when invoked via the mocha CLI._\n */\ndeclare var test: Mocha.TestFunction;\n\n/**\n * Describes a pending test case.\n *\n * - _Only available when invoked via the mocha CLI._\n */\ndeclare var xit: Mocha.PendingTestFunction;\n\n/**\n * Describes a pending test case.\n *\n * - _Only available when invoked via the mocha CLI._\n */\ndeclare var xspecify: Mocha.PendingTestFunction;\n\n// #endregion Test interface augmentations\n\n// #region Reporter augmentations\n\n// Forward declaration for `HTMLLIElement` from lib.dom.d.ts.\n// Required by Mocha.reporters.HTML.\n// NOTE: Mocha *must not* have a direct dependency on DOM types.\n// tslint:disable-next-line no-empty-interface\ninterface HTMLLIElement { }\n\n// Augments the DOM `Window` object when lib.dom.d.ts is loaded.\n// tslint:disable-next-line no-empty-interface\ninterface Window extends Mocha.MochaGlobals { }\n\ndeclare namespace NodeJS {\n // Forward declaration for `NodeJS.EventEmitter` from node.d.ts.\n // Required by Mocha.Runnable, Mocha.Runner, and Mocha.Suite.\n // NOTE: Mocha *must not* have a direct dependency on @types/node.\n // tslint:disable-next-line no-empty-interface\n interface EventEmitter { }\n\n // Augments NodeJS's `global` object when node.d.ts is loaded\n // tslint:disable-next-line no-empty-interface\n interface Global extends Mocha.MochaGlobals { }\n}\n\n// #endregion Reporter augmentations\n\n// #region Browser augmentations\n\n/**\n * Mocha global.\n *\n * - _Only supported in the browser._\n */\ndeclare const mocha: BrowserMocha;\n\ninterface BrowserMocha extends Mocha {\n /**\n * Function to allow assertion libraries to throw errors directly into mocha.\n * This is useful when running tests in a browser because window.onerror will\n * only receive the 'message' attribute of the Error.\n *\n * - _Only supported in the browser._\n */\n throwError(err: any): never;\n\n /**\n * Setup mocha with the given settings options.\n *\n * - _Only supported in the browser._\n */\n setup(opts?: Mocha.Interface | MochaSetupOptions): this;\n}\n\n/**\n * Options to pass to `mocha.setup` in the browser.\n */\ninterface MochaSetupOptions extends Mocha.MochaOptions {\n /** @deprecated This is not used by Mocha. Use `files` instead. */\n require?: string[];\n fullTrace?: boolean;\n}\n\n// #endregion Browser augmentations\n\n// #region Deprecations\n\n/** @deprecated use `Mocha.Done` instead. */\ntype MochaDone = Mocha.Done;\n\n/** @deprecated use `Mocha.ReporterConstructor` instead. */\ntype ReporterConstructor = Mocha.ReporterConstructor;\n\n// #endregion Deprecations\n\ndeclare module \"mocha\" {\n export = Mocha;\n}\n\ndeclare module \"mocha/lib/ms\" {\n export = milliseconds;\n /**\n * Parse the given `str` and return milliseconds.\n *\n * @see {@link https://mochajs.org/api/module-milliseconds.html}\n * @see {@link https://mochajs.org/api/module-milliseconds.html#~parse}\n */\n function milliseconds(val: string): number;\n\n /**\n * Format for `ms`.\n *\n * @see {@link https://mochajs.org/api/module-milliseconds.html}\n * @see {@link https://mochajs.org/api/module-milliseconds.html#~format}\n */\n function milliseconds(val: number): string;\n}\n\ndeclare module \"mocha/lib/interfaces/common\" {\n export = common;\n\n function common(suites: Mocha.Suite[], context: Mocha.MochaGlobals, mocha: Mocha): common.CommonFunctions;\n\n namespace common {\n interface CommonFunctions {\n /**\n * This is only present if flag --delay is passed into Mocha. It triggers\n * root suite execution.\n */\n runWithSuite(suite: Mocha.Suite): () => void;\n\n /**\n * Execute before running tests.\n */\n before(fn?: Mocha.Func | Mocha.AsyncFunc): void;\n\n /**\n * Execute before running tests.\n */\n before(name: string, fn?: Mocha.Func | Mocha.AsyncFunc): void;\n\n /**\n * Execute after running tests.\n */\n after(fn?: Mocha.Func | Mocha.AsyncFunc): void;\n\n /**\n * Execute after running tests.\n */\n after(name: string, fn?: Mocha.Func | Mocha.AsyncFunc): void;\n\n /**\n * Execute before each test case.\n */\n beforeEach(fn?: Mocha.Func | Mocha.AsyncFunc): void;\n\n /**\n * Execute before each test case.\n */\n beforeEach(name: string, fn?: Mocha.Func | Mocha.AsyncFunc): void;\n\n /**\n * Execute after each test case.\n */\n afterEach(fn?: Mocha.Func | Mocha.AsyncFunc): void;\n\n /**\n * Execute after each test case.\n */\n afterEach(name: string, fn?: Mocha.Func | Mocha.AsyncFunc): void;\n\n suite: SuiteFunctions;\n test: TestFunctions;\n }\n\n interface CreateOptions {\n /** Title of suite */\n title: string;\n\n /** Suite function */\n fn?: (this: Mocha.Suite) => void;\n\n /** Is suite pending? */\n pending?: boolean;\n\n /** Filepath where this Suite resides */\n file?: string;\n\n /** Is suite exclusive? */\n isOnly?: boolean;\n }\n\n interface SuiteFunctions {\n /**\n * Create an exclusive Suite; convenience function\n */\n only(opts: CreateOptions): Mocha.Suite;\n\n /**\n * Create a Suite, but skip it; convenience function\n */\n skip(opts: CreateOptions): Mocha.Suite;\n\n /**\n * Creates a suite.\n */\n create(opts: CreateOptions): Mocha.Suite;\n }\n\n interface TestFunctions {\n /**\n * Exclusive test-case.\n */\n only(mocha: Mocha, test: Mocha.Test): Mocha.Test;\n\n /**\n * Pending test case.\n */\n skip(title: string): void;\n\n /**\n * Number of retry attempts\n */\n retries(n: number): void;\n }\n }\n}\n\n// Type definitions for chai 4.2\n// Project: http://chaijs.com/\n// Definitions by: Jed Mao ,\n// Bart van der Schoor ,\n// Andrew Brown ,\n// Olivier Chevet ,\n// Matt Wistrand ,\n// Josh Goldberg \n// Shaun Luttin \n// Gintautas Miselis \n// Satana Charuwichitratana \n// Erik Schierboom \n// Rebecca Turner \n// Bogdan Paranytsia \n// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped\n// TypeScript Version: 3.0\n\ndeclare namespace Chai {\n type Message = string | (() => string);\n type ObjectProperty = string | symbol | number;\n\n interface PathInfo {\n parent: object;\n name: string;\n value?: any;\n exists: boolean;\n }\n\n interface ErrorConstructor {\n new(...args: any[]): Error;\n }\n\n interface ChaiUtils {\n addChainableMethod(\n // object to define the method on, e.g. chai.Assertion.prototype\n ctx: object,\n // method name\n name: string,\n // method itself; any arguments\n method: (...args: any[]) => void,\n // called when property is accessed\n chainingBehavior?: () => void\n ): void;\n overwriteChainableMethod(\n ctx: object,\n name: string,\n method: (...args: any[]) => void,\n chainingBehavior?: () => void\n ): void;\n addLengthGuard(\n fn: Function,\n assertionName: string,\n isChainable: boolean\n ): void;\n addMethod(ctx: object, name: string, method: Function): void;\n addProperty(ctx: object, name: string, getter: () => any): void;\n overwriteMethod(ctx: object, name: string, method: Function): void;\n overwriteProperty(ctx: object, name: string, getter: () => any): void;\n compareByInspect(a: object, b: object): -1 | 1;\n expectTypes(obj: object, types: string[]): void;\n flag(obj: object, key: string, value?: any): any;\n getActual(obj: object, args: AssertionArgs): any;\n getProperties(obj: object): string[];\n getEnumerableProperties(obj: object): string[];\n getOwnEnumerablePropertySymbols(obj: object): symbol[];\n getOwnEnumerableProperties(obj: object): Array;\n getMessage(errorLike: Error | string): string;\n getMessage(obj: any, args: AssertionArgs): string;\n inspect(obj: any, showHidden?: boolean, depth?: number, colors?: boolean): void;\n isProxyEnabled(): boolean;\n objDisplay(obj: object): void;\n proxify(obj: object, nonChainableMethodName: string): object;\n test(obj: object, args: AssertionArgs): boolean;\n transferFlags(assertion: Assertion, obj: object, includeAll?: boolean): void;\n compatibleInstance(thrown: Error, errorLike: Error | ErrorConstructor): boolean;\n compatibleConstructor(thrown: Error, errorLike: Error | ErrorConstructor): boolean;\n compatibleMessage(thrown: Error, errMatcher: string | RegExp): boolean;\n getConstructorName(constructorFn: Function): string;\n getFuncName(constructorFn: Function): string | null;\n\n // Reexports from pathval:\n hasProperty(obj: object | undefined | null, name: ObjectProperty): boolean;\n getPathInfo(obj: object, path: string): PathInfo;\n getPathValue(obj: object, path: string): object | undefined;\n }\n\n type ChaiPlugin = (chai: ChaiStatic, utils: ChaiUtils) => void;\n\n interface ChaiStatic {\n expect: ExpectStatic;\n should(): Should;\n /**\n * Provides a way to extend the internals of Chai\n */\n use(fn: ChaiPlugin): ChaiStatic;\n util: ChaiUtils;\n assert: AssertStatic;\n config: Config;\n Assertion: AssertionStatic;\n AssertionError: typeof AssertionError;\n version: string;\n }\n\n export interface ExpectStatic {\n (val: any, message?: string): Assertion;\n fail(actual?: any, expected?: any, message?: string, operator?: Operator): void;\n }\n\n export interface AssertStatic extends Assert {\n }\n\n // chai.Assertion.prototype.assert arguments\n type AssertionArgs = [\n // 'expression to be tested'\n // This parameter is unused and the docs list its type as\n // 'Philosophical', which is mentioned nowhere else in the source. Do\n // with that what you will!\n any,\n Message, // message if value fails\n Message, // message if negated value fails\n any, // expected value\n any?, // actual value\n boolean? // showDiff\n ];\n\n export interface AssertionPrototype {\n assert(...args: AssertionArgs): void;\n _obj: any;\n }\n\n export interface AssertionStatic extends AssertionPrototype {\n prototype: AssertionPrototype;\n\n new (target: any, message?: string, ssfi?: Function, lockSsfi?: boolean): Assertion;\n\n // Deprecated properties:\n includeStack: boolean;\n showDiff: boolean;\n\n // Partials of functions on ChaiUtils:\n addProperty(name: string, getter: (this: AssertionStatic) => any): void;\n addMethod(name: string, method: (this: AssertionStatic, ...args: any[]) => any): void;\n addChainableMethod(\n name: string,\n method: (this: AssertionStatic, ...args: any[]) => void,\n chainingBehavior?: () => void\n ): void;\n overwriteProperty(name: string, getter: (this: AssertionStatic) => any): void;\n overwriteMethod(name: string, method: (this: AssertionStatic, ...args: any[]) => any): void;\n overwriteChainableMethod(\n name: string,\n method: (this: AssertionStatic, ...args: any[]) => void,\n chainingBehavior?: () => void\n ): void;\n }\n\n export type Operator = string; // \"==\" | \"===\" | \">\" | \">=\" | \"<\" | \"<=\" | \"!=\" | \"!==\";\n\n export type OperatorComparable = boolean | null | number | string | undefined | Date;\n\n interface ShouldAssertion {\n equal(value1: any, value2: any, message?: string): void;\n Throw: ShouldThrow;\n throw: ShouldThrow;\n exist(value: any, message?: string): void;\n }\n\n interface Should extends ShouldAssertion {\n not: ShouldAssertion;\n fail(actual: any, expected: any, message?: string, operator?: Operator): void;\n }\n\n interface ShouldThrow {\n (actual: Function, expected?: string|RegExp, message?: string): void;\n (actual: Function, constructor: Error|Function, expected?: string|RegExp, message?: string): void;\n }\n\n interface Assertion extends LanguageChains, NumericComparison, TypeComparison {\n not: Assertion;\n deep: Deep;\n ordered: Ordered;\n nested: Nested;\n own: Own;\n any: KeyFilter;\n all: KeyFilter;\n a: TypeComparison;\n an: TypeComparison;\n include: Include;\n includes: Include;\n contain: Include;\n contains: Include;\n ok: Assertion;\n true: Assertion;\n false: Assertion;\n null: Assertion;\n undefined: Assertion;\n NaN: Assertion;\n exist: Assertion;\n empty: Assertion;\n arguments: Assertion;\n Arguments: Assertion;\n equal: Equal;\n equals: Equal;\n eq: Equal;\n eql: Equal;\n eqls: Equal;\n property: Property;\n ownProperty: Property;\n haveOwnProperty: Property;\n ownPropertyDescriptor: OwnPropertyDescriptor;\n haveOwnPropertyDescriptor: OwnPropertyDescriptor;\n length: Length;\n lengthOf: Length;\n match: Match;\n matches: Match;\n string(string: string, message?: string): Assertion;\n keys: Keys;\n key(string: string): Assertion;\n throw: Throw;\n throws: Throw;\n Throw: Throw;\n respondTo: RespondTo;\n respondsTo: RespondTo;\n itself: Assertion;\n satisfy: Satisfy;\n satisfies: Satisfy;\n closeTo: CloseTo;\n approximately: CloseTo;\n members: Members;\n increase: PropertyChange;\n increases: PropertyChange;\n decrease: PropertyChange;\n decreases: PropertyChange;\n change: PropertyChange;\n changes: PropertyChange;\n extensible: Assertion;\n sealed: Assertion;\n frozen: Assertion;\n oneOf(list: ReadonlyArray, message?: string): Assertion;\n }\n\n interface LanguageChains {\n to: Assertion;\n be: Assertion;\n been: Assertion;\n is: Assertion;\n that: Assertion;\n which: Assertion;\n and: Assertion;\n has: Assertion;\n have: Assertion;\n with: Assertion;\n at: Assertion;\n of: Assertion;\n same: Assertion;\n but: Assertion;\n does: Assertion;\n }\n\n interface NumericComparison {\n above: NumberComparer;\n gt: NumberComparer;\n greaterThan: NumberComparer;\n least: NumberComparer;\n gte: NumberComparer;\n below: NumberComparer;\n lt: NumberComparer;\n lessThan: NumberComparer;\n most: NumberComparer;\n lte: NumberComparer;\n within(start: number, finish: number, message?: string): Assertion;\n within(start: Date, finish: Date, message?: string): Assertion;\n }\n\n interface NumberComparer {\n (value: number | Date, message?: string): Assertion;\n }\n\n interface TypeComparison {\n (type: string, message?: string): Assertion;\n instanceof: InstanceOf;\n instanceOf: InstanceOf;\n }\n\n interface InstanceOf {\n (constructor: any, message?: string): Assertion;\n }\n\n interface CloseTo {\n (expected: number, delta: number, message?: string): Assertion;\n }\n\n interface Nested {\n include: Include;\n includes: Include;\n contain: Include;\n contains: Include;\n property: Property;\n members: Members;\n }\n\n interface Own {\n include: Include;\n includes: Include;\n contain: Include;\n contains: Include;\n property: Property;\n }\n\n interface Deep {\n equal: Equal;\n equals: Equal;\n eq: Equal;\n include: Include;\n includes: Include;\n contain: Include;\n contains: Include;\n property: Property;\n members: Members;\n ordered: Ordered;\n nested: Nested;\n own: Own;\n }\n\n interface Ordered {\n members: Members;\n }\n\n interface KeyFilter {\n keys: Keys;\n members: Members;\n }\n\n interface Equal {\n (value: any, message?: string): Assertion;\n }\n\n interface Property {\n (name: string, value: any, message?: string): Assertion;\n (name: string, message?: string): Assertion;\n }\n\n interface OwnPropertyDescriptor {\n (name: string, descriptor: PropertyDescriptor, message?: string): Assertion;\n (name: string, message?: string): Assertion;\n }\n\n interface Length extends LanguageChains, NumericComparison {\n (length: number, message?: string): Assertion;\n }\n\n interface Include {\n (value: any, message?: string): Assertion;\n keys: Keys;\n deep: Deep;\n ordered: Ordered;\n members: Members;\n any: KeyFilter;\n all: KeyFilter;\n }\n\n interface Match {\n (regexp: RegExp, message?: string): Assertion;\n }\n\n interface Keys {\n (...keys: string[]): Assertion;\n (keys: ReadonlyArray|Object): Assertion;\n }\n\n interface Throw {\n (expected?: string|RegExp, message?: string): Assertion;\n (constructor: Error|Function, expected?: string|RegExp, message?: string): Assertion;\n }\n\n interface RespondTo {\n (method: string, message?: string): Assertion;\n }\n\n interface Satisfy {\n (matcher: Function, message?: string): Assertion;\n }\n\n interface Members {\n (set: ReadonlyArray, message?: string): Assertion;\n }\n\n interface PropertyChange {\n (object: Object, property?: string, message?: string): Assertion;\n }\n\n export interface Assert {\n /**\n * @param expression Expression to test for truthiness.\n * @param message Message to display on error.\n */\n (expression: any, message?: string): void;\n\n /**\n * Throws a failure.\n *\n * @type T Type of the objects.\n * @param actual Actual value.\n * @param expected Potential expected value.\n * @param message Message to display on error.\n * @param operator Comparison operator, if not strict equality.\n * @remarks Node.js assert module-compatible.\n */\n fail(actual?: T, expected?: T, message?: string, operator?: Operator): void;\n\n /**\n * Asserts that object is truthy.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param message Message to display on error.\n */\n isOk(value: T, message?: string): void;\n\n /**\n * Asserts that object is truthy.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param message Message to display on error.\n */\n ok(value: T, message?: string): void;\n\n /**\n * Asserts that object is falsy.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param message Message to display on error.\n */\n isNotOk(value: T, message?: string): void;\n\n /**\n * Asserts that object is falsy.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param message Message to display on error.\n */\n notOk(value: T, message?: string): void;\n\n /**\n * Asserts non-strict equality (==) of actual and expected.\n *\n * @type T Type of the objects.\n * @param actual Actual value.\n * @param expected Potential expected value.\n * @param message Message to display on error.\n */\n equal(actual: T, expected: T, message?: string): void;\n\n /**\n * Asserts non-strict inequality (==) of actual and expected.\n *\n * @type T Type of the objects.\n * @param actual Actual value.\n * @param expected Potential expected value.\n * @param message Message to display on error.\n */\n notEqual(actual: T, expected: T, message?: string): void;\n\n /**\n * Asserts strict equality (===) of actual and expected.\n *\n * @type T Type of the objects.\n * @param actual Actual value.\n * @param expected Potential expected value.\n * @param message Message to display on error.\n */\n strictEqual(actual: T, expected: T, message?: string): void;\n\n /**\n * Asserts strict inequality (==) of actual and expected.\n *\n * @type T Type of the objects.\n * @param actual Actual value.\n * @param expected Potential expected value.\n * @param message Message to display on error.\n */\n notStrictEqual(actual: T, expected: T, message?: string): void;\n\n /**\n * Asserts that actual is deeply equal (==) to expected.\n *\n * @type T Type of the objects.\n * @param actual Actual value.\n * @param expected Potential expected value.\n * @param message Message to display on error.\n */\n deepEqual(actual: T, expected: T, message?: string): void;\n\n /**\n * Asserts that actual is not deeply equal (==) to expected.\n *\n * @type T Type of the objects.\n * @param actual Actual value.\n * @param expected Potential expected value.\n * @param message Message to display on error.\n */\n notDeepEqual(actual: T, expected: T, message?: string): void;\n\n /**\n * Asserts that actual is deeply strict equal (===) to expected.\n *\n * @type T Type of the objects.\n * @param actual Actual value.\n * @param expected Potential expected value.\n * @param message Message to display on error.\n */\n deepStrictEqual(actual: T, expected: T, message?: string): void;\n\n /**\n * Asserts valueToCheck is strictly greater than (>) valueToBeAbove.\n *\n * @param valueToCheck Actual value.\n * @param valueToBeAbove Minimum Potential expected value.\n * @param message Message to display on error.\n */\n isAbove(valueToCheck: number, valueToBeAbove: number, message?: string): void;\n\n /**\n * Asserts valueToCheck is greater than or equal to (>=) valueToBeAtLeast.\n *\n * @param valueToCheck Actual value.\n * @param valueToBeAtLeast Minimum Potential expected value.\n * @param message Message to display on error.\n */\n isAtLeast(valueToCheck: number, valueToBeAtLeast: number, message?: string): void;\n\n /**\n * Asserts valueToCheck is strictly less than (<) valueToBeBelow.\n *\n * @param valueToCheck Actual value.\n * @param valueToBeBelow Minimum Potential expected value.\n * @param message Message to display on error.\n */\n isBelow(valueToCheck: number, valueToBeBelow: number, message?: string): void;\n\n /**\n * Asserts valueToCheck is less than or equal to (<=) valueToBeAtMost.\n *\n * @param valueToCheck Actual value.\n * @param valueToBeAtMost Minimum Potential expected value.\n * @param message Message to display on error.\n */\n isAtMost(valueToCheck: number, valueToBeAtMost: number, message?: string): void;\n\n /**\n * Asserts that value is true.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isTrue(value: T, message?: string): void;\n\n /**\n * Asserts that value is false.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isFalse(value: T, message?: string): void;\n\n /**\n * Asserts that value is not true.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isNotTrue(value: T, message?: string): void;\n\n /**\n * Asserts that value is not false.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isNotFalse(value: T, message?: string): void;\n\n /**\n * Asserts that value is null.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isNull(value: T, message?: string): void;\n\n /**\n * Asserts that value is not null.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isNotNull(value: T, message?: string): void;\n\n /**\n * Asserts that value is NaN.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isNaN(value: T, message?: string): void;\n\n /**\n * Asserts that value is not NaN.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isNotNaN(value: T, message?: string): void;\n\n /**\n * Asserts that the target is neither null nor undefined.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n exists(value: T, message?: string): void;\n\n /**\n * Asserts that the target is either null or undefined.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n notExists(value: T, message?: string): void;\n\n /**\n * Asserts that value is undefined.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isUndefined(value: T, message?: string): void;\n\n /**\n * Asserts that value is not undefined.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isDefined(value: T, message?: string): void;\n\n /**\n * Asserts that value is a function.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isFunction(value: T, message?: string): void;\n\n /**\n * Asserts that value is not a function.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isNotFunction(value: T, message?: string): void;\n\n /**\n * Asserts that value is an object of type 'Object'\n * (as revealed by Object.prototype.toString).\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n * @remarks The assertion does not match subclassed objects.\n */\n isObject(value: T, message?: string): void;\n\n /**\n * Asserts that value is not an object of type 'Object'\n * (as revealed by Object.prototype.toString).\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isNotObject(value: T, message?: string): void;\n\n /**\n * Asserts that value is an array.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isArray(value: T, message?: string): void;\n\n /**\n * Asserts that value is not an array.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isNotArray(value: T, message?: string): void;\n\n /**\n * Asserts that value is a string.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isString(value: T, message?: string): void;\n\n /**\n * Asserts that value is not a string.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isNotString(value: T, message?: string): void;\n\n /**\n * Asserts that value is a number.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isNumber(value: T, message?: string): void;\n\n /**\n * Asserts that value is not a number.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isNotNumber(value: T, message?: string): void;\n\n /**\n * Asserts that value is a boolean.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isBoolean(value: T, message?: string): void;\n\n /**\n * Asserts that value is not a boolean.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isNotBoolean(value: T, message?: string): void;\n\n /**\n * Asserts that value's type is name, as determined by Object.prototype.toString.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param name Potential expected type name of value.\n * @param message Message to display on error.\n */\n typeOf(value: T, name: string, message?: string): void;\n\n /**\n * Asserts that value's type is not name, as determined by Object.prototype.toString.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param name Potential expected type name of value.\n * @param message Message to display on error.\n */\n notTypeOf(value: T, name: string, message?: string): void;\n\n /**\n * Asserts that value is an instance of constructor.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param constructor Potential expected contructor of value.\n * @param message Message to display on error.\n */\n instanceOf(value: T, constructor: Function, message?: string): void;\n\n /**\n * Asserts that value is not an instance of constructor.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param constructor Potential expected contructor of value.\n * @param message Message to display on error.\n */\n notInstanceOf(value: T, type: Function, message?: string): void;\n\n /**\n * Asserts that haystack includes needle.\n *\n * @param haystack Container string.\n * @param needle Potential substring of haystack.\n * @param message Message to display on error.\n */\n include(haystack: string, needle: string, message?: string): void;\n\n /**\n * Asserts that haystack includes needle.\n *\n * @type T Type of values in haystack.\n * @param haystack Container array, set or map.\n * @param needle Potential value contained in haystack.\n * @param message Message to display on error.\n */\n include(haystack: ReadonlyArray | ReadonlySet | ReadonlyMap, needle: T, message?: string): void;\n\n /**\n * Asserts that haystack includes needle.\n *\n * @type T Type of values in haystack.\n * @param haystack WeakSet container.\n * @param needle Potential value contained in haystack.\n * @param message Message to display on error.\n */\n include(haystack: WeakSet, needle: T, message?: string): void;\n\n /**\n * Asserts that haystack includes needle.\n *\n * @type T Type of haystack.\n * @param haystack Object.\n * @param needle Potential subset of the haystack's properties.\n * @param message Message to display on error.\n */\n include(haystack: T, needle: Partial, message?: string): void;\n\n /**\n * Asserts that haystack does not includes needle.\n *\n * @param haystack Container string.\n * @param needle Potential substring of haystack.\n * @param message Message to display on error.\n */\n notInclude(haystack: string, needle: string, message?: string): void;\n\n /**\n * Asserts that haystack does not includes needle.\n *\n * @type T Type of values in haystack.\n * @param haystack Container array, set or map.\n * @param needle Potential value contained in haystack.\n * @param message Message to display on error.\n */\n notInclude(haystack: ReadonlyArray | ReadonlySet | ReadonlyMap, needle: T, message?: string): void;\n\n /**\n * Asserts that haystack does not includes needle.\n *\n * @type T Type of values in haystack.\n * @param haystack WeakSet container.\n * @param needle Potential value contained in haystack.\n * @param message Message to display on error.\n */\n notInclude(haystack: WeakSet, needle: T, message?: string): void;\n\n /**\n * Asserts that haystack does not includes needle.\n *\n * @type T Type of haystack.\n * @param haystack Object.\n * @param needle Potential subset of the haystack's properties.\n * @param message Message to display on error.\n */\n notInclude(haystack: T, needle: Partial, message?: string): void;\n\n /**\n * Asserts that haystack includes needle. Deep equality is used.\n *\n * @param haystack Container string.\n * @param needle Potential substring of haystack.\n * @param message Message to display on error.\n *\n * @deprecated Does not have any effect on string. Use {@link Assert#include} instead.\n */\n deepInclude(haystack: string, needle: string, message?: string): void;\n\n /**\n * Asserts that haystack includes needle. Deep equality is used.\n *\n * @type T Type of values in haystack.\n * @param haystack Container array, set or map.\n * @param needle Potential value contained in haystack.\n * @param message Message to display on error.\n */\n deepInclude(haystack: ReadonlyArray | ReadonlySet | ReadonlyMap, needle: T, message?: string): void;\n\n /**\n * Asserts that haystack does not includes needle.\n *\n * @type T Type of haystack.\n * @param haystack Object.\n * @param needle Potential subset of the haystack's properties.\n * @param message Message to display on error.\n */\n deepInclude(haystack: T, needle: T extends WeakSet ? never : Partial, message?: string): void;\n\n /**\n * Asserts that haystack does not includes needle. Deep equality is used.\n *\n * @param haystack Container string.\n * @param needle Potential substring of haystack.\n * @param message Message to display on error.\n *\n * @deprecated Does not have any effect on string. Use {@link Assert#notInclude} instead.\n */\n notDeepInclude(haystack: string, needle: string, message?: string): void;\n\n /**\n * Asserts that haystack does not includes needle. Deep equality is used.\n *\n * @type T Type of values in haystack.\n * @param haystack Container array, set or map.\n * @param needle Potential value contained in haystack.\n * @param message Message to display on error.\n */\n notDeepInclude(haystack: ReadonlyArray | ReadonlySet | ReadonlyMap, needle: T, message?: string): void;\n\n /**\n * Asserts that haystack does not includes needle. Deep equality is used.\n *\n * @type T Type of haystack.\n * @param haystack Object.\n * @param needle Potential subset of the haystack's properties.\n * @param message Message to display on error.\n */\n notDeepInclude(haystack: T, needle: T extends WeakSet ? never : Partial, message?: string): void;\n\n /**\n * Asserts that ‘haystack’ includes ‘needle’. Can be used to assert the inclusion of a subset of properties in an object.\n *\n * Enables the use of dot- and bracket-notation for referencing nested properties.\n * ‘[]’ and ‘.’ in property names can be escaped using double backslashes.Asserts that ‘haystack’ includes ‘needle’.\n * Can be used to assert the inclusion of a subset of properties in an object.\n * Enables the use of dot- and bracket-notation for referencing nested properties.\n * ‘[]’ and ‘.’ in property names can be escaped using double backslashes.\n *\n * @param haystack\n * @param needle\n * @param message Message to display on error.\n */\n nestedInclude(haystack: any, needle: any, message?: string): void;\n\n /**\n * Asserts that ‘haystack’ does not include ‘needle’. Can be used to assert the absence of a subset of properties in an object.\n *\n * Enables the use of dot- and bracket-notation for referencing nested properties.\n * ‘[]’ and ‘.’ in property names can be escaped using double backslashes.Asserts that ‘haystack’ includes ‘needle’.\n * Can be used to assert the inclusion of a subset of properties in an object.\n * Enables the use of dot- and bracket-notation for referencing nested properties.\n * ‘[]’ and ‘.’ in property names can be escaped using double backslashes.\n *\n * @param haystack\n * @param needle\n * @param message Message to display on error.\n */\n notNestedInclude(haystack: any, needle: any, message?: string): void;\n\n /**\n * Asserts that ‘haystack’ includes ‘needle’. Can be used to assert the inclusion of a subset of properties in an object while checking for deep equality\n *\n * Enables the use of dot- and bracket-notation for referencing nested properties.\n * ‘[]’ and ‘.’ in property names can be escaped using double backslashes.Asserts that ‘haystack’ includes ‘needle’.\n * Can be used to assert the inclusion of a subset of properties in an object.\n * Enables the use of dot- and bracket-notation for referencing nested properties.\n * ‘[]’ and ‘.’ in property names can be escaped using double backslashes.\n *\n * @param haystack\n * @param needle\n * @param message Message to display on error.\n */\n deepNestedInclude(haystack: any, needle: any, message?: string): void;\n\n /**\n * Asserts that ‘haystack’ does not include ‘needle’. Can be used to assert the absence of a subset of properties in an object while checking for deep equality.\n *\n * Enables the use of dot- and bracket-notation for referencing nested properties.\n * ‘[]’ and ‘.’ in property names can be escaped using double backslashes.Asserts that ‘haystack’ includes ‘needle’.\n * Can be used to assert the inclusion of a subset of properties in an object.\n * Enables the use of dot- and bracket-notation for referencing nested properties.\n * ‘[]’ and ‘.’ in property names can be escaped using double backslashes.\n *\n * @param haystack\n * @param needle\n * @param message Message to display on error.\n */\n notDeepNestedInclude(haystack: any, needle: any, message?: string): void;\n\n /**\n * Asserts that ‘haystack’ includes ‘needle’. Can be used to assert the inclusion of a subset of properties in an object while ignoring inherited properties.\n *\n * @param haystack\n * @param needle\n * @param message Message to display on error.\n */\n ownInclude(haystack: any, needle: any, message?: string): void;\n\n /**\n * Asserts that ‘haystack’ includes ‘needle’. Can be used to assert the absence of a subset of properties in an object while ignoring inherited properties.\n *\n * @param haystack\n * @param needle\n * @param message Message to display on error.\n */\n notOwnInclude(haystack: any, needle: any, message?: string): void;\n\n /**\n * Asserts that ‘haystack’ includes ‘needle’. Can be used to assert the inclusion of a subset of properties in an object while ignoring inherited properties and checking for deep\n *\n * @param haystack\n * @param needle\n * @param message Message to display on error.\n */\n deepOwnInclude(haystack: any, needle: any, message?: string): void;\n\n /**\n * Asserts that ‘haystack’ includes ‘needle’. Can be used to assert the absence of a subset of properties in an object while ignoring inherited properties and checking for deep equality.\n *\n * @param haystack\n * @param needle\n * @param message Message to display on error.\n */\n notDeepOwnInclude(haystack: any, needle: any, message?: string): void;\n\n /**\n * Asserts that value matches the regular expression regexp.\n *\n * @param value Actual value.\n * @param regexp Potential match of value.\n * @param message Message to display on error.\n */\n match(value: string, regexp: RegExp, message?: string): void;\n\n /**\n * Asserts that value does not match the regular expression regexp.\n *\n * @param value Actual value.\n * @param regexp Potential match of value.\n * @param message Message to display on error.\n */\n notMatch(expected: any, regexp: RegExp, message?: string): void;\n\n /**\n * Asserts that object has a property named by property.\n *\n * @type T Type of object.\n * @param object Container object.\n * @param property Potential contained property of object.\n * @param message Message to display on error.\n */\n property(object: T, property: string /* keyof T */, message?: string): void;\n\n /**\n * Asserts that object has a property named by property.\n *\n * @type T Type of object.\n * @param object Container object.\n * @param property Potential contained property of object.\n * @param message Message to display on error.\n */\n notProperty(object: T, property: string /* keyof T */, message?: string): void;\n\n /**\n * Asserts that object has a property named by property, which can be a string\n * using dot- and bracket-notation for deep reference.\n *\n * @type T Type of object.\n * @param object Container object.\n * @param property Potential contained property of object.\n * @param message Message to display on error.\n */\n deepProperty(object: T, property: string, message?: string): void;\n\n /**\n * Asserts that object does not have a property named by property, which can be a\n * string using dot- and bracket-notation for deep reference.\n *\n * @type T Type of object.\n * @param object Container object.\n * @param property Potential contained property of object.\n * @param message Message to display on error.\n */\n notDeepProperty(object: T, property: string, message?: string): void;\n\n /**\n * Asserts that object has a property named by property with value given by value.\n *\n * @type T Type of object.\n * @type V Type of value.\n * @param object Container object.\n * @param property Potential contained property of object.\n * @param value Potential expected property value.\n * @param message Message to display on error.\n */\n propertyVal(object: T, property: string /* keyof T */, value: V, message?: string): void;\n\n /**\n * Asserts that object has a property named by property with value given by value.\n *\n * @type T Type of object.\n * @type V Type of value.\n * @param object Container object.\n * @param property Potential contained property of object.\n * @param value Potential expected property value.\n * @param message Message to display on error.\n */\n propertyNotVal(object: T, property: string /* keyof T */, value: V, message?: string): void;\n\n /**\n * Asserts that object has a property named by property, which can be a string\n * using dot- and bracket-notation for deep reference.\n *\n * @type T Type of object.\n * @type V Type of value.\n * @param object Container object.\n * @param property Potential contained property of object.\n * @param value Potential expected property value.\n * @param message Message to display on error.\n */\n deepPropertyVal(object: T, property: string, value: V, message?: string): void;\n\n /**\n * Asserts that object does not have a property named by property, which can be a\n * string using dot- and bracket-notation for deep reference.\n *\n * @type T Type of object.\n * @type V Type of value.\n * @param object Container object.\n * @param property Potential contained property of object.\n * @param value Potential expected property value.\n * @param message Message to display on error.\n */\n deepPropertyNotVal(object: T, property: string, value: V, message?: string): void;\n\n /**\n * Asserts that object has a length property with the expected value.\n *\n * @type T Type of object.\n * @param object Container object.\n * @param length Potential expected length of object.\n * @param message Message to display on error.\n */\n lengthOf(object: T, length: number, message?: string): void;\n\n /**\n * Asserts that fn will throw an error.\n *\n * @param fn Function that may throw.\n * @param message Message to display on error.\n */\n throw(fn: Function, message?: string): void;\n\n /**\n * Asserts that function will throw an error with message matching regexp.\n *\n * @param fn Function that may throw.\n * @param regExp Potential expected message match.\n * @param message Message to display on error.\n */\n throw(fn: Function, regExp: RegExp): void;\n\n /**\n * Asserts that function will throw an error that is an instance of constructor.\n *\n * @param fn Function that may throw.\n * @param constructor Potential expected error constructor.\n * @param message Message to display on error.\n */\n throw(fn: Function, constructor: Function, message?: string): void;\n\n /**\n * Asserts that function will throw an error that is an instance of constructor\n * and an error with message matching regexp.\n *\n * @param fn Function that may throw.\n * @param constructor Potential expected error constructor.\n * @param message Message to display on error.\n */\n throw(fn: Function, constructor: Function, regExp: RegExp): void;\n\n /**\n * Asserts that fn will throw an error.\n *\n * @param fn Function that may throw.\n * @param message Message to display on error.\n */\n throws(fn: Function, message?: string): void;\n\n /**\n * Asserts that function will throw an error with message matching regexp.\n *\n * @param fn Function that may throw.\n * @param errType Potential expected message match or error constructor.\n * @param message Message to display on error.\n */\n throws(fn: Function, errType: RegExp|Function, message?: string): void;\n\n /**\n * Asserts that function will throw an error that is an instance of constructor\n * and an error with message matching regexp.\n *\n * @param fn Function that may throw.\n * @param constructor Potential expected error constructor.\n * @param message Message to display on error.\n */\n throws(fn: Function, errType: Function, regExp: RegExp): void;\n\n /**\n * Asserts that fn will throw an error.\n *\n * @param fn Function that may throw.\n * @param message Message to display on error.\n */\n Throw(fn: Function, message?: string): void;\n\n /**\n * Asserts that function will throw an error with message matching regexp.\n *\n * @param fn Function that may throw.\n * @param regExp Potential expected message match.\n * @param message Message to display on error.\n */\n Throw(fn: Function, regExp: RegExp): void;\n\n /**\n * Asserts that function will throw an error that is an instance of constructor.\n *\n * @param fn Function that may throw.\n * @param constructor Potential expected error constructor.\n * @param message Message to display on error.\n */\n Throw(fn: Function, errType: Function, message?: string): void;\n\n /**\n * Asserts that function will throw an error that is an instance of constructor\n * and an error with message matching regexp.\n *\n * @param fn Function that may throw.\n * @param constructor Potential expected error constructor.\n * @param message Message to display on error.\n */\n Throw(fn: Function, errType: Function, regExp: RegExp): void;\n\n /**\n * Asserts that fn will not throw an error.\n *\n * @param fn Function that may throw.\n * @param message Message to display on error.\n */\n doesNotThrow(fn: Function, message?: string): void;\n\n /**\n * Asserts that function will throw an error with message matching regexp.\n *\n * @param fn Function that may throw.\n * @param regExp Potential expected message match.\n * @param message Message to display on error.\n */\n doesNotThrow(fn: Function, regExp: RegExp): void;\n\n /**\n * Asserts that function will throw an error that is an instance of constructor.\n *\n * @param fn Function that may throw.\n * @param constructor Potential expected error constructor.\n * @param message Message to display on error.\n */\n doesNotThrow(fn: Function, errType: Function, message?: string): void;\n\n /**\n * Asserts that function will throw an error that is an instance of constructor\n * and an error with message matching regexp.\n *\n * @param fn Function that may throw.\n * @param constructor Potential expected error constructor.\n * @param message Message to display on error.\n */\n doesNotThrow(fn: Function, errType: Function, regExp: RegExp): void;\n\n /**\n * Compares two values using operator.\n *\n * @param val1 Left value during comparison.\n * @param operator Comparison operator.\n * @param val2 Right value during comparison.\n * @param message Message to display on error.\n */\n operator(val1: OperatorComparable, operator: Operator, val2: OperatorComparable, message?: string): void;\n\n /**\n * Asserts that the target is equal to expected, to within a +/- delta range.\n *\n * @param actual Actual value\n * @param expected Potential expected value.\n * @param delta Maximum differenced between values.\n * @param message Message to display on error.\n */\n closeTo(actual: number, expected: number, delta: number, message?: string): void;\n\n /**\n * Asserts that the target is equal to expected, to within a +/- delta range.\n *\n * @param actual Actual value\n * @param expected Potential expected value.\n * @param delta Maximum differenced between values.\n * @param message Message to display on error.\n */\n approximately(act: number, exp: number, delta: number, message?: string): void;\n\n /**\n * Asserts that set1 and set2 have the same members. Order is not take into account.\n *\n * @type T Type of set values.\n * @param set1 Actual set of values.\n * @param set2 Potential expected set of values.\n * @param message Message to display on error.\n */\n sameMembers(set1: T[], set2: T[], message?: string): void;\n\n /**\n * Asserts that set1 and set2 have the same members using deep equality checking.\n * Order is not take into account.\n *\n * @type T Type of set values.\n * @param set1 Actual set of values.\n * @param set2 Potential expected set of values.\n * @param message Message to display on error.\n */\n sameDeepMembers(set1: T[], set2: T[], message?: string): void;\n\n /**\n * Asserts that set1 and set2 have the same members in the same order.\n * Uses a strict equality check (===).\n *\n * @type T Type of set values.\n * @param set1 Actual set of values.\n * @param set2 Potential expected set of values.\n * @param message Message to display on error.\n */\n sameOrderedMembers(set1: T[], set2: T[], message?: string): void;\n\n /**\n * Asserts that set1 and set2 don’t have the same members in the same order.\n * Uses a strict equality check (===).\n *\n * @type T Type of set values.\n * @param set1 Actual set of values.\n * @param set2 Potential expected set of values.\n * @param message Message to display on error.\n */\n notSameOrderedMembers(set1: T[], set2: T[], message?: string): void;\n\n /**\n * Asserts that set1 and set2 have the same members in the same order.\n * Uses a deep equality check.\n *\n * @type T Type of set values.\n * @param set1 Actual set of values.\n * @param set2 Potential expected set of values.\n * @param message Message to display on error.\n */\n sameDeepOrderedMembers(set1: T[], set2: T[], message?: string): void;\n\n /**\n * Asserts that set1 and set2 don’t have the same members in the same order.\n * Uses a deep equality check.\n *\n * @type T Type of set values.\n * @param set1 Actual set of values.\n * @param set2 Potential expected set of values.\n * @param message Message to display on error.\n */\n notSameDeepOrderedMembers(set1: T[], set2: T[], message?: string): void;\n\n /**\n * Asserts that subset is included in superset in the same order beginning with the first element in superset.\n * Uses a strict equality check (===).\n *\n * @type T Type of set values.\n * @param superset Actual set of values.\n * @param subset Potential contained set of values.\n * @param message Message to display on error.\n */\n includeOrderedMembers(superset: T[], subset: T[], message?: string): void;\n\n /**\n * Asserts that subset isn’t included in superset in the same order beginning with the first element in superset.\n * Uses a strict equality check (===).\n *\n * @type T Type of set values.\n * @param superset Actual set of values.\n * @param subset Potential contained set of values.\n * @param message Message to display on error.\n */\n notIncludeOrderedMembers(superset: T[], subset: T[], message?: string): void;\n\n /**\n * Asserts that subset is included in superset in the same order beginning with the first element in superset.\n * Uses a deep equality check.\n *\n * @type T Type of set values.\n * @param superset Actual set of values.\n * @param subset Potential contained set of values.\n * @param message Message to display on error.\n */\n includeDeepOrderedMembers(superset: T[], subset: T[], message?: string): void;\n\n /**\n * Asserts that subset isn’t included in superset in the same order beginning with the first element in superset.\n * Uses a deep equality check.\n *\n * @type T Type of set values.\n * @param superset Actual set of values.\n * @param subset Potential contained set of values.\n * @param message Message to display on error.\n */\n notIncludeDeepOrderedMembers(superset: T[], subset: T[], message?: string): void;\n\n /**\n * Asserts that subset is included in superset. Order is not take into account.\n *\n * @type T Type of set values.\n * @param superset Actual set of values.\n * @param subset Potential contained set of values.\n * @param message Message to display on error.\n */\n includeMembers(superset: T[], subset: T[], message?: string): void;\n\n /**\n * Asserts that subset is included in superset using deep equality checking.\n * Order is not take into account.\n *\n * @type T Type of set values.\n * @param superset Actual set of values.\n * @param subset Potential contained set of values.\n * @param message Message to display on error.\n */\n includeDeepMembers(superset: T[], subset: T[], message?: string): void;\n\n /**\n * Asserts that non-object, non-array value inList appears in the flat array list.\n *\n * @type T Type of list values.\n * @param inList Value expected to be in the list.\n * @param list List of values.\n * @param message Message to display on error.\n */\n oneOf(inList: T, list: T[], message?: string): void;\n\n /**\n * Asserts that a function changes the value of a property.\n *\n * @type T Type of object.\n * @param modifier Function to run.\n * @param object Container object.\n * @param property Property of object expected to be modified.\n * @param message Message to display on error.\n */\n changes(modifier: Function, object: T, property: string /* keyof T */, message?: string): void;\n\n /**\n * Asserts that a function does not change the value of a property.\n *\n * @type T Type of object.\n * @param modifier Function to run.\n * @param object Container object.\n * @param property Property of object expected not to be modified.\n * @param message Message to display on error.\n */\n doesNotChange(modifier: Function, object: T, property: string /* keyof T */, message?: string): void;\n\n /**\n * Asserts that a function increases an object property.\n *\n * @type T Type of object.\n * @param modifier Function to run.\n * @param object Container object.\n * @param property Property of object expected to be increased.\n * @param message Message to display on error.\n */\n increases(modifier: Function, object: T, property: string /* keyof T */, message?: string): void;\n\n /**\n * Asserts that a function does not increase an object property.\n *\n * @type T Type of object.\n * @param modifier Function to run.\n * @param object Container object.\n * @param property Property of object expected not to be increased.\n * @param message Message to display on error.\n */\n doesNotIncrease(modifier: Function, object: T, property: string /* keyof T */, message?: string): void;\n\n /**\n * Asserts that a function decreases an object property.\n *\n * @type T Type of object.\n * @param modifier Function to run.\n * @param object Container object.\n * @param property Property of object expected to be decreased.\n * @param message Message to display on error.\n */\n decreases(modifier: Function, object: T, property: string /* keyof T */, message?: string): void;\n\n /**\n * Asserts that a function does not decrease an object property.\n *\n * @type T Type of object.\n * @param modifier Function to run.\n * @param object Container object.\n * @param property Property of object expected not to be decreased.\n * @param message Message to display on error.\n */\n doesNotDecrease(modifier: Function, object: T, property: string /* keyof T */, message?: string): void;\n\n /**\n * Asserts if value is not a false value, and throws if it is a true value.\n *\n * @type T Type of object.\n * @param object Actual value.\n * @param message Message to display on error.\n * @remarks This is added to allow for chai to be a drop-in replacement for\n * Node’s assert class.\n */\n ifError(object: T, message?: string): void;\n\n /**\n * Asserts that object is extensible (can have new properties added to it).\n *\n * @type T Type of object\n * @param object Actual value.\n * @param message Message to display on error.\n */\n isExtensible(object: T, message?: string): void;\n\n /**\n * Asserts that object is extensible (can have new properties added to it).\n *\n * @type T Type of object\n * @param object Actual value.\n * @param message Message to display on error.\n */\n extensible(object: T, message?: string): void;\n\n /**\n * Asserts that object is not extensible.\n *\n * @type T Type of object\n * @param object Actual value.\n * @param message Message to display on error.\n */\n isNotExtensible(object: T, message?: string): void;\n\n /**\n * Asserts that object is not extensible.\n *\n * @type T Type of object\n * @param object Actual value.\n * @param message Message to display on error.\n */\n notExtensible(object: T, message?: string): void;\n\n /**\n * Asserts that object is sealed (can have new properties added to it\n * and its existing properties cannot be removed).\n *\n * @type T Type of object\n * @param object Actual value.\n * @param message Message to display on error.\n */\n isSealed(object: T, message?: string): void;\n\n /**\n * Asserts that object is sealed (can have new properties added to it\n * and its existing properties cannot be removed).\n *\n * @type T Type of object\n * @param object Actual value.\n * @param message Message to display on error.\n */\n sealed(object: T, message?: string): void;\n\n /**\n * Asserts that object is not sealed.\n *\n * @type T Type of object\n * @param object Actual value.\n * @param message Message to display on error.\n */\n isNotSealed(object: T, message?: string): void;\n\n /**\n * Asserts that object is not sealed.\n *\n * @type T Type of object\n * @param object Actual value.\n * @param message Message to display on error.\n */\n notSealed(object: T, message?: string): void;\n\n /**\n * Asserts that object is frozen (cannot have new properties added to it\n * and its existing properties cannot be removed).\n *\n * @type T Type of object\n * @param object Actual value.\n * @param message Message to display on error.\n */\n isFrozen(object: T, message?: string): void;\n\n /**\n * Asserts that object is frozen (cannot have new properties added to it\n * and its existing properties cannot be removed).\n *\n * @type T Type of object\n * @param object Actual value.\n * @param message Message to display on error.\n */\n frozen(object: T, message?: string): void;\n\n /**\n * Asserts that object is not frozen (cannot have new properties added to it\n * and its existing properties cannot be removed).\n *\n * @type T Type of object\n * @param object Actual value.\n * @param message Message to display on error.\n */\n isNotFrozen(object: T, message?: string): void;\n\n /**\n * Asserts that object is not frozen (cannot have new properties added to it\n * and its existing properties cannot be removed).\n *\n * @type T Type of object\n * @param object Actual value.\n * @param message Message to display on error.\n */\n notFrozen(object: T, message?: string): void;\n\n /**\n * Asserts that the target does not contain any values. For arrays and\n * strings, it checks the length property. For Map and Set instances, it\n * checks the size property. For non-function objects, it gets the count\n * of own enumerable string keys.\n *\n * @type T Type of object\n * @param object Actual value.\n * @param message Message to display on error.\n */\n isEmpty(object: T, message?: string): void;\n\n /**\n * Asserts that the target contains values. For arrays and strings, it checks\n * the length property. For Map and Set instances, it checks the size property.\n * For non-function objects, it gets the count of own enumerable string keys.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param message Message to display on error.\n */\n isNotEmpty(object: T, message?: string): void;\n\n /**\n * Asserts that `object` has at least one of the `keys` provided.\n * You can also provide a single object instead of a `keys` array and its keys\n * will be used as the expected set of keys.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param keys Keys to check\n * @param message Message to display on error.\n */\n hasAnyKeys(object: T, keys: Array | { [key: string]: any }, message?: string): void;\n\n /**\n * Asserts that `object` has all and only all of the `keys` provided.\n * You can also provide a single object instead of a `keys` array and its keys\n * will be used as the expected set of keys.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param keys Keys to check\n * @param message Message to display on error.\n */\n hasAllKeys(object: T, keys: Array | { [key: string]: any }, message?: string): void;\n\n /**\n * Asserts that `object` has all of the `keys` provided but may have more keys not listed.\n * You can also provide a single object instead of a `keys` array and its keys\n * will be used as the expected set of keys.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param keys Keys to check\n * @param message Message to display on error.\n */\n containsAllKeys(object: T, keys: Array | { [key: string]: any }, message?: string): void;\n\n /**\n * Asserts that `object` has none of the `keys` provided.\n * You can also provide a single object instead of a `keys` array and its keys\n * will be used as the expected set of keys.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param keys Keys to check\n * @param message Message to display on error.\n */\n doesNotHaveAnyKeys(object: T, keys: Array | { [key: string]: any }, message?: string): void;\n\n /**\n * Asserts that `object` does not have at least one of the `keys` provided.\n * You can also provide a single object instead of a `keys` array and its keys\n * will be used as the expected set of keys.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param keys Keys to check\n * @param message Message to display on error.\n */\n doesNotHaveAllKeys(object: T, keys: Array | { [key: string]: any }, message?: string): void;\n\n /**\n * Asserts that `object` has at least one of the `keys` provided.\n * Since Sets and Maps can have objects as keys you can use this assertion to perform\n * a deep comparison.\n * You can also provide a single object instead of a `keys` array and its keys\n * will be used as the expected set of keys.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param keys Keys to check\n * @param message Message to display on error.\n */\n hasAnyDeepKeys(object: T, keys: Array | { [key: string]: any }, message?: string): void;\n\n /**\n * Asserts that `object` has all and only all of the `keys` provided.\n * Since Sets and Maps can have objects as keys you can use this assertion to perform\n * a deep comparison.\n * You can also provide a single object instead of a `keys` array and its keys\n * will be used as the expected set of keys.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param keys Keys to check\n * @param message Message to display on error.\n */\n hasAllDeepKeys(object: T, keys: Array | { [key: string]: any }, message?: string): void;\n\n /**\n * Asserts that `object` contains all of the `keys` provided.\n * Since Sets and Maps can have objects as keys you can use this assertion to perform\n * a deep comparison.\n * You can also provide a single object instead of a `keys` array and its keys\n * will be used as the expected set of keys.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param keys Keys to check\n * @param message Message to display on error.\n */\n containsAllDeepKeys(object: T, keys: Array | { [key: string]: any }, message?: string): void;\n\n /**\n * Asserts that `object` contains all of the `keys` provided.\n * Since Sets and Maps can have objects as keys you can use this assertion to perform\n * a deep comparison.\n * You can also provide a single object instead of a `keys` array and its keys\n * will be used as the expected set of keys.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param keys Keys to check\n * @param message Message to display on error.\n */\n doesNotHaveAnyDeepKeys(object: T, keys: Array | { [key: string]: any }, message?: string): void;\n\n /**\n * Asserts that `object` contains all of the `keys` provided.\n * Since Sets and Maps can have objects as keys you can use this assertion to perform\n * a deep comparison.\n * You can also provide a single object instead of a `keys` array and its keys\n * will be used as the expected set of keys.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param keys Keys to check\n * @param message Message to display on error.\n */\n doesNotHaveAllDeepKeys(object: T, keys: Array | { [key: string]: any }, message?: string): void;\n\n /**\n * Asserts that object has a direct or inherited property named by property,\n * which can be a string using dot- and bracket-notation for nested reference.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param property Property to test.\n * @param message Message to display on error.\n */\n nestedProperty(object: T, property: string, message?: string): void;\n\n /**\n * Asserts that object does not have a property named by property,\n * which can be a string using dot- and bracket-notation for nested reference.\n * The property cannot exist on the object nor anywhere in its prototype chain.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param property Property to test.\n * @param message Message to display on error.\n */\n notNestedProperty(object: T, property: string, message?: string): void;\n\n /**\n * Asserts that object has a property named by property with value given by value.\n * property can use dot- and bracket-notation for nested reference. Uses a strict equality check (===).\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param property Property to test.\n * @param value Value to test.\n * @param message Message to display on error.\n */\n nestedPropertyVal(object: T, property: string, value: any, message?: string): void;\n\n /**\n * Asserts that object does not have a property named by property with value given by value.\n * property can use dot- and bracket-notation for nested reference. Uses a strict equality check (===).\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param property Property to test.\n * @param value Value to test.\n * @param message Message to display on error.\n */\n notNestedPropertyVal(object: T, property: string, value: any, message?: string): void;\n\n /**\n * Asserts that object has a property named by property with a value given by value.\n * property can use dot- and bracket-notation for nested reference. Uses a deep equality check.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param property Property to test.\n * @param value Value to test.\n * @param message Message to display on error.\n */\n deepNestedPropertyVal(object: T, property: string, value: any, message?: string): void;\n\n /**\n * Asserts that object does not have a property named by property with value given by value.\n * property can use dot- and bracket-notation for nested reference. Uses a deep equality check.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param property Property to test.\n * @param value Value to test.\n * @param message Message to display on error.\n */\n notDeepNestedPropertyVal(object: T, property: string, value: any, message?: string): void;\n }\n\n export interface Config {\n /**\n * Default: false\n */\n includeStack: boolean;\n\n /**\n * Default: true\n */\n showDiff: boolean;\n\n /**\n * Default: 40\n */\n truncateThreshold: number;\n\n /**\n * Default: true\n */\n useProxy: boolean;\n\n /**\n * Default: ['then', 'catch', 'inspect', 'toJSON']\n */\n proxyExcludedKeys: string[];\n }\n\n export class AssertionError {\n constructor(message: string, _props?: any, ssf?: Function);\n name: string;\n message: string;\n showDiff: boolean;\n stack: string;\n }\n}\n\ndeclare const chai: Chai.ChaiStatic;\n\ndeclare module \"chai\" {\n export = chai;\n}\n\ninterface Object {\n should: Chai.Assertion;\n}\n\n// Type definitions for chai-as-promised 7.1.0\n// Project: https://github.com/domenic/chai-as-promised/\n// Definitions by: jt000 ,\n// Yuki Kokubun ,\n// Leonard Thieu ,\n// Mike Lazer-Walker ,\n// Matt Bishop \n// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped\n// TypeScript Version: 3.0\n\n/// \n\ndeclare module 'chai-as-promised' {\n interface ChaiAsPromised extends Chai.ChaiPlugin {\n transferPromiseness(assertion: Chai.PromisedAssertion, promise: PromiseLike): void;\n transformAsserterArgs(values: any[]): any;\n }\n\n const chaiAsPromised: ChaiAsPromised;\n export = chaiAsPromised;\n}\n\ndeclare namespace Chai {\n\n // For BDD API\n interface Assertion extends LanguageChains, NumericComparison, TypeComparison {\n eventually: PromisedAssertion;\n become(expected: any): PromisedAssertion;\n fulfilled: PromisedAssertion;\n rejected: PromisedAssertion;\n rejectedWith: PromisedThrow;\n notify(fn: Function): PromisedAssertion;\n }\n\n // Eventually does not have .then(), but PromisedAssertion have.\n interface Eventually extends PromisedLanguageChains, PromisedNumericComparison, PromisedTypeComparison {\n // From chai-as-promised\n become(expected: any): PromisedAssertion;\n fulfilled: PromisedAssertion;\n rejected: PromisedAssertion;\n rejectedWith: PromisedThrow;\n notify(fn: Function): PromisedAssertion;\n\n // From chai\n not: PromisedAssertion;\n deep: PromisedDeep;\n ordered: PromisedOrdered;\n nested: PromisedNested;\n any: PromisedKeyFilter;\n all: PromisedKeyFilter;\n a: PromisedTypeComparison;\n an: PromisedTypeComparison;\n include: PromisedInclude;\n contain: PromisedInclude;\n ok: PromisedAssertion;\n true: PromisedAssertion;\n false: PromisedAssertion;\n null: PromisedAssertion;\n undefined: PromisedAssertion;\n NaN: PromisedAssertion;\n exist: PromisedAssertion;\n empty: PromisedAssertion;\n arguments: PromisedAssertion;\n Arguments: PromisedAssertion;\n equal: PromisedEqual;\n equals: PromisedEqual;\n eq: PromisedEqual;\n eql: PromisedEqual;\n eqls: PromisedEqual;\n property: PromisedProperty;\n ownProperty: PromisedOwnProperty;\n haveOwnProperty: PromisedOwnProperty;\n ownPropertyDescriptor: PromisedOwnPropertyDescriptor;\n haveOwnPropertyDescriptor: PromisedOwnPropertyDescriptor;\n length: PromisedLength;\n lengthOf: PromisedLength;\n match: PromisedMatch;\n matches: PromisedMatch;\n string(string: string, message?: string): PromisedAssertion;\n keys: PromisedKeys;\n key(string: string): PromisedAssertion;\n throw: PromisedThrow;\n throws: PromisedThrow;\n Throw: PromisedThrow;\n respondTo: PromisedRespondTo;\n respondsTo: PromisedRespondTo;\n itself: PromisedAssertion;\n satisfy: PromisedSatisfy;\n satisfies: PromisedSatisfy;\n closeTo: PromisedCloseTo;\n approximately: PromisedCloseTo;\n members: PromisedMembers;\n increase: PromisedPropertyChange;\n increases: PromisedPropertyChange;\n decrease: PromisedPropertyChange;\n decreases: PromisedPropertyChange;\n change: PromisedPropertyChange;\n changes: PromisedPropertyChange;\n extensible: PromisedAssertion;\n sealed: PromisedAssertion;\n frozen: PromisedAssertion;\n oneOf(list: any[], message?: string): PromisedAssertion;\n }\n\n interface PromisedAssertion extends Eventually, PromiseLike {\n }\n\n interface PromisedLanguageChains {\n eventually: Eventually;\n\n // From chai\n to: PromisedAssertion;\n be: PromisedAssertion;\n been: PromisedAssertion;\n is: PromisedAssertion;\n that: PromisedAssertion;\n which: PromisedAssertion;\n and: PromisedAssertion;\n has: PromisedAssertion;\n have: PromisedAssertion;\n with: PromisedAssertion;\n at: PromisedAssertion;\n of: PromisedAssertion;\n same: PromisedAssertion;\n but: PromisedAssertion;\n does: PromisedAssertion;\n }\n\n interface PromisedNumericComparison {\n above: PromisedNumberComparer;\n gt: PromisedNumberComparer;\n greaterThan: PromisedNumberComparer;\n least: PromisedNumberComparer;\n gte: PromisedNumberComparer;\n below: PromisedNumberComparer;\n lt: PromisedNumberComparer;\n lessThan: PromisedNumberComparer;\n most: PromisedNumberComparer;\n lte: PromisedNumberComparer;\n within(start: number, finish: number, message?: string): PromisedAssertion;\n }\n\n interface PromisedNumberComparer {\n (value: number, message?: string): PromisedAssertion;\n }\n\n interface PromisedTypeComparison {\n (type: string, message?: string): PromisedAssertion;\n instanceof: PromisedInstanceOf;\n instanceOf: PromisedInstanceOf;\n }\n\n interface PromisedInstanceOf {\n (constructor: Object, message?: string): PromisedAssertion;\n }\n\n interface PromisedCloseTo {\n (expected: number, delta: number, message?: string): PromisedAssertion;\n }\n\n interface PromisedNested {\n include: PromisedInclude;\n property: PromisedProperty;\n members: PromisedMembers;\n }\n\n interface PromisedDeep {\n equal: PromisedEqual;\n equals: PromisedEqual;\n eq: PromisedEqual;\n include: PromisedInclude;\n property: PromisedProperty;\n members: PromisedMembers;\n ordered: PromisedOrdered\n }\n\n interface PromisedOrdered {\n members: PromisedMembers;\n }\n\n interface PromisedKeyFilter {\n keys: PromisedKeys;\n }\n\n interface PromisedEqual {\n (value: any, message?: string): PromisedAssertion;\n }\n\n interface PromisedProperty {\n (name: string, value?: any, message?: string): PromisedAssertion;\n }\n\n interface PromisedOwnProperty {\n (name: string, message?: string): PromisedAssertion;\n }\n\n interface PromisedOwnPropertyDescriptor {\n (name: string, descriptor: PropertyDescriptor, message?: string): PromisedAssertion;\n (name: string, message?: string): PromisedAssertion;\n }\n\n interface PromisedLength extends PromisedLanguageChains, PromisedNumericComparison {\n (length: number, message?: string): PromisedAssertion;\n }\n\n interface PromisedInclude {\n (value: Object, message?: string): PromisedAssertion;\n (value: string, message?: string): PromisedAssertion;\n (value: number, message?: string): PromisedAssertion;\n keys: PromisedKeys;\n deep: PromisedDeep;\n ordered: PromisedOrdered;\n members: PromisedMembers;\n any: PromisedKeyFilter;\n all: PromisedKeyFilter;\n }\n\n interface PromisedMatch {\n (regexp: RegExp | string, message?: string): PromisedAssertion;\n }\n\n interface PromisedKeys {\n (...keys: string[]): PromisedAssertion;\n (keys: any[]): PromisedAssertion;\n (keys: Object): PromisedAssertion;\n }\n\n interface PromisedThrow {\n (): PromisedAssertion;\n (expected: string | RegExp, message?: string): PromisedAssertion;\n (constructor: Error | Function, expected?: string | RegExp, message?: string): PromisedAssertion;\n }\n\n interface PromisedRespondTo {\n (method: string, message?: string): PromisedAssertion;\n }\n\n interface PromisedSatisfy {\n (matcher: Function, message?: string): PromisedAssertion;\n }\n\n interface PromisedMembers {\n (set: any[], message?: string): PromisedAssertion;\n }\n\n interface PromisedPropertyChange {\n (object: Object, property: string, message?: string): PromisedAssertion;\n }\n\n // For Assert API\n interface Assert {\n eventually: PromisedAssert;\n isFulfilled(promise: PromiseLike, message?: string): PromiseLike;\n becomes(promise: PromiseLike, expected: any, message?: string): PromiseLike;\n doesNotBecome(promise: PromiseLike, expected: any, message?: string): PromiseLike;\n isRejected(promise: PromiseLike, message?: string): PromiseLike;\n isRejected(promise: PromiseLike, expected: any, message?: string): PromiseLike;\n isRejected(promise: PromiseLike, match: RegExp, message?: string): PromiseLike;\n notify(fn: Function): PromiseLike;\n }\n\n export interface PromisedAssert {\n fail(actual?: any, expected?: any, msg?: string, operator?: string): PromiseLike;\n\n isOk(val: any, msg?: string): PromiseLike;\n ok(val: any, msg?: string): PromiseLike;\n isNotOk(val: any, msg?: string): PromiseLike;\n notOk(val: any, msg?: string): PromiseLike;\n\n equal(act: any, exp: any, msg?: string): PromiseLike;\n notEqual(act: any, exp: any, msg?: string): PromiseLike;\n\n strictEqual(act: any, exp: any, msg?: string): PromiseLike;\n notStrictEqual(act: any, exp: any, msg?: string): PromiseLike;\n\n deepEqual(act: any, exp: any, msg?: string): PromiseLike;\n notDeepEqual(act: any, exp: any, msg?: string): PromiseLike;\n\n isAbove(val: number, above: number, msg?: string): PromiseLike;\n isAtLeast(val: number, atLeast: number, msg?: string): PromiseLike;\n isAtBelow(val: number, below: number, msg?: string): PromiseLike;\n isAtMost(val: number, atMost: number, msg?: string): PromiseLike;\n\n isTrue(val: any, msg?: string): PromiseLike;\n isFalse(val: any, msg?: string): PromiseLike;\n\n isNotTrue(val: any, msg?: string): PromiseLike;\n isNotFalse(val: any, msg?: string): PromiseLike;\n\n isNull(val: any, msg?: string): PromiseLike;\n isNotNull(val: any, msg?: string): PromiseLike;\n\n isNaN(val: any, msg?: string): PromiseLike;\n isNotNaN(val: any, msg?: string): PromiseLike;\n\n exists(val: any, msg?: string): PromiseLike;\n notExists(val: any, msg?: string): PromiseLike;\n\n isUndefined(val: any, msg?: string): PromiseLike;\n isDefined(val: any, msg?: string): PromiseLike;\n\n isFunction(val: any, msg?: string): PromiseLike;\n isNotFunction(val: any, msg?: string): PromiseLike;\n\n isObject(val: any, msg?: string): PromiseLike;\n isNotObject(val: any, msg?: string): PromiseLike;\n\n isArray(val: any, msg?: string): PromiseLike;\n isNotArray(val: any, msg?: string): PromiseLike;\n\n isString(val: any, msg?: string): PromiseLike;\n isNotString(val: any, msg?: string): PromiseLike;\n\n isNumber(val: any, msg?: string): PromiseLike;\n isNotNumber(val: any, msg?: string): PromiseLike;\n\n isBoolean(val: any, msg?: string): PromiseLike;\n isNotBoolean(val: any, msg?: string): PromiseLike;\n\n typeOf(val: any, type: string, msg?: string): PromiseLike;\n notTypeOf(val: any, type: string, msg?: string): PromiseLike;\n\n instanceOf(val: any, type: Function, msg?: string): PromiseLike;\n notInstanceOf(val: any, type: Function, msg?: string): PromiseLike;\n\n include(exp: string, inc: any, msg?: string): PromiseLike;\n include(exp: any[], inc: any, msg?: string): PromiseLike;\n\n notInclude(exp: string, inc: any, msg?: string): PromiseLike;\n notInclude(exp: any[], inc: any, msg?: string): PromiseLike;\n\n match(exp: any, re: RegExp, msg?: string): PromiseLike;\n notMatch(exp: any, re: RegExp, msg?: string): PromiseLike;\n\n property(obj: Object, prop: string, msg?: string): PromiseLike;\n notProperty(obj: Object, prop: string, msg?: string): PromiseLike;\n deepProperty(obj: Object, prop: string, msg?: string): PromiseLike;\n notDeepProperty(obj: Object, prop: string, msg?: string): PromiseLike;\n\n propertyVal(obj: Object, prop: string, val: any, msg?: string): PromiseLike;\n propertyNotVal(obj: Object, prop: string, val: any, msg?: string): PromiseLike;\n\n deepPropertyVal(obj: Object, prop: string, val: any, msg?: string): PromiseLike;\n deepPropertyNotVal(obj: Object, prop: string, val: any, msg?: string): PromiseLike;\n\n lengthOf(exp: any, len: number, msg?: string): PromiseLike;\n //alias frenzy\n throw(fn: Function, msg?: string): PromiseLike;\n throw(fn: Function, regExp: RegExp): PromiseLike;\n throw(fn: Function, errType: Function, msg?: string): PromiseLike;\n throw(fn: Function, errType: Function, regExp: RegExp): PromiseLike;\n\n throws(fn: Function, msg?: string): PromiseLike;\n throws(fn: Function, regExp: RegExp): PromiseLike;\n throws(fn: Function, errType: Function, msg?: string): PromiseLike;\n throws(fn: Function, errType: Function, regExp: RegExp): PromiseLike;\n\n Throw(fn: Function, msg?: string): PromiseLike;\n Throw(fn: Function, regExp: RegExp): PromiseLike;\n Throw(fn: Function, errType: Function, msg?: string): PromiseLike;\n Throw(fn: Function, errType: Function, regExp: RegExp): PromiseLike;\n\n doesNotThrow(fn: Function, msg?: string): PromiseLike;\n doesNotThrow(fn: Function, regExp: RegExp): PromiseLike;\n doesNotThrow(fn: Function, errType: Function, msg?: string): PromiseLike;\n doesNotThrow(fn: Function, errType: Function, regExp: RegExp): PromiseLike;\n\n operator(val: any, operator: string, val2: any, msg?: string): PromiseLike;\n closeTo(act: number, exp: number, delta: number, msg?: string): PromiseLike;\n approximately(act: number, exp: number, delta: number, msg?: string): PromiseLike;\n\n sameMembers(set1: any[], set2: any[], msg?: string): PromiseLike;\n sameDeepMembers(set1: any[], set2: any[], msg?: string): PromiseLike;\n sameOrderedMembers(set1: any[], set2: any[], msg?: string): PromiseLike;\n notSameOrderedMembers(set1: any[], set2: any[], msg?: string): PromiseLike;\n sameDeepOrderedMembers(set1: any[], set2: any[], msg?: string): PromiseLike;\n notSameDeepOrderedMembers(set1: any[], set2: any[], msg?: string): PromiseLike;\n includeOrderedMembers(set1: any[], set2: any[], msg?: string): PromiseLike;\n notIncludeOrderedMembers(set1: any[], set2: any[], msg?: string): PromiseLike;\n includeDeepOrderedMembers(set1: any[], set2: any[], msg?: string): PromiseLike;\n notIncludeDeepOrderedMembers(set1: any[], set2: any[], msg?: string): PromiseLike;\n includeMembers(set1: any[], set2: any[], msg?: string): PromiseLike;\n includeDeepMembers(set1: any[], set2: any[], msg?: string): PromiseLike;\n\n oneOf(val: any, list: any[], msg?: string): PromiseLike;\n\n changes(modifier: Function, obj: Object, property: string, msg?: string): PromiseLike;\n doesNotChange(modifier: Function, obj: Object, property: string, msg?: string): PromiseLike;\n increases(modifier: Function, obj: Object, property: string, msg?: string): PromiseLike;\n doesNotIncrease(modifier: Function, obj: Object, property: string, msg?: string): PromiseLike;\n decreases(modifier: Function, obj: Object, property: string, msg?: string): PromiseLike;\n doesNotDecrease(modifier: Function, obj: Object, property: string, msg?: string): PromiseLike;\n\n ifError(val: any, msg?: string): PromiseLike;\n\n isExtensible(obj: Object, msg?: string): PromiseLike;\n isNotExtensible(obj: Object, msg?: string): PromiseLike;\n\n isSealed(obj: Object, msg?: string): PromiseLike;\n sealed(obj: Object, msg?: string): PromiseLike;\n isNotSealed(obj: Object, msg?: string): PromiseLike;\n notSealed(obj: Object, msg?: string): PromiseLike;\n\n isFrozen(obj: Object, msg?: string): PromiseLike;\n frozen(obj: Object, msg?: string): PromiseLike;\n isNotFrozen(obj: Object, msg?: string): PromiseLike;\n notFrozen(obj: Object, msg?: string): PromiseLike;\n\n isEmpty(val: any, msg?: string): PromiseLike;\n isNotEmpty(val: any, msg?: string): PromiseLike;\n }\n}\n\n// Type definitions for WavesKeeper\n// Project: WavesKeeper\n\n/*~ This template shows how to write a global plugin. */\n\ninterface Window {\n WavesKeeper: WavesKeeper.TWavesKeeperApi;\n}\n\ndeclare var WavesKeeper: WavesKeeper.TWavesKeeperApi;\n\ndeclare namespace WavesKeeper {\n\n type TWavesKeeperApi = {\n /**\n * This is a method for obtaining a signature of authorization data while verifying Waves' user.\n * @param data\n */\n auth(data: IAuthData): Promise;\n\n /**\n * If a website is trusted, Waves Keeper public data are returned.\n */\n publicState(): Promise;\n\n /**\n * Waves Keeper's method for cancelling an order to the matcher.\n * It works identically to signCancelOrder, but also tries to send data to the matcher.\n * @param data\n */\n signAndPublishCancelOrder(data: TSignCancelOrderData): Promise;\n\n /**\n * Waves Keeper's method for creating an order to the matcher is identical to signOrder\n * but it also tries to send data to the matcher.\n * @param data\n */\n signAndPublishOrder(data: TSignOrderData): Promise;\n\n /**\n * This is similar to \"signTransaction\", but it also broadcasts a transaction to the blockchain.\n * @param data\n */\n signAndPublishTransaction(data: TSignTransactionData): Promise;\n\n /**\n * Waves Keeper's method for signing cancellation of an order to the matcher.\n * @param data\n */\n signCancelOrder(data: TSignCancelOrderData): Promise;\n\n /**\n * Waves Keeper's method for signing an order to the matcher.\n * @param data\n */\n signOrder(data: TSignOrderData): Promise;\n\n /**\n * A method for signing transactions in Waves' network.\n * @param data\n */\n signTransaction(data: TSignTransactionData): Promise;\n\n /**\n * Waves Keeper's method for signing typified data, for signing requests on various services.\n * @param data\n */\n signRequest(data: TSignRequestData): Promise;\n\n /**\n * A package transaction signature. Sometimes several transactions need to be simultaneously signed,\n * and for users' convenience, up to seven transactions at ones could be signed.\n * Only certain types of transactions are permitted:\n * issue, transfer, reissue, burn, create alias, mass transfer, data\n * @param tx\n * @param name\n */\n signTransactionPackage(tx: TSignTransactionPackageData, name?: string): Promise>;\n\n /**\n * Send message to keeper.\n * You can send message only 1 time in 30 sec for trusted sites with send permission\n * @param data\n */\n notification(data: INotificationData): Promise;\n\n /**\n * You can encrypt string messages to account in Waves network.\n * You need have recipient publicKey.\n * @param stringToEncrypt\n * String to encrypt\n * @param publicKey\n * Public key in base58 string\n * @param prefix\n * Prefix is secret app string need for encoding\n */\n encryptMessage(stringToEncrypt: string, publicKey: string, prefix: string): Promise;\n\n /**\n * You can decrypt string messages from account in Waves network to you.\n * You need have sender publicKey and encrypted message.\n * @param stringToDecrypt\n * String to decrypt\n * @param publicKey\n * Public key in base58 string\n * @param prefix\n * Prefix is secret app string need for encoding\n */\n decryptMessage(stringToDecrypt: string, publicKey: string, prefix: string): Promise;\n\n /**\n * Allows subscribing to Waves Keeper events.\n * If a website is not trusted, events won't show.\n * @param event\n * Supports events:\n * update – subscribe to updates of the state\n * @param cb\n */\n on(event: 'update', cb: (state: IPublicStateResponse) => any): object;\n\n }\n\n interface IAuthData {\n /**\n * a string line with any data (required field)\n */\n data: string;\n /**\n * name of the service (optional field)\n */\n name?: string;\n /**\n * a websites' full URL for redirect (optional field)\n */\n referrer?: string;\n /**\n * path to the logo relative to the referrer or origin of the website (optional field)\n */\n icon?: string;\n /**\n * relative path to the website's Auth API (optional field)\n */\n successPath?: string;\n }\n\n interface IAuthResponse {\n /**\n * an address in Waves network\n */\n address: string;\n /**\n * a host that requested a signature\n */\n host: string;\n /**\n * a prefix participating in the signature\n */\n prefix: string;\n /**\n * the user's public key\n */\n publicKey: string;\n /**\n * signature\n */\n signature: string;\n /**\n * API version\n */\n version: number;\n /**\n * the name of an application that requested a signature\n */\n name: string;\n }\n\n interface IPublicStateResponse {\n /**\n * boolean keeper initialized\n */\n initialized: boolean;\n /**\n * boolean keeper in wait mode\n */\n locked: boolean;\n /**\n * current account, if the user allowed access to the website, or null\n */\n account: TPublicStateAccount | null;\n /**\n * current Waves network, node and matcher addresses\n */\n network: TPublicStateNetwork,\n /**\n * signature request statuses\n */\n messages: Array,\n /**\n * available transaction versions for each type\n */\n txVersion: Record>;\n }\n\n type TPublicStateNetwork = {\n code: string;\n server: string;\n matcher: string;\n }\n\n type TPublicStateAccount = {\n name: string;\n publicKey: string;\n address: string;\n networkCode: string;\n network: string;\n balance: TAccountBalance;\n type: string;\n }\n\n type TAccountBalance = {\n available: string;\n leasedOut: string;\n network: string;\n }\n\n type TPublicStateMessage = {\n id: string;\n status: string;\n }\n\n interface ICancelOrderData {\n /**\n * order ID\n */\n id: string;\n /**\n * sender's public key in base58\n */\n senderPublicKey?: string;\n }\n\n type TSignCancelOrderData = ISignData<1003, ICancelOrderData>;\n\n interface ISignOrderDataBody {\n /**\n * MoneyLike - amount\n */\n amount: TMoney;\n /**\n * MoneyLike - price\n */\n price: TMoney;\n /**\n * 'sell'/'buy' – order type\n */\n orderType: 'sell' | 'buy';\n /**\n * MoneyLike - fee (0.003 WAVES minimum)\n */\n matcherFee: TMoney;\n /**\n * the public key of the exchange service\n */\n matcherPublicKey: string;\n /**\n * the order's expiration time\n */\n expiration: string | number;\n /**\n * current time\n */\n timestamp?: string | number;\n /**\n * public key in base58\n */\n senderPublicKey?: string;\n }\n\n type TSignOrderData = ISignData<1002, ISignOrderDataBody>;\n\n interface ISignRequestBody {\n timestamp: number | string;\n /**\n * public key in base58\n */\n senderPublicKey?: string;\n }\n\n type TSignRequestData = ISignData<1001 | 1004, ISignRequestBody>;\n\n type TSignTransactionData =\n TIssueTxData |\n TTransferTxData |\n TReissueTxData |\n TBurnTxData |\n TLeaseTxData |\n TLeaseCancelTxData |\n TCreateAliasTxData |\n TMassTransferTxData |\n TDataTxData |\n TSetScriptTxData |\n TSponsoredFeeTxData |\n TSetAssetScriptTxData |\n TScriptInvocationTxData;\n\n interface ISignData {\n type: TYPE;\n data: BODY;\n }\n\n interface ITransactionBase {\n /**\n * MoneyLike - fee\n */\n fee: TMoney;\n /**\n * sender's public key in base58\n */\n senderPublicKey?: string;\n /**\n * time in ms\n */\n timestamp?: number | string;\n }\n\n interface IIssueTx extends ITransactionBase {\n /**\n * [4, 16] string – token name\n */\n name: string;\n /**\n * [0, 1000] string – token description\n */\n description: string,\n /**\n * [0 - (JLM)] number/string - quantity\n */\n quantity: number | string;\n /**\n * [0 - 8] number - precision\n */\n precision: number;\n /**\n * can reissue token\n */\n reissuable: boolean;\n /**\n * smart asset\n */\n script?: string;\n }\n\n type TIssueTxData = ISignData<3, IIssueTx>;\n\n interface ITransferTx extends ITransactionBase {\n /**\n * MoneyLike - amount\n */\n amount: TMoney;\n /**\n * recipient's address or alias\n */\n recipient: string;\n /**\n * [,140 bytes] string or byte Array – additional info in text (optional field)\n */\n attachment?: string | Uint8Array | Array;\n }\n\n type TTransferTxData = ISignData<4, ITransferTx>;\n\n interface IReissueTx extends ITransactionBase {\n /**\n * asset ID\n */\n assetId: string;\n /**\n * [0 - (JLM)] number/string/MoneyLike - quantity\n */\n quantity: number | string | TMoney;\n /**\n * deny reissue\n */\n reissuable: boolean;\n }\n\n type TReissueTxData = ISignData<5, IReissueTx>;\n\n interface IBurnTx extends ITransactionBase {\n /**\n * asset ID\n */\n assetId: string;\n /**\n * [0 - (JLM)] number/string/MoneyLike - quantity,\n */\n amount: number | string | TMoney;\n }\n\n type TBurnTxData = ISignData<6, IBurnTx>;\n\n interface ILeaseTx extends ITransactionBase {\n /**\n * recipient's address or alias\n */\n recipient: string;\n /**\n * [0 - (JLM)] number/string/MoneyLike - quantity\n */\n amount: number | string | TMoney;\n }\n\n type TLeaseTxData = ISignData<8, ILeaseTx>;\n\n interface ILeaseCancelTx extends ITransactionBase {\n /**\n * leasing transaction ID\n */\n leaseId: string;\n }\n\n type TLeaseCancelTxData = ISignData<9, ILeaseCancelTx>;\n\n interface ICreateAliasTx extends ITransactionBase {\n /**\n * [4, 30] string - alias\n */\n alias: string;\n }\n\n type TCreateAliasTxData = ISignData<10, ICreateAliasTx>;\n\n interface IMassTransferTx extends ITransactionBase {\n /**\n * moneyLike – total to be sent\n * instead of calculating the amount you may insert { assetId: \"ID of the asset to be sent\", coins: 0},\n */\n totalAmount: TMoney;\n /**\n * a mass of objects\n */\n transfers: Array;\n /**\n * [,140 bytes в base58] string – additional info (optional field)\n */\n attachment?: string;\n }\n\n interface ITransfer {\n /**\n * address/alias\n */\n recipient: string;\n /**\n * amount\n */\n amount: number | string | TMoney;\n }\n\n type TMassTransferTxData = ISignData<11, IMassTransferTx>;\n\n interface IDataTx extends ITransactionBase {\n /**\n * mass of objects\n */\n data: Array;\n }\n\n type TData = TCallArgs & {key: string};\n\n type TDataTxData = ISignData<12, IDataTx>;\n\n interface ISetScriptTx extends ITransactionBase {\n /**\n * script\n * https://docs.wavesplatform.com/en/#section-5e6520b97a7ead921d7fb6bce7292ce0\n */\n script: string;\n }\n\n type TSetScriptTxData = ISignData<13, ISetScriptTx>;\n\n interface ISponsoredFeeTx extends ITransactionBase {\n /**\n * MoneyLike – fee price in the asset\n */\n minSponsoredAssetFee: TMoney;\n }\n\n type TSponsoredFeeTxData = ISignData<14, ISponsoredFeeTx>;\n\n interface ISetAssetScriptTx extends ITransactionBase {\n /**\n * asset ID\n */\n assetId: string;\n /**\n * script\n * https://docs.wavesplatform.com/en/#section-5e6520b97a7ead921d7fb6bce7292ce0\n */\n script: string;\n }\n\n type TSetAssetScriptTxData = ISignData<15, ISetAssetScriptTx>;\n\n interface IScriptInvocationTx extends ITransactionBase {\n /**\n * address script account\n */\n dApp: string;\n /**\n * array MoneyLike (at now can use only 1 payment)\n */\n payment?: Array;\n call?: ICall;\n }\n\n interface ICall {\n /**\n * function name\n */\n function: string;\n /**\n * array\n */\n args: Array;\n }\n\n type TCallArgs = TCallArgsInteger | TCallArgsBoolean | TCallArgsBinary | TCallArgsString;\n\n type TCallArgsInteger = {\n type: 'integer';\n value: number | string;\n }\n\n type TCallArgsBoolean = {\n type: 'boolean';\n value: boolean;\n }\n\n type TCallArgsBinary = {\n type: 'binary';\n /**\n * base64\n */\n value: string;\n }\n\n type TCallArgsString = {\n type: 'string';\n value: string;\n }\n\n type TScriptInvocationTxData = ISignData<16, IScriptInvocationTx>;\n\n type TSignTransactionPackageData = Array<\n TIssueTxData |\n TTransferTxData |\n TReissueTxData |\n TBurnTxData |\n TCreateAliasTxData |\n TMassTransferTxData |\n TDataTxData>;\n\n interface INotificationData {\n /**\n * string (20 chars max)\n */\n title: string;\n /**\n * string (250 chars max)\n */\n message?: string;\n }\n\n interface IMoneyTokens {\n assetId: string;\n tokens: number | string;\n }\n\n interface IMoneyCoins {\n assetId: string;\n coins: number | string;\n }\n\n interface IMoneyAmount {\n assetId: string;\n /**\n * coins alias\n */\n amount: number | string;\n }\n\n type TMoney = IMoneyTokens | IMoneyCoins | IMoneyAmount;\n}\n\nconst expect = chai.expect\ninterface Console {\nmemory: any;\nassert(condition?: boolean, message?: string, ...data: any[]): void;\nclear(): void;\ncount(label?: string): void;\ndebug(message?: any, ...optionalParams: any[]): void;\ndir(value?: any, ...optionalParams: any[]): void;\ndirxml(value: any): void;\nerror(message?: any, ...optionalParams: any[]): void;\nexception(message?: string, ...optionalParams: any[]): void;\ngroup(groupTitle?: string, ...optionalParams: any[]): void;\ngroupCollapsed(groupTitle?: string, ...optionalParams: any[]): void;\ngroupEnd(): void;\ninfo(message?: any, ...optionalParams: any[]): void;\nlog(message?: any, ...optionalParams: any[]): void;\nmarkTimeline(label?: string): void;\nprofile(reportName?: string): void;\nprofileEnd(reportName?: string): void;\ntable(...tabularData: any[]): void;\ntime(label?: string): void;\ntimeEnd(label?: string): void;\ntimeStamp(label?: string): void;\ntimeline(label?: string): void;\ntimelineEnd(label?: string): void;\ntrace(message?: any, ...optionalParams: any[]): void;\nwarn(message?: any, ...optionalParams: any[]): void;\n}\n\ndeclare var console: Console;\ndeclare function setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;\ndeclare function setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;" \ No newline at end of file +"/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved. \nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0 \n \nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \nMERCHANTABLITY OR NON-INFRINGEMENT. \n \nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// \r\n\n\n/////////////////////////////\r\n/// ECMAScript APIs\r\n/////////////////////////////\r\n\r\ndeclare var NaN: number;\r\ndeclare var Infinity: number;\r\n\r\n/**\r\n * Evaluates JavaScript code and executes it.\r\n * @param x A String value that contains valid JavaScript code.\r\n */\r\ndeclare function eval(x: string): any;\r\n\r\n/**\r\n * Converts a string to an integer.\r\n * @param s A string to convert into a number.\r\n * @param radix A value between 2 and 36 that specifies the base of the number in numString.\r\n * If this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\n * All other strings are considered decimal.\r\n */\r\ndeclare function parseInt(s: string, radix?: number): number;\r\n\r\n/**\r\n * Converts a string to a floating-point number.\r\n * @param string A string that contains a floating-point number.\r\n */\r\ndeclare function parseFloat(string: string): number;\r\n\r\n/**\r\n * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).\r\n * @param number A numeric value.\r\n */\r\ndeclare function isNaN(number: number): boolean;\r\n\r\n/**\r\n * Determines whether a supplied number is finite.\r\n * @param number Any numeric value.\r\n */\r\ndeclare function isFinite(number: number): boolean;\r\n\r\n/**\r\n * Gets the unencoded version of an encoded Uniform Resource Identifier (URI).\r\n * @param encodedURI A value representing an encoded URI.\r\n */\r\ndeclare function decodeURI(encodedURI: string): string;\r\n\r\n/**\r\n * Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).\r\n * @param encodedURIComponent A value representing an encoded URI component.\r\n */\r\ndeclare function decodeURIComponent(encodedURIComponent: string): string;\r\n\r\n/**\r\n * Encodes a text string as a valid Uniform Resource Identifier (URI)\r\n * @param uri A value representing an encoded URI.\r\n */\r\ndeclare function encodeURI(uri: string): string;\r\n\r\n/**\r\n * Encodes a text string as a valid component of a Uniform Resource Identifier (URI).\r\n * @param uriComponent A value representing an encoded URI component.\r\n */\r\ndeclare function encodeURIComponent(uriComponent: string | number | boolean): string;\r\n\r\n/**\r\n * Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.\r\n * @param string A string value\r\n */\r\ndeclare function escape(string: string): string;\r\n\r\n/**\r\n * Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.\r\n * @param string A string value\r\n */\r\ndeclare function unescape(string: string): string;\r\n\r\ninterface Symbol {\r\n /** Returns a string representation of an object. */\r\n toString(): string;\r\n\r\n /** Returns the primitive value of the specified object. */\r\n valueOf(): symbol;\r\n}\r\n\r\ndeclare type PropertyKey = string | number | symbol;\r\n\r\ninterface PropertyDescriptor {\r\n configurable?: boolean;\r\n enumerable?: boolean;\r\n value?: any;\r\n writable?: boolean;\r\n get?(): any;\r\n set?(v: any): void;\r\n}\r\n\r\ninterface PropertyDescriptorMap {\r\n [s: string]: PropertyDescriptor;\r\n}\r\n\r\ninterface Object {\r\n /** The initial value of Object.prototype.constructor is the standard built-in Object constructor. */\r\n constructor: Function;\r\n\r\n /** Returns a string representation of an object. */\r\n toString(): string;\r\n\r\n /** Returns a date converted to a string using the current locale. */\r\n toLocaleString(): string;\r\n\r\n /** Returns the primitive value of the specified object. */\r\n valueOf(): Object;\r\n\r\n /**\r\n * Determines whether an object has a property with the specified name.\r\n * @param v A property name.\r\n */\r\n hasOwnProperty(v: PropertyKey): boolean;\r\n\r\n /**\r\n * Determines whether an object exists in another object's prototype chain.\r\n * @param v Another object whose prototype chain is to be checked.\r\n */\r\n isPrototypeOf(v: Object): boolean;\r\n\r\n /**\r\n * Determines whether a specified property is enumerable.\r\n * @param v A property name.\r\n */\r\n propertyIsEnumerable(v: PropertyKey): boolean;\r\n}\r\n\r\ninterface ObjectConstructor {\r\n new(value?: any): Object;\r\n (): any;\r\n (value: any): any;\r\n\r\n /** A reference to the prototype for a class of objects. */\r\n readonly prototype: Object;\r\n\r\n /**\r\n * Returns the prototype of an object.\r\n * @param o The object that references the prototype.\r\n */\r\n getPrototypeOf(o: any): any;\r\n\r\n /**\r\n * Gets the own property descriptor of the specified object.\r\n * An own property descriptor is one that is defined directly on the object and is not inherited from the object's prototype.\r\n * @param o Object that contains the property.\r\n * @param p Name of the property.\r\n */\r\n getOwnPropertyDescriptor(o: any, p: PropertyKey): PropertyDescriptor | undefined;\r\n\r\n /**\r\n * Returns the names of the own properties of an object. The own properties of an object are those that are defined directly\r\n * on that object, and are not inherited from the object's prototype. The properties of an object include both fields (objects) and functions.\r\n * @param o Object that contains the own properties.\r\n */\r\n getOwnPropertyNames(o: any): string[];\r\n\r\n /**\r\n * Creates an object that has the specified prototype or that has null prototype.\r\n * @param o Object to use as a prototype. May be null.\r\n */\r\n create(o: object | null): any;\r\n\r\n /**\r\n * Creates an object that has the specified prototype, and that optionally contains specified properties.\r\n * @param o Object to use as a prototype. May be null\r\n * @param properties JavaScript object that contains one or more property descriptors.\r\n */\r\n create(o: object | null, properties: PropertyDescriptorMap & ThisType): any;\r\n\r\n /**\r\n * Adds a property to an object, or modifies attributes of an existing property.\r\n * @param o Object on which to add or modify the property. This can be a native JavaScript object (that is, a user-defined object or a built in object) or a DOM object.\r\n * @param p The property name.\r\n * @param attributes Descriptor for the property. It can be for a data property or an accessor property.\r\n */\r\n defineProperty(o: any, p: PropertyKey, attributes: PropertyDescriptor & ThisType): any;\r\n\r\n /**\r\n * Adds one or more properties to an object, and/or modifies attributes of existing properties.\r\n * @param o Object on which to add or modify the properties. This can be a native JavaScript object or a DOM object.\r\n * @param properties JavaScript object that contains one or more descriptor objects. Each descriptor object describes a data property or an accessor property.\r\n */\r\n defineProperties(o: any, properties: PropertyDescriptorMap & ThisType): any;\r\n\r\n /**\r\n * Prevents the modification of attributes of existing properties, and prevents the addition of new properties.\r\n * @param o Object on which to lock the attributes.\r\n */\r\n seal(o: T): T;\r\n\r\n /**\r\n * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.\r\n * @param o Object on which to lock the attributes.\r\n */\r\n freeze(a: T[]): readonly T[];\r\n\r\n /**\r\n * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.\r\n * @param o Object on which to lock the attributes.\r\n */\r\n freeze(f: T): T;\r\n\r\n /**\r\n * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.\r\n * @param o Object on which to lock the attributes.\r\n */\r\n freeze(o: T): Readonly;\r\n\r\n /**\r\n * Prevents the addition of new properties to an object.\r\n * @param o Object to make non-extensible.\r\n */\r\n preventExtensions(o: T): T;\r\n\r\n /**\r\n * Returns true if existing property attributes cannot be modified in an object and new properties cannot be added to the object.\r\n * @param o Object to test.\r\n */\r\n isSealed(o: any): boolean;\r\n\r\n /**\r\n * Returns true if existing property attributes and values cannot be modified in an object, and new properties cannot be added to the object.\r\n * @param o Object to test.\r\n */\r\n isFrozen(o: any): boolean;\r\n\r\n /**\r\n * Returns a value that indicates whether new properties can be added to an object.\r\n * @param o Object to test.\r\n */\r\n isExtensible(o: any): boolean;\r\n\r\n /**\r\n * Returns the names of the enumerable string properties and methods of an object.\r\n * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\r\n */\r\n keys(o: object): string[];\r\n}\r\n\r\n/**\r\n * Provides functionality common to all JavaScript objects.\r\n */\r\ndeclare var Object: ObjectConstructor;\r\n\r\n/**\r\n * Creates a new function.\r\n */\r\ninterface Function {\r\n /**\r\n * Calls the function, substituting the specified object for the this value of the function, and the specified array for the arguments of the function.\r\n * @param thisArg The object to be used as the this object.\r\n * @param argArray A set of arguments to be passed to the function.\r\n */\r\n apply(this: Function, thisArg: any, argArray?: any): any;\r\n\r\n /**\r\n * Calls a method of an object, substituting another object for the current object.\r\n * @param thisArg The object to be used as the current object.\r\n * @param argArray A list of arguments to be passed to the method.\r\n */\r\n call(this: Function, thisArg: any, ...argArray: any[]): any;\r\n\r\n /**\r\n * For a given function, creates a bound function that has the same body as the original function.\r\n * The this object of the bound function is associated with the specified object, and has the specified initial parameters.\r\n * @param thisArg An object to which the this keyword can refer inside the new function.\r\n * @param argArray A list of arguments to be passed to the new function.\r\n */\r\n bind(this: Function, thisArg: any, ...argArray: any[]): any;\r\n\r\n /** Returns a string representation of a function. */\r\n toString(): string;\r\n\r\n prototype: any;\r\n readonly length: number;\r\n\r\n // Non-standard extensions\r\n arguments: any;\r\n caller: Function;\r\n}\r\n\r\ninterface FunctionConstructor {\r\n /**\r\n * Creates a new function.\r\n * @param args A list of arguments the function accepts.\r\n */\r\n new(...args: string[]): Function;\r\n (...args: string[]): Function;\r\n readonly prototype: Function;\r\n}\r\n\r\ndeclare var Function: FunctionConstructor;\r\n\r\n/**\r\n * Extracts the type of the 'this' parameter of a function type, or 'unknown' if the function type has no 'this' parameter.\r\n */\r\ntype ThisParameterType = T extends (this: unknown, ...args: any[]) => any ? unknown : T extends (this: infer U, ...args: any[]) => any ? U : unknown;\r\n\r\n/**\r\n * Removes the 'this' parameter from a function type.\r\n */\r\ntype OmitThisParameter = unknown extends ThisParameterType ? T : T extends (...args: infer A) => infer R ? (...args: A) => R : T;\r\n\r\ninterface CallableFunction extends Function {\r\n /**\r\n * Calls the function with the specified object as the this value and the elements of specified array as the arguments.\r\n * @param thisArg The object to be used as the this object.\r\n * @param args An array of argument values to be passed to the function.\r\n */\r\n apply(this: (this: T) => R, thisArg: T): R;\r\n apply(this: (this: T, ...args: A) => R, thisArg: T, args: A): R;\r\n\r\n /**\r\n * Calls the function with the specified object as the this value and the specified rest arguments as the arguments.\r\n * @param thisArg The object to be used as the this object.\r\n * @param args Argument values to be passed to the function.\r\n */\r\n call(this: (this: T, ...args: A) => R, thisArg: T, ...args: A): R;\r\n\r\n /**\r\n * For a given function, creates a bound function that has the same body as the original function.\r\n * The this object of the bound function is associated with the specified object, and has the specified initial parameters.\r\n * @param thisArg The object to be used as the this object.\r\n * @param args Arguments to bind to the parameters of the function.\r\n */\r\n bind(this: T, thisArg: ThisParameterType): OmitThisParameter;\r\n bind(this: (this: T, arg0: A0, ...args: A) => R, thisArg: T, arg0: A0): (...args: A) => R;\r\n bind(this: (this: T, arg0: A0, arg1: A1, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1): (...args: A) => R;\r\n bind(this: (this: T, arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2): (...args: A) => R;\r\n bind(this: (this: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3): (...args: A) => R;\r\n bind(this: (this: T, ...args: AX[]) => R, thisArg: T, ...args: AX[]): (...args: AX[]) => R;\r\n}\r\n\r\ninterface NewableFunction extends Function {\r\n /**\r\n * Calls the function with the specified object as the this value and the elements of specified array as the arguments.\r\n * @param thisArg The object to be used as the this object.\r\n * @param args An array of argument values to be passed to the function.\r\n */\r\n apply(this: new () => T, thisArg: T): void;\r\n apply(this: new (...args: A) => T, thisArg: T, args: A): void;\r\n\r\n /**\r\n * Calls the function with the specified object as the this value and the specified rest arguments as the arguments.\r\n * @param thisArg The object to be used as the this object.\r\n * @param args Argument values to be passed to the function.\r\n */\r\n call(this: new (...args: A) => T, thisArg: T, ...args: A): void;\r\n\r\n /**\r\n * For a given function, creates a bound function that has the same body as the original function.\r\n * The this object of the bound function is associated with the specified object, and has the specified initial parameters.\r\n * @param thisArg The object to be used as the this object.\r\n * @param args Arguments to bind to the parameters of the function.\r\n */\r\n bind(this: T, thisArg: any): T;\r\n bind(this: new (arg0: A0, ...args: A) => R, thisArg: any, arg0: A0): new (...args: A) => R;\r\n bind(this: new (arg0: A0, arg1: A1, ...args: A) => R, thisArg: any, arg0: A0, arg1: A1): new (...args: A) => R;\r\n bind(this: new (arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: any, arg0: A0, arg1: A1, arg2: A2): new (...args: A) => R;\r\n bind(this: new (arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: any, arg0: A0, arg1: A1, arg2: A2, arg3: A3): new (...args: A) => R;\r\n bind(this: new (...args: AX[]) => R, thisArg: any, ...args: AX[]): new (...args: AX[]) => R;\r\n}\r\n\r\ninterface IArguments {\r\n [index: number]: any;\r\n length: number;\r\n callee: Function;\r\n}\r\n\r\ninterface String {\r\n /** Returns a string representation of a string. */\r\n toString(): string;\r\n\r\n /**\r\n * Returns the character at the specified index.\r\n * @param pos The zero-based index of the desired character.\r\n */\r\n charAt(pos: number): string;\r\n\r\n /**\r\n * Returns the Unicode value of the character at the specified location.\r\n * @param index The zero-based index of the desired character. If there is no character at the specified index, NaN is returned.\r\n */\r\n charCodeAt(index: number): number;\r\n\r\n /**\r\n * Returns a string that contains the concatenation of two or more strings.\r\n * @param strings The strings to append to the end of the string.\r\n */\r\n concat(...strings: string[]): string;\r\n\r\n /**\r\n * Returns the position of the first occurrence of a substring.\r\n * @param searchString The substring to search for in the string\r\n * @param position The index at which to begin searching the String object. If omitted, search starts at the beginning of the string.\r\n */\r\n indexOf(searchString: string, position?: number): number;\r\n\r\n /**\r\n * Returns the last occurrence of a substring in the string.\r\n * @param searchString The substring to search for.\r\n * @param position The index at which to begin searching. If omitted, the search begins at the end of the string.\r\n */\r\n lastIndexOf(searchString: string, position?: number): number;\r\n\r\n /**\r\n * Determines whether two strings are equivalent in the current locale.\r\n * @param that String to compare to target string\r\n */\r\n localeCompare(that: string): number;\r\n\r\n /**\r\n * Matches a string with a regular expression, and returns an array containing the results of that search.\r\n * @param regexp A variable name or string literal containing the regular expression pattern and flags.\r\n */\r\n match(regexp: string | RegExp): RegExpMatchArray | null;\r\n\r\n /**\r\n * Replaces text in a string, using a regular expression or search string.\r\n * @param searchValue A string to search for.\r\n * @param replaceValue A string containing the text to replace for every successful match of searchValue in this string.\r\n */\r\n replace(searchValue: string | RegExp, replaceValue: string): string;\r\n\r\n /**\r\n * Replaces text in a string, using a regular expression or search string.\r\n * @param searchValue A string to search for.\r\n * @param replacer A function that returns the replacement text.\r\n */\r\n replace(searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;\r\n\r\n /**\r\n * Finds the first substring match in a regular expression search.\r\n * @param regexp The regular expression pattern and applicable flags.\r\n */\r\n search(regexp: string | RegExp): number;\r\n\r\n /**\r\n * Returns a section of a string.\r\n * @param start The index to the beginning of the specified portion of stringObj.\r\n * @param end The index to the end of the specified portion of stringObj. The substring includes the characters up to, but not including, the character indicated by end.\r\n * If this value is not specified, the substring continues to the end of stringObj.\r\n */\r\n slice(start?: number, end?: number): string;\r\n\r\n /**\r\n * Split a string into substrings using the specified separator and return them as an array.\r\n * @param separator A string that identifies character or characters to use in separating the string. If omitted, a single-element array containing the entire string is returned.\r\n * @param limit A value used to limit the number of elements returned in the array.\r\n */\r\n split(separator: string | RegExp, limit?: number): string[];\r\n\r\n /**\r\n * Returns the substring at the specified location within a String object.\r\n * @param start The zero-based index number indicating the beginning of the substring.\r\n * @param end Zero-based index number indicating the end of the substring. The substring includes the characters up to, but not including, the character indicated by end.\r\n * If end is omitted, the characters from start through the end of the original string are returned.\r\n */\r\n substring(start: number, end?: number): string;\r\n\r\n /** Converts all the alphabetic characters in a string to lowercase. */\r\n toLowerCase(): string;\r\n\r\n /** Converts all alphabetic characters to lowercase, taking into account the host environment's current locale. */\r\n toLocaleLowerCase(locales?: string | string[]): string;\r\n\r\n /** Converts all the alphabetic characters in a string to uppercase. */\r\n toUpperCase(): string;\r\n\r\n /** Returns a string where all alphabetic characters have been converted to uppercase, taking into account the host environment's current locale. */\r\n toLocaleUpperCase(locales?: string | string[]): string;\r\n\r\n /** Removes the leading and trailing white space and line terminator characters from a string. */\r\n trim(): string;\r\n\r\n /** Returns the length of a String object. */\r\n readonly length: number;\r\n\r\n // IE extensions\r\n /**\r\n * Gets a substring beginning at the specified location and having the specified length.\r\n * @param from The starting position of the desired substring. The index of the first character in the string is zero.\r\n * @param length The number of characters to include in the returned substring.\r\n */\r\n substr(from: number, length?: number): string;\r\n\r\n /** Returns the primitive value of the specified object. */\r\n valueOf(): string;\r\n\r\n readonly [index: number]: string;\r\n}\r\n\r\ninterface StringConstructor {\r\n new(value?: any): String;\r\n (value?: any): string;\r\n readonly prototype: String;\r\n fromCharCode(...codes: number[]): string;\r\n}\r\n\r\n/**\r\n * Allows manipulation and formatting of text strings and determination and location of substrings within strings.\r\n */\r\ndeclare var String: StringConstructor;\r\n\r\ninterface Boolean {\r\n /** Returns the primitive value of the specified object. */\r\n valueOf(): boolean;\r\n}\r\n\r\ninterface BooleanConstructor {\r\n new(value?: any): Boolean;\r\n (value?: T): boolean;\r\n readonly prototype: Boolean;\r\n}\r\n\r\ndeclare var Boolean: BooleanConstructor;\r\n\r\ninterface Number {\r\n /**\r\n * Returns a string representation of an object.\r\n * @param radix Specifies a radix for converting numeric values to strings. This value is only used for numbers.\r\n */\r\n toString(radix?: number): string;\r\n\r\n /**\r\n * Returns a string representing a number in fixed-point notation.\r\n * @param fractionDigits Number of digits after the decimal point. Must be in the range 0 - 20, inclusive.\r\n */\r\n toFixed(fractionDigits?: number): string;\r\n\r\n /**\r\n * Returns a string containing a number represented in exponential notation.\r\n * @param fractionDigits Number of digits after the decimal point. Must be in the range 0 - 20, inclusive.\r\n */\r\n toExponential(fractionDigits?: number): string;\r\n\r\n /**\r\n * Returns a string containing a number represented either in exponential or fixed-point notation with a specified number of digits.\r\n * @param precision Number of significant digits. Must be in the range 1 - 21, inclusive.\r\n */\r\n toPrecision(precision?: number): string;\r\n\r\n /** Returns the primitive value of the specified object. */\r\n valueOf(): number;\r\n}\r\n\r\ninterface NumberConstructor {\r\n new(value?: any): Number;\r\n (value?: any): number;\r\n readonly prototype: Number;\r\n\r\n /** The largest number that can be represented in JavaScript. Equal to approximately 1.79E+308. */\r\n readonly MAX_VALUE: number;\r\n\r\n /** The closest number to zero that can be represented in JavaScript. Equal to approximately 5.00E-324. */\r\n readonly MIN_VALUE: number;\r\n\r\n /**\r\n * A value that is not a number.\r\n * In equality comparisons, NaN does not equal any value, including itself. To test whether a value is equivalent to NaN, use the isNaN function.\r\n */\r\n readonly NaN: number;\r\n\r\n /**\r\n * A value that is less than the largest negative number that can be represented in JavaScript.\r\n * JavaScript displays NEGATIVE_INFINITY values as -infinity.\r\n */\r\n readonly NEGATIVE_INFINITY: number;\r\n\r\n /**\r\n * A value greater than the largest number that can be represented in JavaScript.\r\n * JavaScript displays POSITIVE_INFINITY values as infinity.\r\n */\r\n readonly POSITIVE_INFINITY: number;\r\n}\r\n\r\n/** An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers. */\r\ndeclare var Number: NumberConstructor;\r\n\r\ninterface TemplateStringsArray extends ReadonlyArray {\r\n readonly raw: readonly string[];\r\n}\r\n\r\n/**\r\n * The type of `import.meta`.\r\n *\r\n * If you need to declare that a given property exists on `import.meta`,\r\n * this type may be augmented via interface merging.\r\n */\r\ninterface ImportMeta {\r\n}\r\n\r\ninterface Math {\r\n /** The mathematical constant e. This is Euler's number, the base of natural logarithms. */\r\n readonly E: number;\r\n /** The natural logarithm of 10. */\r\n readonly LN10: number;\r\n /** The natural logarithm of 2. */\r\n readonly LN2: number;\r\n /** The base-2 logarithm of e. */\r\n readonly LOG2E: number;\r\n /** The base-10 logarithm of e. */\r\n readonly LOG10E: number;\r\n /** Pi. This is the ratio of the circumference of a circle to its diameter. */\r\n readonly PI: number;\r\n /** The square root of 0.5, or, equivalently, one divided by the square root of 2. */\r\n readonly SQRT1_2: number;\r\n /** The square root of 2. */\r\n readonly SQRT2: number;\r\n /**\r\n * Returns the absolute value of a number (the value without regard to whether it is positive or negative).\r\n * For example, the absolute value of -5 is the same as the absolute value of 5.\r\n * @param x A numeric expression for which the absolute value is needed.\r\n */\r\n abs(x: number): number;\r\n /**\r\n * Returns the arc cosine (or inverse cosine) of a number.\r\n * @param x A numeric expression.\r\n */\r\n acos(x: number): number;\r\n /**\r\n * Returns the arcsine of a number.\r\n * @param x A numeric expression.\r\n */\r\n asin(x: number): number;\r\n /**\r\n * Returns the arctangent of a number.\r\n * @param x A numeric expression for which the arctangent is needed.\r\n */\r\n atan(x: number): number;\r\n /**\r\n * Returns the angle (in radians) from the X axis to a point.\r\n * @param y A numeric expression representing the cartesian y-coordinate.\r\n * @param x A numeric expression representing the cartesian x-coordinate.\r\n */\r\n atan2(y: number, x: number): number;\r\n /**\r\n * Returns the smallest integer greater than or equal to its numeric argument.\r\n * @param x A numeric expression.\r\n */\r\n ceil(x: number): number;\r\n /**\r\n * Returns the cosine of a number.\r\n * @param x A numeric expression that contains an angle measured in radians.\r\n */\r\n cos(x: number): number;\r\n /**\r\n * Returns e (the base of natural logarithms) raised to a power.\r\n * @param x A numeric expression representing the power of e.\r\n */\r\n exp(x: number): number;\r\n /**\r\n * Returns the greatest integer less than or equal to its numeric argument.\r\n * @param x A numeric expression.\r\n */\r\n floor(x: number): number;\r\n /**\r\n * Returns the natural logarithm (base e) of a number.\r\n * @param x A numeric expression.\r\n */\r\n log(x: number): number;\r\n /**\r\n * Returns the larger of a set of supplied numeric expressions.\r\n * @param values Numeric expressions to be evaluated.\r\n */\r\n max(...values: number[]): number;\r\n /**\r\n * Returns the smaller of a set of supplied numeric expressions.\r\n * @param values Numeric expressions to be evaluated.\r\n */\r\n min(...values: number[]): number;\r\n /**\r\n * Returns the value of a base expression taken to a specified power.\r\n * @param x The base value of the expression.\r\n * @param y The exponent value of the expression.\r\n */\r\n pow(x: number, y: number): number;\r\n /** Returns a pseudorandom number between 0 and 1. */\r\n random(): number;\r\n /**\r\n * Returns a supplied numeric expression rounded to the nearest integer.\r\n * @param x The value to be rounded to the nearest integer.\r\n */\r\n round(x: number): number;\r\n /**\r\n * Returns the sine of a number.\r\n * @param x A numeric expression that contains an angle measured in radians.\r\n */\r\n sin(x: number): number;\r\n /**\r\n * Returns the square root of a number.\r\n * @param x A numeric expression.\r\n */\r\n sqrt(x: number): number;\r\n /**\r\n * Returns the tangent of a number.\r\n * @param x A numeric expression that contains an angle measured in radians.\r\n */\r\n tan(x: number): number;\r\n}\r\n/** An intrinsic object that provides basic mathematics functionality and constants. */\r\ndeclare var Math: Math;\r\n\r\n/** Enables basic storage and retrieval of dates and times. */\r\ninterface Date {\r\n /** Returns a string representation of a date. The format of the string depends on the locale. */\r\n toString(): string;\r\n /** Returns a date as a string value. */\r\n toDateString(): string;\r\n /** Returns a time as a string value. */\r\n toTimeString(): string;\r\n /** Returns a value as a string value appropriate to the host environment's current locale. */\r\n toLocaleString(): string;\r\n /** Returns a date as a string value appropriate to the host environment's current locale. */\r\n toLocaleDateString(): string;\r\n /** Returns a time as a string value appropriate to the host environment's current locale. */\r\n toLocaleTimeString(): string;\r\n /** Returns the stored time value in milliseconds since midnight, January 1, 1970 UTC. */\r\n valueOf(): number;\r\n /** Gets the time value in milliseconds. */\r\n getTime(): number;\r\n /** Gets the year, using local time. */\r\n getFullYear(): number;\r\n /** Gets the year using Universal Coordinated Time (UTC). */\r\n getUTCFullYear(): number;\r\n /** Gets the month, using local time. */\r\n getMonth(): number;\r\n /** Gets the month of a Date object using Universal Coordinated Time (UTC). */\r\n getUTCMonth(): number;\r\n /** Gets the day-of-the-month, using local time. */\r\n getDate(): number;\r\n /** Gets the day-of-the-month, using Universal Coordinated Time (UTC). */\r\n getUTCDate(): number;\r\n /** Gets the day of the week, using local time. */\r\n getDay(): number;\r\n /** Gets the day of the week using Universal Coordinated Time (UTC). */\r\n getUTCDay(): number;\r\n /** Gets the hours in a date, using local time. */\r\n getHours(): number;\r\n /** Gets the hours value in a Date object using Universal Coordinated Time (UTC). */\r\n getUTCHours(): number;\r\n /** Gets the minutes of a Date object, using local time. */\r\n getMinutes(): number;\r\n /** Gets the minutes of a Date object using Universal Coordinated Time (UTC). */\r\n getUTCMinutes(): number;\r\n /** Gets the seconds of a Date object, using local time. */\r\n getSeconds(): number;\r\n /** Gets the seconds of a Date object using Universal Coordinated Time (UTC). */\r\n getUTCSeconds(): number;\r\n /** Gets the milliseconds of a Date, using local time. */\r\n getMilliseconds(): number;\r\n /** Gets the milliseconds of a Date object using Universal Coordinated Time (UTC). */\r\n getUTCMilliseconds(): number;\r\n /** Gets the difference in minutes between the time on the local computer and Universal Coordinated Time (UTC). */\r\n getTimezoneOffset(): number;\r\n /**\r\n * Sets the date and time value in the Date object.\r\n * @param time A numeric value representing the number of elapsed milliseconds since midnight, January 1, 1970 GMT.\r\n */\r\n setTime(time: number): number;\r\n /**\r\n * Sets the milliseconds value in the Date object using local time.\r\n * @param ms A numeric value equal to the millisecond value.\r\n */\r\n setMilliseconds(ms: number): number;\r\n /**\r\n * Sets the milliseconds value in the Date object using Universal Coordinated Time (UTC).\r\n * @param ms A numeric value equal to the millisecond value.\r\n */\r\n setUTCMilliseconds(ms: number): number;\r\n\r\n /**\r\n * Sets the seconds value in the Date object using local time.\r\n * @param sec A numeric value equal to the seconds value.\r\n * @param ms A numeric value equal to the milliseconds value.\r\n */\r\n setSeconds(sec: number, ms?: number): number;\r\n /**\r\n * Sets the seconds value in the Date object using Universal Coordinated Time (UTC).\r\n * @param sec A numeric value equal to the seconds value.\r\n * @param ms A numeric value equal to the milliseconds value.\r\n */\r\n setUTCSeconds(sec: number, ms?: number): number;\r\n /**\r\n * Sets the minutes value in the Date object using local time.\r\n * @param min A numeric value equal to the minutes value.\r\n * @param sec A numeric value equal to the seconds value.\r\n * @param ms A numeric value equal to the milliseconds value.\r\n */\r\n setMinutes(min: number, sec?: number, ms?: number): number;\r\n /**\r\n * Sets the minutes value in the Date object using Universal Coordinated Time (UTC).\r\n * @param min A numeric value equal to the minutes value.\r\n * @param sec A numeric value equal to the seconds value.\r\n * @param ms A numeric value equal to the milliseconds value.\r\n */\r\n setUTCMinutes(min: number, sec?: number, ms?: number): number;\r\n /**\r\n * Sets the hour value in the Date object using local time.\r\n * @param hours A numeric value equal to the hours value.\r\n * @param min A numeric value equal to the minutes value.\r\n * @param sec A numeric value equal to the seconds value.\r\n * @param ms A numeric value equal to the milliseconds value.\r\n */\r\n setHours(hours: number, min?: number, sec?: number, ms?: number): number;\r\n /**\r\n * Sets the hours value in the Date object using Universal Coordinated Time (UTC).\r\n * @param hours A numeric value equal to the hours value.\r\n * @param min A numeric value equal to the minutes value.\r\n * @param sec A numeric value equal to the seconds value.\r\n * @param ms A numeric value equal to the milliseconds value.\r\n */\r\n setUTCHours(hours: number, min?: number, sec?: number, ms?: number): number;\r\n /**\r\n * Sets the numeric day-of-the-month value of the Date object using local time.\r\n * @param date A numeric value equal to the day of the month.\r\n */\r\n setDate(date: number): number;\r\n /**\r\n * Sets the numeric day of the month in the Date object using Universal Coordinated Time (UTC).\r\n * @param date A numeric value equal to the day of the month.\r\n */\r\n setUTCDate(date: number): number;\r\n /**\r\n * Sets the month value in the Date object using local time.\r\n * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively.\r\n * @param date A numeric value representing the day of the month. If this value is not supplied, the value from a call to the getDate method is used.\r\n */\r\n setMonth(month: number, date?: number): number;\r\n /**\r\n * Sets the month value in the Date object using Universal Coordinated Time (UTC).\r\n * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively.\r\n * @param date A numeric value representing the day of the month. If it is not supplied, the value from a call to the getUTCDate method is used.\r\n */\r\n setUTCMonth(month: number, date?: number): number;\r\n /**\r\n * Sets the year of the Date object using local time.\r\n * @param year A numeric value for the year.\r\n * @param month A zero-based numeric value for the month (0 for January, 11 for December). Must be specified if numDate is specified.\r\n * @param date A numeric value equal for the day of the month.\r\n */\r\n setFullYear(year: number, month?: number, date?: number): number;\r\n /**\r\n * Sets the year value in the Date object using Universal Coordinated Time (UTC).\r\n * @param year A numeric value equal to the year.\r\n * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively. Must be supplied if numDate is supplied.\r\n * @param date A numeric value equal to the day of the month.\r\n */\r\n setUTCFullYear(year: number, month?: number, date?: number): number;\r\n /** Returns a date converted to a string using Universal Coordinated Time (UTC). */\r\n toUTCString(): string;\r\n /** Returns a date as a string value in ISO format. */\r\n toISOString(): string;\r\n /** Used by the JSON.stringify method to enable the transformation of an object's data for JavaScript Object Notation (JSON) serialization. */\r\n toJSON(key?: any): string;\r\n}\r\n\r\ninterface DateConstructor {\r\n new(): Date;\r\n new(value: number | string): Date;\r\n new(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date;\r\n (): string;\r\n readonly prototype: Date;\r\n /**\r\n * Parses a string containing a date, and returns the number of milliseconds between that date and midnight, January 1, 1970.\r\n * @param s A date string\r\n */\r\n parse(s: string): number;\r\n /**\r\n * Returns the number of milliseconds between midnight, January 1, 1970 Universal Coordinated Time (UTC) (or GMT) and the specified date.\r\n * @param year The full year designation is required for cross-century date accuracy. If year is between 0 and 99 is used, then year is assumed to be 1900 + year.\r\n * @param month The month as a number between 0 and 11 (January to December).\r\n * @param date The date as a number between 1 and 31.\r\n * @param hours Must be supplied if minutes is supplied. A number from 0 to 23 (midnight to 11pm) that specifies the hour.\r\n * @param minutes Must be supplied if seconds is supplied. A number from 0 to 59 that specifies the minutes.\r\n * @param seconds Must be supplied if milliseconds is supplied. A number from 0 to 59 that specifies the seconds.\r\n * @param ms A number from 0 to 999 that specifies the milliseconds.\r\n */\r\n UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number;\r\n now(): number;\r\n}\r\n\r\ndeclare var Date: DateConstructor;\r\n\r\ninterface RegExpMatchArray extends Array {\r\n index?: number;\r\n input?: string;\r\n}\r\n\r\ninterface RegExpExecArray extends Array {\r\n index: number;\r\n input: string;\r\n}\r\n\r\ninterface RegExp {\r\n /**\r\n * Executes a search on a string using a regular expression pattern, and returns an array containing the results of that search.\r\n * @param string The String object or string literal on which to perform the search.\r\n */\r\n exec(string: string): RegExpExecArray | null;\r\n\r\n /**\r\n * Returns a Boolean value that indicates whether or not a pattern exists in a searched string.\r\n * @param string String on which to perform the search.\r\n */\r\n test(string: string): boolean;\r\n\r\n /** Returns a copy of the text of the regular expression pattern. Read-only. The regExp argument is a Regular expression object. It can be a variable name or a literal. */\r\n readonly source: string;\r\n\r\n /** Returns a Boolean value indicating the state of the global flag (g) used with a regular expression. Default is false. Read-only. */\r\n readonly global: boolean;\r\n\r\n /** Returns a Boolean value indicating the state of the ignoreCase flag (i) used with a regular expression. Default is false. Read-only. */\r\n readonly ignoreCase: boolean;\r\n\r\n /** Returns a Boolean value indicating the state of the multiline flag (m) used with a regular expression. Default is false. Read-only. */\r\n readonly multiline: boolean;\r\n\r\n lastIndex: number;\r\n\r\n // Non-standard extensions\r\n compile(): this;\r\n}\r\n\r\ninterface RegExpConstructor {\r\n new(pattern: RegExp | string): RegExp;\r\n new(pattern: string, flags?: string): RegExp;\r\n (pattern: RegExp | string): RegExp;\r\n (pattern: string, flags?: string): RegExp;\r\n readonly prototype: RegExp;\r\n\r\n // Non-standard extensions\r\n $1: string;\r\n $2: string;\r\n $3: string;\r\n $4: string;\r\n $5: string;\r\n $6: string;\r\n $7: string;\r\n $8: string;\r\n $9: string;\r\n lastMatch: string;\r\n}\r\n\r\ndeclare var RegExp: RegExpConstructor;\r\n\r\ninterface Error {\r\n name: string;\r\n message: string;\r\n stack?: string;\r\n}\r\n\r\ninterface ErrorConstructor {\r\n new(message?: string): Error;\r\n (message?: string): Error;\r\n readonly prototype: Error;\r\n}\r\n\r\ndeclare var Error: ErrorConstructor;\r\n\r\ninterface EvalError extends Error {\r\n}\r\n\r\ninterface EvalErrorConstructor {\r\n new(message?: string): EvalError;\r\n (message?: string): EvalError;\r\n readonly prototype: EvalError;\r\n}\r\n\r\ndeclare var EvalError: EvalErrorConstructor;\r\n\r\ninterface RangeError extends Error {\r\n}\r\n\r\ninterface RangeErrorConstructor {\r\n new(message?: string): RangeError;\r\n (message?: string): RangeError;\r\n readonly prototype: RangeError;\r\n}\r\n\r\ndeclare var RangeError: RangeErrorConstructor;\r\n\r\ninterface ReferenceError extends Error {\r\n}\r\n\r\ninterface ReferenceErrorConstructor {\r\n new(message?: string): ReferenceError;\r\n (message?: string): ReferenceError;\r\n readonly prototype: ReferenceError;\r\n}\r\n\r\ndeclare var ReferenceError: ReferenceErrorConstructor;\r\n\r\ninterface SyntaxError extends Error {\r\n}\r\n\r\ninterface SyntaxErrorConstructor {\r\n new(message?: string): SyntaxError;\r\n (message?: string): SyntaxError;\r\n readonly prototype: SyntaxError;\r\n}\r\n\r\ndeclare var SyntaxError: SyntaxErrorConstructor;\r\n\r\ninterface TypeError extends Error {\r\n}\r\n\r\ninterface TypeErrorConstructor {\r\n new(message?: string): TypeError;\r\n (message?: string): TypeError;\r\n readonly prototype: TypeError;\r\n}\r\n\r\ndeclare var TypeError: TypeErrorConstructor;\r\n\r\ninterface URIError extends Error {\r\n}\r\n\r\ninterface URIErrorConstructor {\r\n new(message?: string): URIError;\r\n (message?: string): URIError;\r\n readonly prototype: URIError;\r\n}\r\n\r\ndeclare var URIError: URIErrorConstructor;\r\n\r\ninterface JSON {\r\n /**\r\n * Converts a JavaScript Object Notation (JSON) string into an object.\r\n * @param text A valid JSON string.\r\n * @param reviver A function that transforms the results. This function is called for each member of the object.\r\n * If a member contains nested objects, the nested objects are transformed before the parent object is.\r\n */\r\n parse(text: string, reviver?: (this: any, key: string, value: any) => any): any;\r\n /**\r\n * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.\r\n * @param value A JavaScript value, usually an object or array, to be converted.\r\n * @param replacer A function that transforms the results.\r\n * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.\r\n */\r\n stringify(value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string;\r\n /**\r\n * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.\r\n * @param value A JavaScript value, usually an object or array, to be converted.\r\n * @param replacer An array of strings and numbers that acts as a approved list for selecting the object properties that will be stringified.\r\n * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.\r\n */\r\n stringify(value: any, replacer?: (number | string)[] | null, space?: string | number): string;\r\n}\r\n\r\n/**\r\n * An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.\r\n */\r\ndeclare var JSON: JSON;\r\n\r\n\r\n/////////////////////////////\r\n/// ECMAScript Array API (specially handled by compiler)\r\n/////////////////////////////\r\n\r\ninterface ReadonlyArray {\r\n /**\r\n * Gets the length of the array. This is a number one higher than the highest element defined in an array.\r\n */\r\n readonly length: number;\r\n /**\r\n * Returns a string representation of an array.\r\n */\r\n toString(): string;\r\n /**\r\n * Returns a string representation of an array. The elements are converted to string using their toLocalString methods.\r\n */\r\n toLocaleString(): string;\r\n /**\r\n * Combines two or more arrays.\r\n * @param items Additional items to add to the end of array1.\r\n */\r\n concat(...items: ConcatArray[]): T[];\r\n /**\r\n * Combines two or more arrays.\r\n * @param items Additional items to add to the end of array1.\r\n */\r\n concat(...items: (T | ConcatArray)[]): T[];\r\n /**\r\n * Adds all the elements of an array separated by the specified separator string.\r\n * @param separator A string used to separate one element of an array from the next in the resulting String. If omitted, the array elements are separated with a comma.\r\n */\r\n join(separator?: string): string;\r\n /**\r\n * Returns a section of an array.\r\n * @param start The beginning of the specified portion of the array.\r\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n */\r\n slice(start?: number, end?: number): T[];\r\n /**\r\n * Returns the index of the first occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\r\n */\r\n indexOf(searchElement: T, fromIndex?: number): number;\r\n /**\r\n * Returns the index of the last occurrence of a specified value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at the last index in the array.\r\n */\r\n lastIndexOf(searchElement: T, fromIndex?: number): number;\r\n /**\r\n * Determines whether all the members of an array satisfy the specified test.\r\n * @param callbackfn A function that accepts up to three arguments. The every method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value false, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n every(callbackfn: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): boolean;\r\n /**\r\n * Determines whether the specified callback function returns true for any element of an array.\r\n * @param callbackfn A function that accepts up to three arguments. The some method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value true, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n some(callbackfn: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): boolean;\r\n /**\r\n * Performs the specified action for each element in an array.\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\n forEach(callbackfn: (value: T, index: number, array: readonly T[]) => void, thisArg?: any): void;\r\n /**\r\n * Calls a defined callback function on each element of an array, and returns an array that contains the results.\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\n map(callbackfn: (value: T, index: number, array: readonly T[]) => U, thisArg?: any): U[];\r\n /**\r\n * Returns the elements of an array that meet the condition specified in a callback function.\r\n * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\n filter(callbackfn: (value: T, index: number, array: readonly T[]) => value is S, thisArg?: any): S[];\r\n /**\r\n * Returns the elements of an array that meet the condition specified in a callback function.\r\n * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\n filter(callbackfn: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): T[];\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T): T;\r\n reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T, initialValue: T): T;\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: readonly T[]) => U, initialValue: U): U;\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T): T;\r\n reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T, initialValue: T): T;\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: readonly T[]) => U, initialValue: U): U;\r\n\r\n readonly [n: number]: T;\r\n}\r\n\r\ninterface ConcatArray {\r\n readonly length: number;\r\n readonly [n: number]: T;\r\n join(separator?: string): string;\r\n slice(start?: number, end?: number): T[];\r\n}\r\n\r\ninterface Array {\r\n /**\r\n * Gets or sets the length of the array. This is a number one higher than the highest element defined in an array.\r\n */\r\n length: number;\r\n /**\r\n * Returns a string representation of an array.\r\n */\r\n toString(): string;\r\n /**\r\n * Returns a string representation of an array. The elements are converted to string using their toLocalString methods.\r\n */\r\n toLocaleString(): string;\r\n /**\r\n * Removes the last element from an array and returns it.\r\n */\r\n pop(): T | undefined;\r\n /**\r\n * Appends new elements to an array, and returns the new length of the array.\r\n * @param items New elements of the Array.\r\n */\r\n push(...items: T[]): number;\r\n /**\r\n * Combines two or more arrays.\r\n * @param items Additional items to add to the end of array1.\r\n */\r\n concat(...items: ConcatArray[]): T[];\r\n /**\r\n * Combines two or more arrays.\r\n * @param items Additional items to add to the end of array1.\r\n */\r\n concat(...items: (T | ConcatArray)[]): T[];\r\n /**\r\n * Adds all the elements of an array separated by the specified separator string.\r\n * @param separator A string used to separate one element of an array from the next in the resulting String. If omitted, the array elements are separated with a comma.\r\n */\r\n join(separator?: string): string;\r\n /**\r\n * Reverses the elements in an Array.\r\n */\r\n reverse(): T[];\r\n /**\r\n * Removes the first element from an array and returns it.\r\n */\r\n shift(): T | undefined;\r\n /**\r\n * Returns a section of an array.\r\n * @param start The beginning of the specified portion of the array.\r\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n */\r\n slice(start?: number, end?: number): T[];\r\n /**\r\n * Sorts an array.\r\n * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\r\n * ```ts\r\n * [11,2,22,1].sort((a, b) => a - b)\r\n * ```\r\n */\r\n sort(compareFn?: (a: T, b: T) => number): this;\r\n /**\r\n * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.\r\n * @param start The zero-based location in the array from which to start removing elements.\r\n * @param deleteCount The number of elements to remove.\r\n */\r\n splice(start: number, deleteCount?: number): T[];\r\n /**\r\n * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.\r\n * @param start The zero-based location in the array from which to start removing elements.\r\n * @param deleteCount The number of elements to remove.\r\n * @param items Elements to insert into the array in place of the deleted elements.\r\n */\r\n splice(start: number, deleteCount: number, ...items: T[]): T[];\r\n /**\r\n * Inserts new elements at the start of an array.\r\n * @param items Elements to insert at the start of the Array.\r\n */\r\n unshift(...items: T[]): number;\r\n /**\r\n * Returns the index of the first occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\r\n */\r\n indexOf(searchElement: T, fromIndex?: number): number;\r\n /**\r\n * Returns the index of the last occurrence of a specified value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at the last index in the array.\r\n */\r\n lastIndexOf(searchElement: T, fromIndex?: number): number;\r\n /**\r\n * Determines whether all the members of an array satisfy the specified test.\r\n * @param callbackfn A function that accepts up to three arguments. The every method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value false, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n every(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;\r\n /**\r\n * Determines whether the specified callback function returns true for any element of an array.\r\n * @param callbackfn A function that accepts up to three arguments. The some method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value true, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n some(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;\r\n /**\r\n * Performs the specified action for each element in an array.\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\n forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;\r\n /**\r\n * Calls a defined callback function on each element of an array, and returns an array that contains the results.\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\n map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[];\r\n /**\r\n * Returns the elements of an array that meet the condition specified in a callback function.\r\n * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\n filter(callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[];\r\n /**\r\n * Returns the elements of an array that meet the condition specified in a callback function.\r\n * @param callbackfn A function that accepts up to three arguments. The filter method calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\n filter(callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T[];\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;\r\n reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;\r\n reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;\r\n\r\n [n: number]: T;\r\n}\r\n\r\ninterface ArrayConstructor {\r\n new(arrayLength?: number): any[];\r\n new (arrayLength: number): T[];\r\n new (...items: T[]): T[];\r\n (arrayLength?: number): any[];\r\n (arrayLength: number): T[];\r\n (...items: T[]): T[];\r\n isArray(arg: any): arg is any[];\r\n readonly prototype: any[];\r\n}\r\n\r\ndeclare var Array: ArrayConstructor;\r\n\r\ninterface TypedPropertyDescriptor {\r\n enumerable?: boolean;\r\n configurable?: boolean;\r\n writable?: boolean;\r\n value?: T;\r\n get?: () => T;\r\n set?: (value: T) => void;\r\n}\r\n\r\ndeclare type ClassDecorator = (target: TFunction) => TFunction | void;\r\ndeclare type PropertyDecorator = (target: Object, propertyKey: string | symbol) => void;\r\ndeclare type MethodDecorator = (target: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor | void;\r\ndeclare type ParameterDecorator = (target: Object, propertyKey: string | symbol, parameterIndex: number) => void;\r\n\r\ndeclare type PromiseConstructorLike = new (executor: (resolve: (value?: T | PromiseLike) => void, reject: (reason?: any) => void) => void) => PromiseLike;\r\n\r\ninterface PromiseLike {\r\n /**\r\n * Attaches callbacks for the resolution and/or rejection of the Promise.\r\n * @param onfulfilled The callback to execute when the Promise is resolved.\r\n * @param onrejected The callback to execute when the Promise is rejected.\r\n * @returns A Promise for the completion of which ever callback is executed.\r\n */\r\n then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): PromiseLike;\r\n}\r\n\r\n/**\r\n * Represents the completion of an asynchronous operation\r\n */\r\ninterface Promise {\r\n /**\r\n * Attaches callbacks for the resolution and/or rejection of the Promise.\r\n * @param onfulfilled The callback to execute when the Promise is resolved.\r\n * @param onrejected The callback to execute when the Promise is rejected.\r\n * @returns A Promise for the completion of which ever callback is executed.\r\n */\r\n then(onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): Promise;\r\n\r\n /**\r\n * Attaches a callback for only the rejection of the Promise.\r\n * @param onrejected The callback to execute when the Promise is rejected.\r\n * @returns A Promise for the completion of the callback.\r\n */\r\n catch(onrejected?: ((reason: any) => TResult | PromiseLike) | undefined | null): Promise;\r\n}\r\n\r\ninterface ArrayLike {\r\n readonly length: number;\r\n readonly [n: number]: T;\r\n}\r\n\r\n/**\r\n * Make all properties in T optional\r\n */\r\ntype Partial = {\r\n [P in keyof T]?: T[P];\r\n};\r\n\r\n/**\r\n * Make all properties in T required\r\n */\r\ntype Required = {\r\n [P in keyof T]-?: T[P];\r\n};\r\n\r\n/**\r\n * Make all properties in T readonly\r\n */\r\ntype Readonly = {\r\n readonly [P in keyof T]: T[P];\r\n};\r\n\r\n/**\r\n * From T, pick a set of properties whose keys are in the union K\r\n */\r\ntype Pick = {\r\n [P in K]: T[P];\r\n};\r\n\r\n/**\r\n * Construct a type with a set of properties K of type T\r\n */\r\ntype Record = {\r\n [P in K]: T;\r\n};\r\n\r\n/**\r\n * Exclude from T those types that are assignable to U\r\n */\r\ntype Exclude = T extends U ? never : T;\r\n\r\n/**\r\n * Extract from T those types that are assignable to U\r\n */\r\ntype Extract = T extends U ? T : never;\r\n\r\n/**\r\n * Construct a type with the properties of T except for those in type K.\r\n */\r\ntype Omit = Pick>;\r\n\r\n/**\r\n * Exclude null and undefined from T\r\n */\r\ntype NonNullable = T extends null | undefined ? never : T;\r\n\r\n/**\r\n * Obtain the parameters of a function type in a tuple\r\n */\r\ntype Parameters any> = T extends (...args: infer P) => any ? P : never;\r\n\r\n/**\r\n * Obtain the parameters of a constructor function type in a tuple\r\n */\r\ntype ConstructorParameters any> = T extends new (...args: infer P) => any ? P : never;\r\n\r\n/**\r\n * Obtain the return type of a function type\r\n */\r\ntype ReturnType any> = T extends (...args: any) => infer R ? R : any;\r\n\r\n/**\r\n * Obtain the return type of a constructor function type\r\n */\r\ntype InstanceType any> = T extends new (...args: any) => infer R ? R : any;\r\n\r\n/**\r\n * Marker for contextual 'this' type\r\n */\r\ninterface ThisType { }\r\n\r\n/**\r\n * Represents a raw buffer of binary data, which is used to store data for the\r\n * different typed arrays. ArrayBuffers cannot be read from or written to directly,\r\n * but can be passed to a typed array or DataView Object to interpret the raw\r\n * buffer as needed.\r\n */\r\ninterface ArrayBuffer {\r\n /**\r\n * Read-only. The length of the ArrayBuffer (in bytes).\r\n */\r\n readonly byteLength: number;\r\n\r\n /**\r\n * Returns a section of an ArrayBuffer.\r\n */\r\n slice(begin: number, end?: number): ArrayBuffer;\r\n}\r\n\r\n/**\r\n * Allowed ArrayBuffer types for the buffer of an ArrayBufferView and related Typed Arrays.\r\n */\r\ninterface ArrayBufferTypes {\r\n ArrayBuffer: ArrayBuffer;\r\n}\r\ntype ArrayBufferLike = ArrayBufferTypes[keyof ArrayBufferTypes];\r\n\r\ninterface ArrayBufferConstructor {\r\n readonly prototype: ArrayBuffer;\r\n new(byteLength: number): ArrayBuffer;\r\n isView(arg: any): arg is ArrayBufferView;\r\n}\r\ndeclare var ArrayBuffer: ArrayBufferConstructor;\r\n\r\ninterface ArrayBufferView {\r\n /**\r\n * The ArrayBuffer instance referenced by the array.\r\n */\r\n buffer: ArrayBufferLike;\r\n\r\n /**\r\n * The length in bytes of the array.\r\n */\r\n byteLength: number;\r\n\r\n /**\r\n * The offset in bytes of the array.\r\n */\r\n byteOffset: number;\r\n}\r\n\r\ninterface DataView {\r\n readonly buffer: ArrayBuffer;\r\n readonly byteLength: number;\r\n readonly byteOffset: number;\r\n /**\r\n * Gets the Float32 value at the specified byte offset from the start of the view. There is\r\n * no alignment constraint; multi-byte values may be fetched from any offset.\r\n * @param byteOffset The place in the buffer at which the value should be retrieved.\r\n */\r\n getFloat32(byteOffset: number, littleEndian?: boolean): number;\r\n\r\n /**\r\n * Gets the Float64 value at the specified byte offset from the start of the view. There is\r\n * no alignment constraint; multi-byte values may be fetched from any offset.\r\n * @param byteOffset The place in the buffer at which the value should be retrieved.\r\n */\r\n getFloat64(byteOffset: number, littleEndian?: boolean): number;\r\n\r\n /**\r\n * Gets the Int8 value at the specified byte offset from the start of the view. There is\r\n * no alignment constraint; multi-byte values may be fetched from any offset.\r\n * @param byteOffset The place in the buffer at which the value should be retrieved.\r\n */\r\n getInt8(byteOffset: number): number;\r\n\r\n /**\r\n * Gets the Int16 value at the specified byte offset from the start of the view. There is\r\n * no alignment constraint; multi-byte values may be fetched from any offset.\r\n * @param byteOffset The place in the buffer at which the value should be retrieved.\r\n */\r\n getInt16(byteOffset: number, littleEndian?: boolean): number;\r\n /**\r\n * Gets the Int32 value at the specified byte offset from the start of the view. There is\r\n * no alignment constraint; multi-byte values may be fetched from any offset.\r\n * @param byteOffset The place in the buffer at which the value should be retrieved.\r\n */\r\n getInt32(byteOffset: number, littleEndian?: boolean): number;\r\n\r\n /**\r\n * Gets the Uint8 value at the specified byte offset from the start of the view. There is\r\n * no alignment constraint; multi-byte values may be fetched from any offset.\r\n * @param byteOffset The place in the buffer at which the value should be retrieved.\r\n */\r\n getUint8(byteOffset: number): number;\r\n\r\n /**\r\n * Gets the Uint16 value at the specified byte offset from the start of the view. There is\r\n * no alignment constraint; multi-byte values may be fetched from any offset.\r\n * @param byteOffset The place in the buffer at which the value should be retrieved.\r\n */\r\n getUint16(byteOffset: number, littleEndian?: boolean): number;\r\n\r\n /**\r\n * Gets the Uint32 value at the specified byte offset from the start of the view. There is\r\n * no alignment constraint; multi-byte values may be fetched from any offset.\r\n * @param byteOffset The place in the buffer at which the value should be retrieved.\r\n */\r\n getUint32(byteOffset: number, littleEndian?: boolean): number;\r\n\r\n /**\r\n * Stores an Float32 value at the specified byte offset from the start of the view.\r\n * @param byteOffset The place in the buffer at which the value should be set.\r\n * @param value The value to set.\r\n * @param littleEndian If false or undefined, a big-endian value should be written,\r\n * otherwise a little-endian value should be written.\r\n */\r\n setFloat32(byteOffset: number, value: number, littleEndian?: boolean): void;\r\n\r\n /**\r\n * Stores an Float64 value at the specified byte offset from the start of the view.\r\n * @param byteOffset The place in the buffer at which the value should be set.\r\n * @param value The value to set.\r\n * @param littleEndian If false or undefined, a big-endian value should be written,\r\n * otherwise a little-endian value should be written.\r\n */\r\n setFloat64(byteOffset: number, value: number, littleEndian?: boolean): void;\r\n\r\n /**\r\n * Stores an Int8 value at the specified byte offset from the start of the view.\r\n * @param byteOffset The place in the buffer at which the value should be set.\r\n * @param value The value to set.\r\n */\r\n setInt8(byteOffset: number, value: number): void;\r\n\r\n /**\r\n * Stores an Int16 value at the specified byte offset from the start of the view.\r\n * @param byteOffset The place in the buffer at which the value should be set.\r\n * @param value The value to set.\r\n * @param littleEndian If false or undefined, a big-endian value should be written,\r\n * otherwise a little-endian value should be written.\r\n */\r\n setInt16(byteOffset: number, value: number, littleEndian?: boolean): void;\r\n\r\n /**\r\n * Stores an Int32 value at the specified byte offset from the start of the view.\r\n * @param byteOffset The place in the buffer at which the value should be set.\r\n * @param value The value to set.\r\n * @param littleEndian If false or undefined, a big-endian value should be written,\r\n * otherwise a little-endian value should be written.\r\n */\r\n setInt32(byteOffset: number, value: number, littleEndian?: boolean): void;\r\n\r\n /**\r\n * Stores an Uint8 value at the specified byte offset from the start of the view.\r\n * @param byteOffset The place in the buffer at which the value should be set.\r\n * @param value The value to set.\r\n */\r\n setUint8(byteOffset: number, value: number): void;\r\n\r\n /**\r\n * Stores an Uint16 value at the specified byte offset from the start of the view.\r\n * @param byteOffset The place in the buffer at which the value should be set.\r\n * @param value The value to set.\r\n * @param littleEndian If false or undefined, a big-endian value should be written,\r\n * otherwise a little-endian value should be written.\r\n */\r\n setUint16(byteOffset: number, value: number, littleEndian?: boolean): void;\r\n\r\n /**\r\n * Stores an Uint32 value at the specified byte offset from the start of the view.\r\n * @param byteOffset The place in the buffer at which the value should be set.\r\n * @param value The value to set.\r\n * @param littleEndian If false or undefined, a big-endian value should be written,\r\n * otherwise a little-endian value should be written.\r\n */\r\n setUint32(byteOffset: number, value: number, littleEndian?: boolean): void;\r\n}\r\n\r\ninterface DataViewConstructor {\r\n new(buffer: ArrayBufferLike, byteOffset?: number, byteLength?: number): DataView;\r\n}\r\ndeclare var DataView: DataViewConstructor;\r\n\r\n/**\r\n * A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\n * number of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Int8Array {\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * The ArrayBuffer instance referenced by the array.\r\n */\r\n readonly buffer: ArrayBufferLike;\r\n\r\n /**\r\n * The length in bytes of the array.\r\n */\r\n readonly byteLength: number;\r\n\r\n /**\r\n * The offset in bytes of the array.\r\n */\r\n readonly byteOffset: number;\r\n\r\n /**\r\n * Returns the this object after copying a section of the array identified by start and end\r\n * to the same array starting at position target\r\n * @param target If target is negative, it is treated as length+target where length is the\r\n * length of the array.\r\n * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n * is treated as length+end.\r\n * @param end If not specified, length of the this object is used as its default value.\r\n */\r\n copyWithin(target: number, start: number, end?: number): this;\r\n\r\n /**\r\n * Determines whether all the members of an array satisfy the specified test.\r\n * @param callbackfn A function that accepts up to three arguments. The every method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value false, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n every(callbackfn: (value: number, index: number, array: Int8Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Returns the this object after filling the section identified by start and end with value\r\n * @param value value to fill array section with\r\n * @param start index to start filling the array at. If start is negative, it is treated as\r\n * length+start where length is the length of the array.\r\n * @param end index to stop filling the array at. If end is negative, it is treated as\r\n * length+end.\r\n */\r\n fill(value: number, start?: number, end?: number): this;\r\n\r\n /**\r\n * Returns the elements of an array that meet the condition specified in a callback function.\r\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n filter(callbackfn: (value: number, index: number, array: Int8Array) => any, thisArg?: any): Int8Array;\r\n\r\n /**\r\n * Returns the value of the first element in the array where predicate is true, and undefined\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found, find\r\n * immediately returns that element value. Otherwise, find returns undefined.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n find(predicate: (value: number, index: number, obj: Int8Array) => boolean, thisArg?: any): number | undefined;\r\n\r\n /**\r\n * Returns the index of the first element in the array where predicate is true, and -1\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found,\r\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n findIndex(predicate: (value: number, index: number, obj: Int8Array) => boolean, thisArg?: any): number;\r\n\r\n /**\r\n * Performs the specified action for each element in an array.\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n forEach(callbackfn: (value: number, index: number, array: Int8Array) => void, thisArg?: any): void;\r\n\r\n /**\r\n * Returns the index of the first occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * Adds all the elements of an array separated by the specified separator string.\r\n * @param separator A string used to separate one element of an array from the next in the\r\n * resulting String. If omitted, the array elements are separated with a comma.\r\n */\r\n join(separator?: string): string;\r\n\r\n /**\r\n * Returns the index of the last occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * The length of the array.\r\n */\r\n readonly length: number;\r\n\r\n /**\r\n * Calls a defined callback function on each element of an array, and returns an array that\r\n * contains the results.\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n map(callbackfn: (value: number, index: number, array: Int8Array) => number, thisArg?: any): Int8Array;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number): number;\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an\r\n * argument instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number): number;\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Reverses the elements in an Array.\r\n */\r\n reverse(): Int8Array;\r\n\r\n /**\r\n * Sets a value or an array of values.\r\n * @param array A typed or untyped array of values to set.\r\n * @param offset The index in the current array at which the values are to be written.\r\n */\r\n set(array: ArrayLike, offset?: number): void;\r\n\r\n /**\r\n * Returns a section of an array.\r\n * @param start The beginning of the specified portion of the array.\r\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n */\r\n slice(start?: number, end?: number): Int8Array;\r\n\r\n /**\r\n * Determines whether the specified callback function returns true for any element of an array.\r\n * @param callbackfn A function that accepts up to three arguments. The some method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value true, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n some(callbackfn: (value: number, index: number, array: Int8Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Sorts an array.\r\n * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\r\n * ```ts\r\n * [11,2,22,1].sort((a, b) => a - b)\r\n * ```\r\n */\r\n sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n /**\r\n * Gets a new Int8Array view of the ArrayBuffer store for this array, referencing the elements\r\n * at begin, inclusive, up to end, exclusive.\r\n * @param begin The index of the beginning of the array.\r\n * @param end The index of the end of the array.\r\n */\r\n subarray(begin?: number, end?: number): Int8Array;\r\n\r\n /**\r\n * Converts a number to a string by using the current locale.\r\n */\r\n toLocaleString(): string;\r\n\r\n /**\r\n * Returns a string representation of an array.\r\n */\r\n toString(): string;\r\n\r\n [index: number]: number;\r\n}\r\ninterface Int8ArrayConstructor {\r\n readonly prototype: Int8Array;\r\n new(length: number): Int8Array;\r\n new(arrayOrArrayBuffer: ArrayLike | ArrayBufferLike): Int8Array;\r\n new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Int8Array;\r\n\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * Returns a new array from a set of elements.\r\n * @param items A set of elements to include in the new array object.\r\n */\r\n of(...items: number[]): Int8Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n */\r\n from(arrayLike: ArrayLike): Int8Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n * @param mapfn A mapping function to call on every element of the array.\r\n * @param thisArg Value of 'this' used to invoke the mapfn.\r\n */\r\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int8Array;\r\n\r\n\r\n}\r\ndeclare var Int8Array: Int8ArrayConstructor;\r\n\r\n/**\r\n * A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\n * requested number of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Uint8Array {\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * The ArrayBuffer instance referenced by the array.\r\n */\r\n readonly buffer: ArrayBufferLike;\r\n\r\n /**\r\n * The length in bytes of the array.\r\n */\r\n readonly byteLength: number;\r\n\r\n /**\r\n * The offset in bytes of the array.\r\n */\r\n readonly byteOffset: number;\r\n\r\n /**\r\n * Returns the this object after copying a section of the array identified by start and end\r\n * to the same array starting at position target\r\n * @param target If target is negative, it is treated as length+target where length is the\r\n * length of the array.\r\n * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n * is treated as length+end.\r\n * @param end If not specified, length of the this object is used as its default value.\r\n */\r\n copyWithin(target: number, start: number, end?: number): this;\r\n\r\n /**\r\n * Determines whether all the members of an array satisfy the specified test.\r\n * @param callbackfn A function that accepts up to three arguments. The every method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value false, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n every(callbackfn: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Returns the this object after filling the section identified by start and end with value\r\n * @param value value to fill array section with\r\n * @param start index to start filling the array at. If start is negative, it is treated as\r\n * length+start where length is the length of the array.\r\n * @param end index to stop filling the array at. If end is negative, it is treated as\r\n * length+end.\r\n */\r\n fill(value: number, start?: number, end?: number): this;\r\n\r\n /**\r\n * Returns the elements of an array that meet the condition specified in a callback function.\r\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n filter(callbackfn: (value: number, index: number, array: Uint8Array) => any, thisArg?: any): Uint8Array;\r\n\r\n /**\r\n * Returns the value of the first element in the array where predicate is true, and undefined\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found, find\r\n * immediately returns that element value. Otherwise, find returns undefined.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n find(predicate: (value: number, index: number, obj: Uint8Array) => boolean, thisArg?: any): number | undefined;\r\n\r\n /**\r\n * Returns the index of the first element in the array where predicate is true, and -1\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found,\r\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n findIndex(predicate: (value: number, index: number, obj: Uint8Array) => boolean, thisArg?: any): number;\r\n\r\n /**\r\n * Performs the specified action for each element in an array.\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n forEach(callbackfn: (value: number, index: number, array: Uint8Array) => void, thisArg?: any): void;\r\n\r\n /**\r\n * Returns the index of the first occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * Adds all the elements of an array separated by the specified separator string.\r\n * @param separator A string used to separate one element of an array from the next in the\r\n * resulting String. If omitted, the array elements are separated with a comma.\r\n */\r\n join(separator?: string): string;\r\n\r\n /**\r\n * Returns the index of the last occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * The length of the array.\r\n */\r\n readonly length: number;\r\n\r\n /**\r\n * Calls a defined callback function on each element of an array, and returns an array that\r\n * contains the results.\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n map(callbackfn: (value: number, index: number, array: Uint8Array) => number, thisArg?: any): Uint8Array;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number): number;\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an\r\n * argument instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number): number;\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Reverses the elements in an Array.\r\n */\r\n reverse(): Uint8Array;\r\n\r\n /**\r\n * Sets a value or an array of values.\r\n * @param array A typed or untyped array of values to set.\r\n * @param offset The index in the current array at which the values are to be written.\r\n */\r\n set(array: ArrayLike, offset?: number): void;\r\n\r\n /**\r\n * Returns a section of an array.\r\n * @param start The beginning of the specified portion of the array.\r\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n */\r\n slice(start?: number, end?: number): Uint8Array;\r\n\r\n /**\r\n * Determines whether the specified callback function returns true for any element of an array.\r\n * @param callbackfn A function that accepts up to three arguments. The some method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value true, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n some(callbackfn: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Sorts an array.\r\n * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\r\n * ```ts\r\n * [11,2,22,1].sort((a, b) => a - b)\r\n * ```\r\n */\r\n sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n /**\r\n * Gets a new Uint8Array view of the ArrayBuffer store for this array, referencing the elements\r\n * at begin, inclusive, up to end, exclusive.\r\n * @param begin The index of the beginning of the array.\r\n * @param end The index of the end of the array.\r\n */\r\n subarray(begin?: number, end?: number): Uint8Array;\r\n\r\n /**\r\n * Converts a number to a string by using the current locale.\r\n */\r\n toLocaleString(): string;\r\n\r\n /**\r\n * Returns a string representation of an array.\r\n */\r\n toString(): string;\r\n\r\n [index: number]: number;\r\n}\r\n\r\ninterface Uint8ArrayConstructor {\r\n readonly prototype: Uint8Array;\r\n new(length: number): Uint8Array;\r\n new(arrayOrArrayBuffer: ArrayLike | ArrayBufferLike): Uint8Array;\r\n new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Uint8Array;\r\n\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * Returns a new array from a set of elements.\r\n * @param items A set of elements to include in the new array object.\r\n */\r\n of(...items: number[]): Uint8Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n */\r\n from(arrayLike: ArrayLike): Uint8Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n * @param mapfn A mapping function to call on every element of the array.\r\n * @param thisArg Value of 'this' used to invoke the mapfn.\r\n */\r\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8Array;\r\n\r\n}\r\ndeclare var Uint8Array: Uint8ArrayConstructor;\r\n\r\n/**\r\n * A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\n * If the requested number of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Uint8ClampedArray {\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * The ArrayBuffer instance referenced by the array.\r\n */\r\n readonly buffer: ArrayBufferLike;\r\n\r\n /**\r\n * The length in bytes of the array.\r\n */\r\n readonly byteLength: number;\r\n\r\n /**\r\n * The offset in bytes of the array.\r\n */\r\n readonly byteOffset: number;\r\n\r\n /**\r\n * Returns the this object after copying a section of the array identified by start and end\r\n * to the same array starting at position target\r\n * @param target If target is negative, it is treated as length+target where length is the\r\n * length of the array.\r\n * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n * is treated as length+end.\r\n * @param end If not specified, length of the this object is used as its default value.\r\n */\r\n copyWithin(target: number, start: number, end?: number): this;\r\n\r\n /**\r\n * Determines whether all the members of an array satisfy the specified test.\r\n * @param callbackfn A function that accepts up to three arguments. The every method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value false, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n every(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Returns the this object after filling the section identified by start and end with value\r\n * @param value value to fill array section with\r\n * @param start index to start filling the array at. If start is negative, it is treated as\r\n * length+start where length is the length of the array.\r\n * @param end index to stop filling the array at. If end is negative, it is treated as\r\n * length+end.\r\n */\r\n fill(value: number, start?: number, end?: number): this;\r\n\r\n /**\r\n * Returns the elements of an array that meet the condition specified in a callback function.\r\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n filter(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => any, thisArg?: any): Uint8ClampedArray;\r\n\r\n /**\r\n * Returns the value of the first element in the array where predicate is true, and undefined\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found, find\r\n * immediately returns that element value. Otherwise, find returns undefined.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n find(predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any): number | undefined;\r\n\r\n /**\r\n * Returns the index of the first element in the array where predicate is true, and -1\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found,\r\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n findIndex(predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any): number;\r\n\r\n /**\r\n * Performs the specified action for each element in an array.\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n forEach(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => void, thisArg?: any): void;\r\n\r\n /**\r\n * Returns the index of the first occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * Adds all the elements of an array separated by the specified separator string.\r\n * @param separator A string used to separate one element of an array from the next in the\r\n * resulting String. If omitted, the array elements are separated with a comma.\r\n */\r\n join(separator?: string): string;\r\n\r\n /**\r\n * Returns the index of the last occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * The length of the array.\r\n */\r\n readonly length: number;\r\n\r\n /**\r\n * Calls a defined callback function on each element of an array, and returns an array that\r\n * contains the results.\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n map(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => number, thisArg?: any): Uint8ClampedArray;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an\r\n * argument instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U;\r\n\r\n /**\r\n * Reverses the elements in an Array.\r\n */\r\n reverse(): Uint8ClampedArray;\r\n\r\n /**\r\n * Sets a value or an array of values.\r\n * @param array A typed or untyped array of values to set.\r\n * @param offset The index in the current array at which the values are to be written.\r\n */\r\n set(array: ArrayLike, offset?: number): void;\r\n\r\n /**\r\n * Returns a section of an array.\r\n * @param start The beginning of the specified portion of the array.\r\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n */\r\n slice(start?: number, end?: number): Uint8ClampedArray;\r\n\r\n /**\r\n * Determines whether the specified callback function returns true for any element of an array.\r\n * @param callbackfn A function that accepts up to three arguments. The some method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value true, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n some(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Sorts an array.\r\n * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\r\n * ```ts\r\n * [11,2,22,1].sort((a, b) => a - b)\r\n * ```\r\n */\r\n sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n /**\r\n * Gets a new Uint8ClampedArray view of the ArrayBuffer store for this array, referencing the elements\r\n * at begin, inclusive, up to end, exclusive.\r\n * @param begin The index of the beginning of the array.\r\n * @param end The index of the end of the array.\r\n */\r\n subarray(begin?: number, end?: number): Uint8ClampedArray;\r\n\r\n /**\r\n * Converts a number to a string by using the current locale.\r\n */\r\n toLocaleString(): string;\r\n\r\n /**\r\n * Returns a string representation of an array.\r\n */\r\n toString(): string;\r\n\r\n [index: number]: number;\r\n}\r\n\r\ninterface Uint8ClampedArrayConstructor {\r\n readonly prototype: Uint8ClampedArray;\r\n new(length: number): Uint8ClampedArray;\r\n new(arrayOrArrayBuffer: ArrayLike | ArrayBufferLike): Uint8ClampedArray;\r\n new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Uint8ClampedArray;\r\n\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * Returns a new array from a set of elements.\r\n * @param items A set of elements to include in the new array object.\r\n */\r\n of(...items: number[]): Uint8ClampedArray;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n */\r\n from(arrayLike: ArrayLike): Uint8ClampedArray;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n * @param mapfn A mapping function to call on every element of the array.\r\n * @param thisArg Value of 'this' used to invoke the mapfn.\r\n */\r\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8ClampedArray;\r\n}\r\ndeclare var Uint8ClampedArray: Uint8ClampedArrayConstructor;\r\n\r\n/**\r\n * A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\n * requested number of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Int16Array {\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * The ArrayBuffer instance referenced by the array.\r\n */\r\n readonly buffer: ArrayBufferLike;\r\n\r\n /**\r\n * The length in bytes of the array.\r\n */\r\n readonly byteLength: number;\r\n\r\n /**\r\n * The offset in bytes of the array.\r\n */\r\n readonly byteOffset: number;\r\n\r\n /**\r\n * Returns the this object after copying a section of the array identified by start and end\r\n * to the same array starting at position target\r\n * @param target If target is negative, it is treated as length+target where length is the\r\n * length of the array.\r\n * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n * is treated as length+end.\r\n * @param end If not specified, length of the this object is used as its default value.\r\n */\r\n copyWithin(target: number, start: number, end?: number): this;\r\n\r\n /**\r\n * Determines whether all the members of an array satisfy the specified test.\r\n * @param callbackfn A function that accepts up to three arguments. The every method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value false, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n every(callbackfn: (value: number, index: number, array: Int16Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Returns the this object after filling the section identified by start and end with value\r\n * @param value value to fill array section with\r\n * @param start index to start filling the array at. If start is negative, it is treated as\r\n * length+start where length is the length of the array.\r\n * @param end index to stop filling the array at. If end is negative, it is treated as\r\n * length+end.\r\n */\r\n fill(value: number, start?: number, end?: number): this;\r\n\r\n /**\r\n * Returns the elements of an array that meet the condition specified in a callback function.\r\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n filter(callbackfn: (value: number, index: number, array: Int16Array) => any, thisArg?: any): Int16Array;\r\n\r\n /**\r\n * Returns the value of the first element in the array where predicate is true, and undefined\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found, find\r\n * immediately returns that element value. Otherwise, find returns undefined.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n find(predicate: (value: number, index: number, obj: Int16Array) => boolean, thisArg?: any): number | undefined;\r\n\r\n /**\r\n * Returns the index of the first element in the array where predicate is true, and -1\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found,\r\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n findIndex(predicate: (value: number, index: number, obj: Int16Array) => boolean, thisArg?: any): number;\r\n\r\n /**\r\n * Performs the specified action for each element in an array.\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n forEach(callbackfn: (value: number, index: number, array: Int16Array) => void, thisArg?: any): void;\r\n /**\r\n * Returns the index of the first occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * Adds all the elements of an array separated by the specified separator string.\r\n * @param separator A string used to separate one element of an array from the next in the\r\n * resulting String. If omitted, the array elements are separated with a comma.\r\n */\r\n join(separator?: string): string;\r\n\r\n /**\r\n * Returns the index of the last occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * The length of the array.\r\n */\r\n readonly length: number;\r\n\r\n /**\r\n * Calls a defined callback function on each element of an array, and returns an array that\r\n * contains the results.\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n map(callbackfn: (value: number, index: number, array: Int16Array) => number, thisArg?: any): Int16Array;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number): number;\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int16Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an\r\n * argument instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number): number;\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int16Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Reverses the elements in an Array.\r\n */\r\n reverse(): Int16Array;\r\n\r\n /**\r\n * Sets a value or an array of values.\r\n * @param array A typed or untyped array of values to set.\r\n * @param offset The index in the current array at which the values are to be written.\r\n */\r\n set(array: ArrayLike, offset?: number): void;\r\n\r\n /**\r\n * Returns a section of an array.\r\n * @param start The beginning of the specified portion of the array.\r\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n */\r\n slice(start?: number, end?: number): Int16Array;\r\n\r\n /**\r\n * Determines whether the specified callback function returns true for any element of an array.\r\n * @param callbackfn A function that accepts up to three arguments. The some method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value true, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n some(callbackfn: (value: number, index: number, array: Int16Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Sorts an array.\r\n * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\r\n * ```ts\r\n * [11,2,22,1].sort((a, b) => a - b)\r\n * ```\r\n */\r\n sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n /**\r\n * Gets a new Int16Array view of the ArrayBuffer store for this array, referencing the elements\r\n * at begin, inclusive, up to end, exclusive.\r\n * @param begin The index of the beginning of the array.\r\n * @param end The index of the end of the array.\r\n */\r\n subarray(begin?: number, end?: number): Int16Array;\r\n\r\n /**\r\n * Converts a number to a string by using the current locale.\r\n */\r\n toLocaleString(): string;\r\n\r\n /**\r\n * Returns a string representation of an array.\r\n */\r\n toString(): string;\r\n\r\n [index: number]: number;\r\n}\r\n\r\ninterface Int16ArrayConstructor {\r\n readonly prototype: Int16Array;\r\n new(length: number): Int16Array;\r\n new(arrayOrArrayBuffer: ArrayLike | ArrayBufferLike): Int16Array;\r\n new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Int16Array;\r\n\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * Returns a new array from a set of elements.\r\n * @param items A set of elements to include in the new array object.\r\n */\r\n of(...items: number[]): Int16Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n */\r\n from(arrayLike: ArrayLike): Int16Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n * @param mapfn A mapping function to call on every element of the array.\r\n * @param thisArg Value of 'this' used to invoke the mapfn.\r\n */\r\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int16Array;\r\n\r\n\r\n}\r\ndeclare var Int16Array: Int16ArrayConstructor;\r\n\r\n/**\r\n * A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\n * requested number of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Uint16Array {\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * The ArrayBuffer instance referenced by the array.\r\n */\r\n readonly buffer: ArrayBufferLike;\r\n\r\n /**\r\n * The length in bytes of the array.\r\n */\r\n readonly byteLength: number;\r\n\r\n /**\r\n * The offset in bytes of the array.\r\n */\r\n readonly byteOffset: number;\r\n\r\n /**\r\n * Returns the this object after copying a section of the array identified by start and end\r\n * to the same array starting at position target\r\n * @param target If target is negative, it is treated as length+target where length is the\r\n * length of the array.\r\n * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n * is treated as length+end.\r\n * @param end If not specified, length of the this object is used as its default value.\r\n */\r\n copyWithin(target: number, start: number, end?: number): this;\r\n\r\n /**\r\n * Determines whether all the members of an array satisfy the specified test.\r\n * @param callbackfn A function that accepts up to three arguments. The every method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value false, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n every(callbackfn: (value: number, index: number, array: Uint16Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Returns the this object after filling the section identified by start and end with value\r\n * @param value value to fill array section with\r\n * @param start index to start filling the array at. If start is negative, it is treated as\r\n * length+start where length is the length of the array.\r\n * @param end index to stop filling the array at. If end is negative, it is treated as\r\n * length+end.\r\n */\r\n fill(value: number, start?: number, end?: number): this;\r\n\r\n /**\r\n * Returns the elements of an array that meet the condition specified in a callback function.\r\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n filter(callbackfn: (value: number, index: number, array: Uint16Array) => any, thisArg?: any): Uint16Array;\r\n\r\n /**\r\n * Returns the value of the first element in the array where predicate is true, and undefined\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found, find\r\n * immediately returns that element value. Otherwise, find returns undefined.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n find(predicate: (value: number, index: number, obj: Uint16Array) => boolean, thisArg?: any): number | undefined;\r\n\r\n /**\r\n * Returns the index of the first element in the array where predicate is true, and -1\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found,\r\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n findIndex(predicate: (value: number, index: number, obj: Uint16Array) => boolean, thisArg?: any): number;\r\n\r\n /**\r\n * Performs the specified action for each element in an array.\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n forEach(callbackfn: (value: number, index: number, array: Uint16Array) => void, thisArg?: any): void;\r\n\r\n /**\r\n * Returns the index of the first occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * Adds all the elements of an array separated by the specified separator string.\r\n * @param separator A string used to separate one element of an array from the next in the\r\n * resulting String. If omitted, the array elements are separated with a comma.\r\n */\r\n join(separator?: string): string;\r\n\r\n /**\r\n * Returns the index of the last occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * The length of the array.\r\n */\r\n readonly length: number;\r\n\r\n /**\r\n * Calls a defined callback function on each element of an array, and returns an array that\r\n * contains the results.\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n map(callbackfn: (value: number, index: number, array: Uint16Array) => number, thisArg?: any): Uint16Array;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number): number;\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint16Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an\r\n * argument instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number): number;\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint16Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Reverses the elements in an Array.\r\n */\r\n reverse(): Uint16Array;\r\n\r\n /**\r\n * Sets a value or an array of values.\r\n * @param array A typed or untyped array of values to set.\r\n * @param offset The index in the current array at which the values are to be written.\r\n */\r\n set(array: ArrayLike, offset?: number): void;\r\n\r\n /**\r\n * Returns a section of an array.\r\n * @param start The beginning of the specified portion of the array.\r\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n */\r\n slice(start?: number, end?: number): Uint16Array;\r\n\r\n /**\r\n * Determines whether the specified callback function returns true for any element of an array.\r\n * @param callbackfn A function that accepts up to three arguments. The some method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value true, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n some(callbackfn: (value: number, index: number, array: Uint16Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Sorts an array.\r\n * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\r\n * ```ts\r\n * [11,2,22,1].sort((a, b) => a - b)\r\n * ```\r\n */\r\n sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n /**\r\n * Gets a new Uint16Array view of the ArrayBuffer store for this array, referencing the elements\r\n * at begin, inclusive, up to end, exclusive.\r\n * @param begin The index of the beginning of the array.\r\n * @param end The index of the end of the array.\r\n */\r\n subarray(begin?: number, end?: number): Uint16Array;\r\n\r\n /**\r\n * Converts a number to a string by using the current locale.\r\n */\r\n toLocaleString(): string;\r\n\r\n /**\r\n * Returns a string representation of an array.\r\n */\r\n toString(): string;\r\n\r\n [index: number]: number;\r\n}\r\n\r\ninterface Uint16ArrayConstructor {\r\n readonly prototype: Uint16Array;\r\n new(length: number): Uint16Array;\r\n new(arrayOrArrayBuffer: ArrayLike | ArrayBufferLike): Uint16Array;\r\n new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Uint16Array;\r\n\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * Returns a new array from a set of elements.\r\n * @param items A set of elements to include in the new array object.\r\n */\r\n of(...items: number[]): Uint16Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n */\r\n from(arrayLike: ArrayLike): Uint16Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n * @param mapfn A mapping function to call on every element of the array.\r\n * @param thisArg Value of 'this' used to invoke the mapfn.\r\n */\r\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint16Array;\r\n\r\n\r\n}\r\ndeclare var Uint16Array: Uint16ArrayConstructor;\r\n/**\r\n * A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\n * requested number of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Int32Array {\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * The ArrayBuffer instance referenced by the array.\r\n */\r\n readonly buffer: ArrayBufferLike;\r\n\r\n /**\r\n * The length in bytes of the array.\r\n */\r\n readonly byteLength: number;\r\n\r\n /**\r\n * The offset in bytes of the array.\r\n */\r\n readonly byteOffset: number;\r\n\r\n /**\r\n * Returns the this object after copying a section of the array identified by start and end\r\n * to the same array starting at position target\r\n * @param target If target is negative, it is treated as length+target where length is the\r\n * length of the array.\r\n * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n * is treated as length+end.\r\n * @param end If not specified, length of the this object is used as its default value.\r\n */\r\n copyWithin(target: number, start: number, end?: number): this;\r\n\r\n /**\r\n * Determines whether all the members of an array satisfy the specified test.\r\n * @param callbackfn A function that accepts up to three arguments. The every method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value false, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n every(callbackfn: (value: number, index: number, array: Int32Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Returns the this object after filling the section identified by start and end with value\r\n * @param value value to fill array section with\r\n * @param start index to start filling the array at. If start is negative, it is treated as\r\n * length+start where length is the length of the array.\r\n * @param end index to stop filling the array at. If end is negative, it is treated as\r\n * length+end.\r\n */\r\n fill(value: number, start?: number, end?: number): this;\r\n\r\n /**\r\n * Returns the elements of an array that meet the condition specified in a callback function.\r\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n filter(callbackfn: (value: number, index: number, array: Int32Array) => any, thisArg?: any): Int32Array;\r\n\r\n /**\r\n * Returns the value of the first element in the array where predicate is true, and undefined\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found, find\r\n * immediately returns that element value. Otherwise, find returns undefined.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n find(predicate: (value: number, index: number, obj: Int32Array) => boolean, thisArg?: any): number | undefined;\r\n\r\n /**\r\n * Returns the index of the first element in the array where predicate is true, and -1\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found,\r\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n findIndex(predicate: (value: number, index: number, obj: Int32Array) => boolean, thisArg?: any): number;\r\n\r\n /**\r\n * Performs the specified action for each element in an array.\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n forEach(callbackfn: (value: number, index: number, array: Int32Array) => void, thisArg?: any): void;\r\n\r\n /**\r\n * Returns the index of the first occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * Adds all the elements of an array separated by the specified separator string.\r\n * @param separator A string used to separate one element of an array from the next in the\r\n * resulting String. If omitted, the array elements are separated with a comma.\r\n */\r\n join(separator?: string): string;\r\n\r\n /**\r\n * Returns the index of the last occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * The length of the array.\r\n */\r\n readonly length: number;\r\n\r\n /**\r\n * Calls a defined callback function on each element of an array, and returns an array that\r\n * contains the results.\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n map(callbackfn: (value: number, index: number, array: Int32Array) => number, thisArg?: any): Int32Array;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number): number;\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int32Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an\r\n * argument instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number): number;\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int32Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Reverses the elements in an Array.\r\n */\r\n reverse(): Int32Array;\r\n\r\n /**\r\n * Sets a value or an array of values.\r\n * @param array A typed or untyped array of values to set.\r\n * @param offset The index in the current array at which the values are to be written.\r\n */\r\n set(array: ArrayLike, offset?: number): void;\r\n\r\n /**\r\n * Returns a section of an array.\r\n * @param start The beginning of the specified portion of the array.\r\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n */\r\n slice(start?: number, end?: number): Int32Array;\r\n\r\n /**\r\n * Determines whether the specified callback function returns true for any element of an array.\r\n * @param callbackfn A function that accepts up to three arguments. The some method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value true, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n some(callbackfn: (value: number, index: number, array: Int32Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Sorts an array.\r\n * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\r\n * ```ts\r\n * [11,2,22,1].sort((a, b) => a - b)\r\n * ```\r\n */\r\n sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n /**\r\n * Gets a new Int32Array view of the ArrayBuffer store for this array, referencing the elements\r\n * at begin, inclusive, up to end, exclusive.\r\n * @param begin The index of the beginning of the array.\r\n * @param end The index of the end of the array.\r\n */\r\n subarray(begin?: number, end?: number): Int32Array;\r\n\r\n /**\r\n * Converts a number to a string by using the current locale.\r\n */\r\n toLocaleString(): string;\r\n\r\n /**\r\n * Returns a string representation of an array.\r\n */\r\n toString(): string;\r\n\r\n [index: number]: number;\r\n}\r\n\r\ninterface Int32ArrayConstructor {\r\n readonly prototype: Int32Array;\r\n new(length: number): Int32Array;\r\n new(arrayOrArrayBuffer: ArrayLike | ArrayBufferLike): Int32Array;\r\n new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Int32Array;\r\n\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * Returns a new array from a set of elements.\r\n * @param items A set of elements to include in the new array object.\r\n */\r\n of(...items: number[]): Int32Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n */\r\n from(arrayLike: ArrayLike): Int32Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n * @param mapfn A mapping function to call on every element of the array.\r\n * @param thisArg Value of 'this' used to invoke the mapfn.\r\n */\r\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int32Array;\r\n\r\n}\r\ndeclare var Int32Array: Int32ArrayConstructor;\r\n\r\n/**\r\n * A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\n * requested number of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Uint32Array {\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * The ArrayBuffer instance referenced by the array.\r\n */\r\n readonly buffer: ArrayBufferLike;\r\n\r\n /**\r\n * The length in bytes of the array.\r\n */\r\n readonly byteLength: number;\r\n\r\n /**\r\n * The offset in bytes of the array.\r\n */\r\n readonly byteOffset: number;\r\n\r\n /**\r\n * Returns the this object after copying a section of the array identified by start and end\r\n * to the same array starting at position target\r\n * @param target If target is negative, it is treated as length+target where length is the\r\n * length of the array.\r\n * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n * is treated as length+end.\r\n * @param end If not specified, length of the this object is used as its default value.\r\n */\r\n copyWithin(target: number, start: number, end?: number): this;\r\n\r\n /**\r\n * Determines whether all the members of an array satisfy the specified test.\r\n * @param callbackfn A function that accepts up to three arguments. The every method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value false, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n every(callbackfn: (value: number, index: number, array: Uint32Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Returns the this object after filling the section identified by start and end with value\r\n * @param value value to fill array section with\r\n * @param start index to start filling the array at. If start is negative, it is treated as\r\n * length+start where length is the length of the array.\r\n * @param end index to stop filling the array at. If end is negative, it is treated as\r\n * length+end.\r\n */\r\n fill(value: number, start?: number, end?: number): this;\r\n\r\n /**\r\n * Returns the elements of an array that meet the condition specified in a callback function.\r\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n filter(callbackfn: (value: number, index: number, array: Uint32Array) => any, thisArg?: any): Uint32Array;\r\n\r\n /**\r\n * Returns the value of the first element in the array where predicate is true, and undefined\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found, find\r\n * immediately returns that element value. Otherwise, find returns undefined.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n find(predicate: (value: number, index: number, obj: Uint32Array) => boolean, thisArg?: any): number | undefined;\r\n\r\n /**\r\n * Returns the index of the first element in the array where predicate is true, and -1\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found,\r\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n findIndex(predicate: (value: number, index: number, obj: Uint32Array) => boolean, thisArg?: any): number;\r\n\r\n /**\r\n * Performs the specified action for each element in an array.\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n forEach(callbackfn: (value: number, index: number, array: Uint32Array) => void, thisArg?: any): void;\r\n /**\r\n * Returns the index of the first occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * Adds all the elements of an array separated by the specified separator string.\r\n * @param separator A string used to separate one element of an array from the next in the\r\n * resulting String. If omitted, the array elements are separated with a comma.\r\n */\r\n join(separator?: string): string;\r\n\r\n /**\r\n * Returns the index of the last occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * The length of the array.\r\n */\r\n readonly length: number;\r\n\r\n /**\r\n * Calls a defined callback function on each element of an array, and returns an array that\r\n * contains the results.\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n map(callbackfn: (value: number, index: number, array: Uint32Array) => number, thisArg?: any): Uint32Array;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number): number;\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint32Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an\r\n * argument instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number): number;\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint32Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Reverses the elements in an Array.\r\n */\r\n reverse(): Uint32Array;\r\n\r\n /**\r\n * Sets a value or an array of values.\r\n * @param array A typed or untyped array of values to set.\r\n * @param offset The index in the current array at which the values are to be written.\r\n */\r\n set(array: ArrayLike, offset?: number): void;\r\n\r\n /**\r\n * Returns a section of an array.\r\n * @param start The beginning of the specified portion of the array.\r\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n */\r\n slice(start?: number, end?: number): Uint32Array;\r\n\r\n /**\r\n * Determines whether the specified callback function returns true for any element of an array.\r\n * @param callbackfn A function that accepts up to three arguments. The some method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value true, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n some(callbackfn: (value: number, index: number, array: Uint32Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Sorts an array.\r\n * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\r\n * ```ts\r\n * [11,2,22,1].sort((a, b) => a - b)\r\n * ```\r\n */\r\n sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n /**\r\n * Gets a new Uint32Array view of the ArrayBuffer store for this array, referencing the elements\r\n * at begin, inclusive, up to end, exclusive.\r\n * @param begin The index of the beginning of the array.\r\n * @param end The index of the end of the array.\r\n */\r\n subarray(begin?: number, end?: number): Uint32Array;\r\n\r\n /**\r\n * Converts a number to a string by using the current locale.\r\n */\r\n toLocaleString(): string;\r\n\r\n /**\r\n * Returns a string representation of an array.\r\n */\r\n toString(): string;\r\n\r\n [index: number]: number;\r\n}\r\n\r\ninterface Uint32ArrayConstructor {\r\n readonly prototype: Uint32Array;\r\n new(length: number): Uint32Array;\r\n new(arrayOrArrayBuffer: ArrayLike | ArrayBufferLike): Uint32Array;\r\n new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Uint32Array;\r\n\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * Returns a new array from a set of elements.\r\n * @param items A set of elements to include in the new array object.\r\n */\r\n of(...items: number[]): Uint32Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n */\r\n from(arrayLike: ArrayLike): Uint32Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n * @param mapfn A mapping function to call on every element of the array.\r\n * @param thisArg Value of 'this' used to invoke the mapfn.\r\n */\r\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint32Array;\r\n\r\n}\r\ndeclare var Uint32Array: Uint32ArrayConstructor;\r\n\r\n/**\r\n * A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\n * of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Float32Array {\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * The ArrayBuffer instance referenced by the array.\r\n */\r\n readonly buffer: ArrayBufferLike;\r\n\r\n /**\r\n * The length in bytes of the array.\r\n */\r\n readonly byteLength: number;\r\n\r\n /**\r\n * The offset in bytes of the array.\r\n */\r\n readonly byteOffset: number;\r\n\r\n /**\r\n * Returns the this object after copying a section of the array identified by start and end\r\n * to the same array starting at position target\r\n * @param target If target is negative, it is treated as length+target where length is the\r\n * length of the array.\r\n * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n * is treated as length+end.\r\n * @param end If not specified, length of the this object is used as its default value.\r\n */\r\n copyWithin(target: number, start: number, end?: number): this;\r\n\r\n /**\r\n * Determines whether all the members of an array satisfy the specified test.\r\n * @param callbackfn A function that accepts up to three arguments. The every method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value false, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n every(callbackfn: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Returns the this object after filling the section identified by start and end with value\r\n * @param value value to fill array section with\r\n * @param start index to start filling the array at. If start is negative, it is treated as\r\n * length+start where length is the length of the array.\r\n * @param end index to stop filling the array at. If end is negative, it is treated as\r\n * length+end.\r\n */\r\n fill(value: number, start?: number, end?: number): this;\r\n\r\n /**\r\n * Returns the elements of an array that meet the condition specified in a callback function.\r\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n filter(callbackfn: (value: number, index: number, array: Float32Array) => any, thisArg?: any): Float32Array;\r\n\r\n /**\r\n * Returns the value of the first element in the array where predicate is true, and undefined\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found, find\r\n * immediately returns that element value. Otherwise, find returns undefined.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n find(predicate: (value: number, index: number, obj: Float32Array) => boolean, thisArg?: any): number | undefined;\r\n\r\n /**\r\n * Returns the index of the first element in the array where predicate is true, and -1\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found,\r\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n findIndex(predicate: (value: number, index: number, obj: Float32Array) => boolean, thisArg?: any): number;\r\n\r\n /**\r\n * Performs the specified action for each element in an array.\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n forEach(callbackfn: (value: number, index: number, array: Float32Array) => void, thisArg?: any): void;\r\n\r\n /**\r\n * Returns the index of the first occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * Adds all the elements of an array separated by the specified separator string.\r\n * @param separator A string used to separate one element of an array from the next in the\r\n * resulting String. If omitted, the array elements are separated with a comma.\r\n */\r\n join(separator?: string): string;\r\n\r\n /**\r\n * Returns the index of the last occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * The length of the array.\r\n */\r\n readonly length: number;\r\n\r\n /**\r\n * Calls a defined callback function on each element of an array, and returns an array that\r\n * contains the results.\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n map(callbackfn: (value: number, index: number, array: Float32Array) => number, thisArg?: any): Float32Array;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number): number;\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an\r\n * argument instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number): number;\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Reverses the elements in an Array.\r\n */\r\n reverse(): Float32Array;\r\n\r\n /**\r\n * Sets a value or an array of values.\r\n * @param array A typed or untyped array of values to set.\r\n * @param offset The index in the current array at which the values are to be written.\r\n */\r\n set(array: ArrayLike, offset?: number): void;\r\n\r\n /**\r\n * Returns a section of an array.\r\n * @param start The beginning of the specified portion of the array.\r\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n */\r\n slice(start?: number, end?: number): Float32Array;\r\n\r\n /**\r\n * Determines whether the specified callback function returns true for any element of an array.\r\n * @param callbackfn A function that accepts up to three arguments. The some method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value true, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n some(callbackfn: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Sorts an array.\r\n * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\r\n * ```ts\r\n * [11,2,22,1].sort((a, b) => a - b)\r\n * ```\r\n */\r\n sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n /**\r\n * Gets a new Float32Array view of the ArrayBuffer store for this array, referencing the elements\r\n * at begin, inclusive, up to end, exclusive.\r\n * @param begin The index of the beginning of the array.\r\n * @param end The index of the end of the array.\r\n */\r\n subarray(begin?: number, end?: number): Float32Array;\r\n\r\n /**\r\n * Converts a number to a string by using the current locale.\r\n */\r\n toLocaleString(): string;\r\n\r\n /**\r\n * Returns a string representation of an array.\r\n */\r\n toString(): string;\r\n\r\n [index: number]: number;\r\n}\r\n\r\ninterface Float32ArrayConstructor {\r\n readonly prototype: Float32Array;\r\n new(length: number): Float32Array;\r\n new(arrayOrArrayBuffer: ArrayLike | ArrayBufferLike): Float32Array;\r\n new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Float32Array;\r\n\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * Returns a new array from a set of elements.\r\n * @param items A set of elements to include in the new array object.\r\n */\r\n of(...items: number[]): Float32Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n */\r\n from(arrayLike: ArrayLike): Float32Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n * @param mapfn A mapping function to call on every element of the array.\r\n * @param thisArg Value of 'this' used to invoke the mapfn.\r\n */\r\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Float32Array;\r\n\r\n\r\n}\r\ndeclare var Float32Array: Float32ArrayConstructor;\r\n\r\n/**\r\n * A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\n * number of bytes could not be allocated an exception is raised.\r\n */\r\ninterface Float64Array {\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * The ArrayBuffer instance referenced by the array.\r\n */\r\n readonly buffer: ArrayBufferLike;\r\n\r\n /**\r\n * The length in bytes of the array.\r\n */\r\n readonly byteLength: number;\r\n\r\n /**\r\n * The offset in bytes of the array.\r\n */\r\n readonly byteOffset: number;\r\n\r\n /**\r\n * Returns the this object after copying a section of the array identified by start and end\r\n * to the same array starting at position target\r\n * @param target If target is negative, it is treated as length+target where length is the\r\n * length of the array.\r\n * @param start If start is negative, it is treated as length+start. If end is negative, it\r\n * is treated as length+end.\r\n * @param end If not specified, length of the this object is used as its default value.\r\n */\r\n copyWithin(target: number, start: number, end?: number): this;\r\n\r\n /**\r\n * Determines whether all the members of an array satisfy the specified test.\r\n * @param callbackfn A function that accepts up to three arguments. The every method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value false, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n every(callbackfn: (value: number, index: number, array: Float64Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Returns the this object after filling the section identified by start and end with value\r\n * @param value value to fill array section with\r\n * @param start index to start filling the array at. If start is negative, it is treated as\r\n * length+start where length is the length of the array.\r\n * @param end index to stop filling the array at. If end is negative, it is treated as\r\n * length+end.\r\n */\r\n fill(value: number, start?: number, end?: number): this;\r\n\r\n /**\r\n * Returns the elements of an array that meet the condition specified in a callback function.\r\n * @param callbackfn A function that accepts up to three arguments. The filter method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n filter(callbackfn: (value: number, index: number, array: Float64Array) => any, thisArg?: any): Float64Array;\r\n\r\n /**\r\n * Returns the value of the first element in the array where predicate is true, and undefined\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found, find\r\n * immediately returns that element value. Otherwise, find returns undefined.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n find(predicate: (value: number, index: number, obj: Float64Array) => boolean, thisArg?: any): number | undefined;\r\n\r\n /**\r\n * Returns the index of the first element in the array where predicate is true, and -1\r\n * otherwise.\r\n * @param predicate find calls predicate once for each element of the array, in ascending\r\n * order, until it finds one where predicate returns true. If such an element is found,\r\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\r\n * @param thisArg If provided, it will be used as the this value for each invocation of\r\n * predicate. If it is not provided, undefined is used instead.\r\n */\r\n findIndex(predicate: (value: number, index: number, obj: Float64Array) => boolean, thisArg?: any): number;\r\n\r\n /**\r\n * Performs the specified action for each element in an array.\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n forEach(callbackfn: (value: number, index: number, array: Float64Array) => void, thisArg?: any): void;\r\n\r\n /**\r\n * Returns the index of the first occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n indexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * Adds all the elements of an array separated by the specified separator string.\r\n * @param separator A string used to separate one element of an array from the next in the\r\n * resulting String. If omitted, the array elements are separated with a comma.\r\n */\r\n join(separator?: string): string;\r\n\r\n /**\r\n * Returns the index of the last occurrence of a value in an array.\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\r\n * search starts at index 0.\r\n */\r\n lastIndexOf(searchElement: number, fromIndex?: number): number;\r\n\r\n /**\r\n * The length of the array.\r\n */\r\n readonly length: number;\r\n\r\n /**\r\n * Calls a defined callback function on each element of an array, and returns an array that\r\n * contains the results.\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n map(callbackfn: (value: number, index: number, array: Float64Array) => number, thisArg?: any): Float64Array;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number): number;\r\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array. The return value of\r\n * the callback function is the accumulated result, and is provided as an argument in the next\r\n * call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\r\n * callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an\r\n * argument instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number): number;\r\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number, initialValue: number): number;\r\n\r\n /**\r\n * Calls the specified callback function for all the elements in an array, in descending order.\r\n * The return value of the callback function is the accumulated result, and is provided as an\r\n * argument in the next call to the callback function.\r\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\r\n * the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start\r\n * the accumulation. The first call to the callbackfn function provides this value as an argument\r\n * instead of an array value.\r\n */\r\n reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array) => U, initialValue: U): U;\r\n\r\n /**\r\n * Reverses the elements in an Array.\r\n */\r\n reverse(): Float64Array;\r\n\r\n /**\r\n * Sets a value or an array of values.\r\n * @param array A typed or untyped array of values to set.\r\n * @param offset The index in the current array at which the values are to be written.\r\n */\r\n set(array: ArrayLike, offset?: number): void;\r\n\r\n /**\r\n * Returns a section of an array.\r\n * @param start The beginning of the specified portion of the array.\r\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\n */\r\n slice(start?: number, end?: number): Float64Array;\r\n\r\n /**\r\n * Determines whether the specified callback function returns true for any element of an array.\r\n * @param callbackfn A function that accepts up to three arguments. The some method calls\r\n * the callbackfn function for each element in the array until the callbackfn returns a value\r\n * which is coercible to the Boolean value true, or until the end of the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\r\n * If thisArg is omitted, undefined is used as the this value.\r\n */\r\n some(callbackfn: (value: number, index: number, array: Float64Array) => unknown, thisArg?: any): boolean;\r\n\r\n /**\r\n * Sorts an array.\r\n * @param compareFn Function used to determine the order of the elements. It is expected to return\r\n * a negative value if first argument is less than second argument, zero if they're equal and a positive\r\n * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\r\n * ```ts\r\n * [11,2,22,1].sort((a, b) => a - b)\r\n * ```\r\n */\r\n sort(compareFn?: (a: number, b: number) => number): this;\r\n\r\n /**\r\n * at begin, inclusive, up to end, exclusive.\r\n * @param begin The index of the beginning of the array.\r\n * @param end The index of the end of the array.\r\n */\r\n subarray(begin?: number, end?: number): Float64Array;\r\n\r\n toString(): string;\r\n\r\n [index: number]: number;\r\n}\r\n\r\ninterface Float64ArrayConstructor {\r\n readonly prototype: Float64Array;\r\n new(length: number): Float64Array;\r\n new(arrayOrArrayBuffer: ArrayLike | ArrayBufferLike): Float64Array;\r\n new(buffer: ArrayBufferLike, byteOffset: number, length?: number): Float64Array;\r\n\r\n /**\r\n * The size in bytes of each element in the array.\r\n */\r\n readonly BYTES_PER_ELEMENT: number;\r\n\r\n /**\r\n * Returns a new array from a set of elements.\r\n * @param items A set of elements to include in the new array object.\r\n */\r\n of(...items: number[]): Float64Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n */\r\n from(arrayLike: ArrayLike): Float64Array;\r\n\r\n /**\r\n * Creates an array from an array-like or iterable object.\r\n * @param arrayLike An array-like or iterable object to convert to an array.\r\n * @param mapfn A mapping function to call on every element of the array.\r\n * @param thisArg Value of 'this' used to invoke the mapfn.\r\n */\r\n from(arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Float64Array;\r\n\r\n}\r\ndeclare var Float64Array: Float64ArrayConstructor;\r\n\r\n/////////////////////////////\r\n/// ECMAScript Internationalization API\r\n/////////////////////////////\r\n\r\ndeclare namespace Intl {\r\n interface CollatorOptions {\r\n usage?: string;\r\n localeMatcher?: string;\r\n numeric?: boolean;\r\n caseFirst?: string;\r\n sensitivity?: string;\r\n ignorePunctuation?: boolean;\r\n }\r\n\r\n interface ResolvedCollatorOptions {\r\n locale: string;\r\n usage: string;\r\n sensitivity: string;\r\n ignorePunctuation: boolean;\r\n collation: string;\r\n caseFirst: string;\r\n numeric: boolean;\r\n }\r\n\r\n interface Collator {\r\n compare(x: string, y: string): number;\r\n resolvedOptions(): ResolvedCollatorOptions;\r\n }\r\n var Collator: {\r\n new(locales?: string | string[], options?: CollatorOptions): Collator;\r\n (locales?: string | string[], options?: CollatorOptions): Collator;\r\n supportedLocalesOf(locales: string | string[], options?: CollatorOptions): string[];\r\n };\r\n\r\n interface NumberFormatOptions {\r\n localeMatcher?: string;\r\n style?: string;\r\n currency?: string;\r\n currencyDisplay?: string;\r\n useGrouping?: boolean;\r\n minimumIntegerDigits?: number;\r\n minimumFractionDigits?: number;\r\n maximumFractionDigits?: number;\r\n minimumSignificantDigits?: number;\r\n maximumSignificantDigits?: number;\r\n }\r\n\r\n interface ResolvedNumberFormatOptions {\r\n locale: string;\r\n numberingSystem: string;\r\n style: string;\r\n currency?: string;\r\n currencyDisplay?: string;\r\n minimumIntegerDigits: number;\r\n minimumFractionDigits: number;\r\n maximumFractionDigits: number;\r\n minimumSignificantDigits?: number;\r\n maximumSignificantDigits?: number;\r\n useGrouping: boolean;\r\n }\r\n\r\n interface NumberFormat {\r\n format(value: number): string;\r\n resolvedOptions(): ResolvedNumberFormatOptions;\r\n }\r\n var NumberFormat: {\r\n new(locales?: string | string[], options?: NumberFormatOptions): NumberFormat;\r\n (locales?: string | string[], options?: NumberFormatOptions): NumberFormat;\r\n supportedLocalesOf(locales: string | string[], options?: NumberFormatOptions): string[];\r\n };\r\n\r\n interface DateTimeFormatOptions {\r\n localeMatcher?: string;\r\n weekday?: string;\r\n era?: string;\r\n year?: string;\r\n month?: string;\r\n day?: string;\r\n hour?: string;\r\n minute?: string;\r\n second?: string;\r\n timeZoneName?: string;\r\n formatMatcher?: string;\r\n hour12?: boolean;\r\n timeZone?: string;\r\n }\r\n\r\n interface ResolvedDateTimeFormatOptions {\r\n locale: string;\r\n calendar: string;\r\n numberingSystem: string;\r\n timeZone: string;\r\n hour12?: boolean;\r\n weekday?: string;\r\n era?: string;\r\n year?: string;\r\n month?: string;\r\n day?: string;\r\n hour?: string;\r\n minute?: string;\r\n second?: string;\r\n timeZoneName?: string;\r\n }\r\n\r\n interface DateTimeFormat {\r\n format(date?: Date | number): string;\r\n resolvedOptions(): ResolvedDateTimeFormatOptions;\r\n }\r\n var DateTimeFormat: {\r\n new(locales?: string | string[], options?: DateTimeFormatOptions): DateTimeFormat;\r\n (locales?: string | string[], options?: DateTimeFormatOptions): DateTimeFormat;\r\n supportedLocalesOf(locales: string | string[], options?: DateTimeFormatOptions): string[];\r\n };\r\n}\r\n\r\ninterface String {\r\n /**\r\n * Determines whether two strings are equivalent in the current or specified locale.\r\n * @param that String to compare to target string\r\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. This parameter must conform to BCP 47 standards; see the Intl.Collator object for details.\r\n * @param options An object that contains one or more properties that specify comparison options. see the Intl.Collator object for details.\r\n */\r\n localeCompare(that: string, locales?: string | string[], options?: Intl.CollatorOptions): number;\r\n}\r\n\r\ninterface Number {\r\n /**\r\n * Converts a number to a string by using the current or specified locale.\r\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\r\n * @param options An object that contains one or more properties that specify comparison options.\r\n */\r\n toLocaleString(locales?: string | string[], options?: Intl.NumberFormatOptions): string;\r\n}\r\n\r\ninterface Date {\r\n /**\r\n * Converts a date and time to a string by using the current or specified locale.\r\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\r\n * @param options An object that contains one or more properties that specify comparison options.\r\n */\r\n toLocaleString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;\r\n /**\r\n * Converts a date to a string by using the current or specified locale.\r\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\r\n * @param options An object that contains one or more properties that specify comparison options.\r\n */\r\n toLocaleDateString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;\r\n\r\n /**\r\n * Converts a time to a string by using the current or specified locale.\r\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\r\n * @param options An object that contains one or more properties that specify comparison options.\r\n */\r\n toLocaleTimeString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;\r\n}\r\n\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved. \nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0 \n \nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \nMERCHANTABLITY OR NON-INFRINGEMENT. \n \nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// \r\n\n\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved. \nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0 \n \nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \nMERCHANTABLITY OR NON-INFRINGEMENT. \n \nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// \r\n\n\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved. \nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0 \n \nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \nMERCHANTABLITY OR NON-INFRINGEMENT. \n \nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// \r\n\n\ninterface Map {\r\n clear(): void;\r\n delete(key: K): boolean;\r\n forEach(callbackfn: (value: V, key: K, map: Map) => void, thisArg?: any): void;\r\n get(key: K): V | undefined;\r\n has(key: K): boolean;\r\n set(key: K, value: V): this;\r\n readonly size: number;\r\n}\r\n\r\ninterface MapConstructor {\r\n new(): Map;\r\n new(entries?: readonly (readonly [K, V])[] | null): Map;\r\n readonly prototype: Map;\r\n}\r\ndeclare var Map: MapConstructor;\r\n\r\ninterface ReadonlyMap {\r\n forEach(callbackfn: (value: V, key: K, map: ReadonlyMap) => void, thisArg?: any): void;\r\n get(key: K): V | undefined;\r\n has(key: K): boolean;\r\n readonly size: number;\r\n}\r\n\r\ninterface WeakMap {\r\n delete(key: K): boolean;\r\n get(key: K): V | undefined;\r\n has(key: K): boolean;\r\n set(key: K, value: V): this;\r\n}\r\n\r\ninterface WeakMapConstructor {\r\n new (entries?: readonly [K, V][] | null): WeakMap;\r\n readonly prototype: WeakMap;\r\n}\r\ndeclare var WeakMap: WeakMapConstructor;\r\n\r\ninterface Set {\r\n add(value: T): this;\r\n clear(): void;\r\n delete(value: T): boolean;\r\n forEach(callbackfn: (value: T, value2: T, set: Set) => void, thisArg?: any): void;\r\n has(value: T): boolean;\r\n readonly size: number;\r\n}\r\n\r\ninterface SetConstructor {\r\n new (values?: readonly T[] | null): Set;\r\n readonly prototype: Set;\r\n}\r\ndeclare var Set: SetConstructor;\r\n\r\ninterface ReadonlySet {\r\n forEach(callbackfn: (value: T, value2: T, set: ReadonlySet) => void, thisArg?: any): void;\r\n has(value: T): boolean;\r\n readonly size: number;\r\n}\r\n\r\ninterface WeakSet {\r\n add(value: T): this;\r\n delete(value: T): boolean;\r\n has(value: T): boolean;\r\n}\r\n\r\ninterface WeakSetConstructor {\r\n new (values?: readonly T[] | null): WeakSet;\r\n readonly prototype: WeakSet;\r\n}\r\ndeclare var WeakSet: WeakSetConstructor;\r\n\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved. \nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0 \n \nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, \nMERCHANTABLITY OR NON-INFRINGEMENT. \n \nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n\n/// \r\n\n\ninterface PromiseConstructor {\r\n /**\r\n * A reference to the prototype.\r\n */\r\n readonly prototype: Promise;\r\n\r\n /**\r\n * Creates a new Promise.\r\n * @param executor A callback used to initialize the promise. This callback is passed two arguments:\r\n * a resolve callback used to resolve the promise with a value or the result of another promise,\r\n * and a reject callback used to reject the promise with a provided reason or error.\r\n */\r\n new (executor: (resolve: (value?: T | PromiseLike) => void, reject: (reason?: any) => void) => void): Promise;\r\n\r\n /**\r\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\r\n * resolve, or rejected when any Promise is rejected.\r\n * @param values An array of Promises.\r\n * @returns A new Promise.\r\n */\r\n all(values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike, T10 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;\r\n\r\n /**\r\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\r\n * resolve, or rejected when any Promise is rejected.\r\n * @param values An array of Promises.\r\n * @returns A new Promise.\r\n */\r\n all(values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;\r\n\r\n /**\r\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\r\n * resolve, or rejected when any Promise is rejected.\r\n * @param values An array of Promises.\r\n * @returns A new Promise.\r\n */\r\n all(values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;\r\n\r\n /**\r\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\r\n * resolve, or rejected when any Promise is rejected.\r\n * @param values An array of Promises.\r\n * @returns A new Promise.\r\n */\r\n all(values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;\r\n\r\n /**\r\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\r\n * resolve, or rejected when any Promise is rejected.\r\n * @param values An array of Promises.\r\n * @returns A new Promise.\r\n */\r\n all(values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6]>;\r\n\r\n /**\r\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\r\n * resolve, or rejected when any Promise is rejected.\r\n * @param values An array of Promises.\r\n * @returns A new Promise.\r\n */\r\n all(values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike]): Promise<[T1, T2, T3, T4, T5]>;\r\n\r\n /**\r\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\r\n * resolve, or rejected when any Promise is rejected.\r\n * @param values An array of Promises.\r\n * @returns A new Promise.\r\n */\r\n all(values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike ]): Promise<[T1, T2, T3, T4]>;\r\n\r\n /**\r\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\r\n * resolve, or rejected when any Promise is rejected.\r\n * @param values An array of Promises.\r\n * @returns A new Promise.\r\n */\r\n all(values: readonly [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike]): Promise<[T1, T2, T3]>;\r\n\r\n /**\r\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\r\n * resolve, or rejected when any Promise is rejected.\r\n * @param values An array of Promises.\r\n * @returns A new Promise.\r\n */\r\n all(values: readonly [T1 | PromiseLike, T2 | PromiseLike]): Promise<[T1, T2]>;\r\n\r\n /**\r\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\r\n * resolve, or rejected when any Promise is rejected.\r\n * @param values An array of Promises.\r\n * @returns A new Promise.\r\n */\r\n all(values: readonly (T | PromiseLike)[]): Promise;\r\n\r\n /**\r\n * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\r\n * or rejected.\r\n * @param values An array of Promises.\r\n * @returns A new Promise.\r\n */\r\n race(values: readonly T[]): Promise ? U : T>;\r\n\r\n /**\r\n * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\r\n * or rejected.\r\n * @param values An iterable of Promises.\r\n * @returns A new Promise.\r\n */\r\n race(values: Iterable): Promise ? U : T>;\r\n\r\n /**\r\n * Creates a new rejected promise for the provided reason.\r\n * @param reason The reason the promise was rejected.\r\n * @returns A new rejected Promise.\r\n */\r\n reject(reason?: any): Promise;\r\n\r\n /**\r\n * Creates a new resolved promise for the provided value.\r\n * @param value A promise.\r\n * @returns A promise whose internal state matches the provided promise.\r\n */\r\n resolve(value: T | PromiseLike): Promise;\r\n\r\n /**\r\n * Creates a new resolved promise .\r\n * @returns A resolved promise.\r\n */\r\n resolve(): Promise;\r\n}\r\n\r\ndeclare var Promise: PromiseConstructor;\r\n\n//import {\n IAliasParams,\n IAliasTransaction,\n IBurnParams,\n IBurnTransaction,\n ICancelLeaseParams,\n ICancelLeaseTransaction,\n ICancelOrder,\n ICancelOrderParams,\n IDataParams,\n IDataTransaction,\n IInvokeScriptParams,\n IInvokeScriptTransaction,\n IIssueParams,\n IIssueTransaction,\n ILeaseParams,\n ILeaseTransaction,\n IMassTransferItem,\n IMassTransferParams,\n IMassTransferTransaction,\n IOrderParams,\n IReissueParams,\n IReissueTransaction,\n ISetAssetScriptParams,\n ISetAssetScriptTransaction,\n ISetScriptParams,\n ISetScriptTransaction,\n ISponsorshipParams,\n ISponsorshipTransaction,\n ITransferParams,\n ITransferTransaction,\n TOrder,\n TSeedTypes,\n TTx,\n TTxParams,\n WithId,\n WithTxType,\n INodeRequestOptions,\n TDataEntry, ITransaction, IUpdateAssetInfoParams, IUpdateAssetInfoTransaction\n} from '@waves/waves-transactions';\n\n///splice-start\n {\n\n var env: {\n API_BASE: string,\n SEED: string,\n CHAIN_ID: string,\n }\n ///splice-end\n /**\n * Contains seeds generated by setupAccounts function\n * E.g:\n * ```ts\n * await setupAccounts({foo:10, bar: 20})\n * console.log(accounts.foo, accounts.bar) // these variables now contain seeds from accounts with 10 and 20 wavelets\n * ```\n */\n var accounts: Record;\n\n\n/// TRANSACTION CREATORS\n /**\n * Creates alias transaction or signs already formed one. Creates alias for address.\n * Alias could be used in place of address later\n */\n function alias(params: IAliasParams, seed?: TSeedTypes): IAliasTransaction & WithId\n\n /**\n * Creates burn transaction or signs already formed one. Burn transaction destroys tokens. You cannot burn WAVES\n */\n function burn(params: IBurnParams, seed?: TSeedTypes): IBurnTransaction & WithId\n\n /**\n * Creates cancel-lease transaction or signs already formed one\n */\n function cancelLease(params: ICancelLeaseParams, seed?: TSeedTypes): ICancelLeaseTransaction & WithId\n\n /**\n * Creates cancel-order request or signs already formed one\n */\n function cancelOrder(params: ICancelOrderParams, seed?: TSeedTypes): ICancelOrder\n\n /**\n * Creates data transaction or signs already formed one\n */\n function data(params: IDataParams, seed?: TSeedTypes): IDataTransaction & WithId\n\n /**\n * Creates issue transaction or signs already formed one\n */\n function issue(params: IIssueParams, seed?: TSeedTypes): IIssueTransaction & WithId\n\n /**\n * Creates reissue transaction or signs already formed one\n */\n function reissue(params: IReissueParams, seed?: TSeedTypes): IReissueTransaction & WithId\n\n /**\n * Creates lease transaction or signs already formed one\n */\n function lease(params: ILeaseParams, seed?: TSeedTypes): ILeaseTransaction & WithId\n\n /**\n * Creates mass-transfer transaction or signs already formed one\n */\n function massTransfer(params: IMassTransferParams, seed?: TSeedTypes): IMassTransferTransaction & WithId\n\n /**\n * Creates order or signs already formed one\n */\n function order(params: IOrderParams, seed?: TSeedTypes): TOrder & WithId\n\n /**\n * Creates transfer transaction or signs already formed one\n */\n function transfer(params: ITransferParams, seed?: TSeedTypes): ITransferTransaction & WithId\n\n /**\n * Creates set-script transaction or signs already formed one\n */\n function setScript(params: ISetScriptParams, seed?: TSeedTypes): ISetScriptTransaction & WithId\n\n /**\n * Creates set-asset-script transaction or signs already formed one\n */\n function setAssetScript(params: ISetAssetScriptParams, seed?: TSeedTypes): ISetAssetScriptTransaction & WithId\n\n /**\n * Creates invoke-script transaction or signs already formed one\n */\n function invokeScript(params: IInvokeScriptParams, seed?: TSeedTypes): IInvokeScriptTransaction & WithId\n\n /**\n * Creates sponsorship transaction or signs already formed one\n */\n function sponsorship(params: ISponsorshipParams, seed?: TSeedTypes): ISponsorshipTransaction & WithId\n\n /**\n * Creates updateAssetInfo transaction or signs already formed one\n */\n function updateAssetInfo(params: IUpdateAssetInfoParams, seed?: TSeedTypes): IUpdateAssetInfoTransaction & WithId\n\n\n /**\n * Signs arbitrary transaction\n */\n function signTx(params: TTx | (TTxParams & WithTxType), seed?: TSeedTypes): TTx\n\n\n/// NODE INTERACTION\n /**\n * Resolves when specified txId is mined into the block\n * By default has 20s timeout and uses current environment node\n *\n * ### Usage\n * ```ts\n * const tx = .....\n * await broadcast(tx)\n * await waitForTx(tx.id)\n * ```\n */\n function waitForTx(txId: string, options?: INodeRequestOptions, requestOptions?: RequestInit): Promise\n\n /**\n * Resolves N blocks after specified txId is mined into the block\n * By default has 20s timeout and uses current environment node\n */\n function waitForTxWithNConfirmations(txId: string, confirmations: number, options?: INodeRequestOptions, requestOptions?: RequestInit): Promise\n\n /**\n * Resolves N blocks after current blockchain height\n * By default has 20s timeout and uses current environment node\n */\n function waitNBlocks(blocksCount: number, options?: INodeRequestOptions, requestOptions?: RequestInit): Promise\n\n /**\n * Current blockchain height\n * By default has 20s timeout and uses current environment node\n */\n function currentHeight(apiBase?: string, requestOptions?: RequestInit): Promise\n\n /**\n * Resolves after target height has been reached\n * By default has 20s timeout and uses current environment node\n */\n function waitForHeight(target: number, options?: INodeRequestOptions, requestOptions?: RequestInit): Promise\n\n /**\n * Get transaction by Id. Returns null if no transaction with such id present in blockchain\n */\n function transactionById(txId: string, apiBase?: string, requestOptions?: RequestInit): Promise;\n\n /**\n * Get account effective balance\n * By default uses current environment address and node\n */\n function balance(address?: string, apiBase?: string, requestOptions?: RequestInit): Promise\n\n /**\n * Retrieve information about specific asset account balance\n * By default uses current environment address and node\n */\n function assetBalance(assetId: string, address?: string, apiBase?: string, requestOptions?: RequestInit): Promise\n\n /**\n * Retrieve full information about waves account balance. Effective, generating etc\n * By default uses current environment address and node\n */\n function balanceDetails(address?: string, apiBase?: string, requestOptions?: RequestInit): Promise\n\n /**\n * Get full account dictionary\n * By default uses current environment address and node\n */\n function accountData(address?: string, apiBase?: string, requestOptions?: RequestInit): Promise>\n\n /**\n * Get data from account dictionary by key\n * By default uses current environment address and node\n */\n function accountDataByKey(key: string, address?: string, apiBase?: string, requestOptions?: RequestInit): Promise\n\n /**\n * Get invokeScript tx state changes\n * By default uses current environment address and node\n */\n function stateChanges(invokeScriptTxId: string, apiBase?: string, requestOptions?: RequestInit): Promise\n\n /**\n * Sends transaction to waves node\n * By default uses current environment address and node\n */\n function broadcast(tx: TTx, apiBase?: string, requestOptions?: RequestInit): Promise\n\n\n// UTILITY\n /**\n * Returns file content as string. Either from 'ride' folder or WEB IDE storage\n */\n function file(name?: string): string\n\n /**\n * Shorthand for file()\n */\n function contract(): Promise\n\n /**\n * Generates key pair from seed\n * By default uses current environment seed\n */\n function keyPair(seed?: string): { publicKey: string, privateKey: string }\n\n /**\n * Generates public key from seed\n * By default uses current environment seed\n */\n function publicKey(seed?: string): string\n\n /**\n * Generates private key from seed\n * By default uses current environment seed\n */\n function privateKey(seed?: string): string\n\n /**\n * Generates address\n * By default uses current environment seed and chainId\n */\n function address(seed?: string, chainId?: string): string\n\n /**\n * Returns base64 representations of compiled ride file\n */\n function compile(code: string): string\n\n /**\n * Signs arbitrary bytes\n * By default uses current environment seed and chainId\n */\n function signBytes(bytes: Uint8Array, seed?: string): string\n\n\n interface ISetupAccountsOptions {\n /**\n * Generated accounts have seed like 'name#' + nonce. E.g.: foo#ff4682. By default nonce is chosen randomly\n * you can set nonce to have consistent seeds between tests\n */\n nonce?: string,\n /**\n * Seed phrase for account, from which waves will be transferred to generated accounts.\n * If not set current account will be used\n */\n masterSeed?: string,\n }\n\n interface IPayment {\n assetId?: string | null\n amount: number\n }\n\n interface IPayment {\n assetId?: string | null\n amount: number\n }\n\n interface IInvokeArgument {\n /**\n * possible values: \"string\" | \"number\" | \"binary\" | \"boolean\"\n */\n type: string,\n value: string | number | boolean\n }\n\n interface IInvokeOptions {\n dApp: string\n functionName: string\n arguments?: (number | string | boolean | Uint8Array | number[] | IInvokeArgument)[]\n payment?: IPayment | IPayment[] | number\n }\n\n /**\n * Creates invoke tx and broadcasts it\n * */\n function invoke(options: IInvokeOptions, seed?: string, apiBase?: string, requestOptions?: RequestInit): Promise;\n\n /**\n * Generates test accounts with balances. Sends waves to generated accounts from master seed. Saves account seeds `accounts`\n * E.g.: setupAccounts({foo:1000}). Now accounts['foo'] contains seed phrase for account and this account has\n * 1000 wavelets\n * By default uses current environment node and seed as masterSeed\n *\n * ### Usage\n * ```ts\n * const wvs = 10 ** 8\n * describe('some suite', () => {\n * before(async ()) => {\n * await setupAccounts({foo: 1 * wvs, bar: 2 * wvs})\n * })\n *\n * it('logs balances', async () => {\n * console.log(await balance(address(accounts.foo)))\n * console.log(await balance(address(accounts.bar)))\n * })\n * })\n * ```\n */\n function setupAccounts(balances: Record, options?: ISetupAccountsOptions, requestOptions?: RequestInit): Promise>\n\n /**\n * Shorthand for `chai.//` [[chai]]\n */\n function //(target: any, message?: string): any\n\n /**\n * Waves-crypto library https://www.npmjs.com/package/@waves/waves-crypto\n * Available in global scope:\n * ```js\n * const addressBytes = crypto.base58Decode('3N77yhDrPTdLFjzNPZcBQPZLDg11EHAB7xF')\n * ```\n */\n module wavesCrypto {\n\n }\n\n\n /**\n * Chai assertion library https://www.chaijs.com/\n * with chaiAsPromised plugin https://www.chaijs.com/plugins/chai-as-promised/\n * * Available in global scope:\n * ```js\n * chai.//(2 === 3).to.be.false\n * ```\n * You can always use shorthand for [[//]]\n */\n module chai {\n\n }\n}\n//import { DataTransactionEntry, GenesisTransaction, MassTransferItem, PaymentTransaction, SignedTransaction, Transaction, TRANSACTION_TYPE, TransactionType } from '@waves/ts-types/src';\n//import { InvokeScriptCallArgument } from '@waves/ts-types/src/parts';\n interface WithId {\n /**\n * Transaction ID. 32 bytes hash encoded as base58 string\n */\n id: string;\n}\n interface WithTxType {\n type: TransactionType;\n}\n interface WithSender {\n /**\n * Account public key. This account will pay fee and this account's script will be executed if exists\n */\n senderPublicKey: string;\n}\n interface WithProofs {\n /**\n * ITransaction signatures\n * @minItems 0\n * @maxItems 8\n */\n proofs: string[];\n}\n/**\n * CancelOrder object. When this object is sent to matcher, order with 'orderId' will be canceled\n */\n interface ICancelOrder {\n sender: string;\n orderId: string;\n signature: string;\n hash: string;\n}\n declare type TTxParams = IAliasParams | IBurnParams | IInvokeScriptParams | ICancelLeaseParams | IDataParams | IIssueParams | ILeaseParams | IMassTransferParams | IReissueParams | ISetAssetScriptParams | ISetScriptParams | ISponsorshipParams | ITransferParams | IUpdateAssetInfoParams | IInvokeExpressionParams;\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IBasicParams {\n /**\n * Transaction fee. If not set, fee will be calculated automatically\n */\n fee?: LONG;\n /**\n * If fee is not set, this value will be added to automatically calculated fee. E.x.:\n * Account is scripted and 400000 fee more is required.\n */\n additionalFee?: number;\n /**\n * If not set, public key will be derived from seed phrase. You should provide senderPublicKey in two cases:\n * 1. Account, from which this tx should be sent, differs from tx signer. E.g., we have smart account that requires 2 signatures.\n * 2. You to create tx without proof. Therefore no seed is provided.\n */\n senderPublicKey?: string;\n /**\n * Transaction timestamp. If not set current timestamp will be used. Date.now()\n */\n timestamp?: number;\n /**\n * Network byte. Could be set as number or as char.\n * If set as char(string), charCodeAt(0) will be used. E.g.,\n * 'W' will be converted to '87'\n * If not set, 87 will be used as default\n */\n chainId?: string | number;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IAliasParams extends IBasicParams {\n alias: string;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IBurnParams extends IBasicParams {\n assetId: string;\n amount: LONG;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface ICancelLeaseParams extends IBasicParams {\n leaseId: string;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IDataParams extends IBasicParams {\n data: Array;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IIssueParams extends IBasicParams {\n /**\n * @minLength 4\n * @maxLength 16\n */\n name: string;\n /**\n * @maxLength 1000\n */\n description: string;\n quantity: LONG;\n decimals?: number;\n reissuable?: boolean;\n script?: string;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface ILeaseParams extends IBasicParams {\n recipient: string;\n amount: LONG;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IMassTransferParams extends IBasicParams {\n transfers: Array>;\n /**\n * Bytearray encoded as base string\n */\n attachment?: string;\n assetId?: string | null;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IOrderParams {\n matcherPublicKey: string;\n price: LONG;\n amount: LONG;\n orderType: 'buy' | 'sell';\n amountAsset: string | null;\n priceAsset: string | null;\n senderPublicKey?: string;\n matcherFee?: number;\n timestamp?: number;\n expiration?: number;\n matcherFeeAssetId?: string | null;\n}\n interface ICancelOrderParams {\n orderId: string;\n signature?: string;\n senderPublicKey?: string;\n}\n interface IWavesAuthParams {\n timestamp?: number;\n publicKey?: string;\n}\n interface IWavesAuth {\n timestamp: number;\n address: string;\n publicKey: string;\n hash: string;\n signature: string;\n}\n interface IAuthParams {\n data: string;\n host: string;\n publicKey?: string;\n}\n interface IAuth {\n data: string;\n host: string;\n address: string;\n publicKey: string;\n hash: string;\n signature: string;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IReissueParams extends IBasicParams {\n assetId: string;\n quantity: LONG;\n reissuable: boolean;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface ISetAssetScriptParams extends IBasicParams {\n /**\n * Compiled script encoded as base64 string\n */\n script: string;\n assetId: string;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface ISetScriptParams extends IBasicParams {\n /**\n * Compiled script encoded as base64 string\n */\n script: string | null;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface ISponsorshipParams extends IBasicParams {\n /**\n * AssetID of sponsored token\n */\n assetId: string;\n /**\n * Minimal fee amount in sponsored asset. To disable sponsorship set it to 0\n */\n minSponsoredAssetFee: LONG;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface ITransferParams extends IBasicParams {\n /**\n * Can be either address(base58 encoded 24 byte address) or alias.\n * Alias should be used like 'alias:{chainId}:{alias}>'. E.g.:\n * If we have alias 'foo', and we want TESTNET transaction, recipient should be 'alias:T:foo'\n */\n recipient: string;\n amount: LONG;\n assetId?: string | null;\n /**\n * Fee can be paid in custom token if sponsorship has been set for this token\n */\n feeAssetId?: string | null;\n /**\n * Bytearray encoded as base58 string\n */\n attachment?: string;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IInvokeScriptParams extends IBasicParams {\n dApp: string;\n feeAssetId?: string | null;\n call?: {\n function: string;\n args?: Array>;\n };\n payment?: {\n assetId?: string | null;\n amount: LONG;\n }[];\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IUpdateAssetInfoParams extends IBasicParams {\n /**\n * Id of previously issued asset\n */\n assetId: string;\n /**\n * New asset name\n */\n name: string;\n /**\n * New asset description\n */\n description: string;\n}\n/**\n * @typeparam LONG Generic type representing LONG type. Default to string | number. Since javascript number more than 2 ** 53 -1 cannot be precisely represented, generic type is used\n */\n interface IInvokeExpressionParams extends IBasicParams {\n feeAssetId?: string | null;\n expression: string;\n}\n declare type TTransaction = Exclude;\n declare type TTransactionType = Exclude;\n declare type WithChainId = {\n chainId: number;\n};\n declare type TTx = SignedTransaction;\n\n// Type definitions for mocha 5.2\n// Project: https://mochajs.org\n// Definitions by: Kazi Manzur Rashid \n// otiai10 \n// jt000 \n// Vadim Macagon \n// Andrew Bradley \n// Dmitrii Sorin \n// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped\n// TypeScript Version: 2.1\n\n/**\n * Mocha API\n *\n * @see https://mochajs.org/api/mocha\n */\ndeclare class Mocha {\n private _growl;\n private _reporter;\n private _ui;\n\n constructor(options?: Mocha.MochaOptions);\n\n suite: Mocha.Suite;\n files: string[];\n options: Mocha.MochaInstanceOptions;\n\n /**\n * Enable or disable bailing on the first failure.\n *\n * @see https://mochajs.org/api/mocha#bail\n */\n bail(bail?: boolean): this;\n\n /**\n * Add test `file`.\n *\n * @see https://mochajs.org/api/mocha#addFile\n */\n addFile(file: string): this;\n\n /**\n * Set reporter to one of the built-in reporters.\n *\n * @see https://mochajs.org/api/mocha#reporter\n */\n reporter(reporter: Mocha.Reporter, reporterOptions?: any): this;\n\n /**\n * Set reporter to the provided constructor, one of the built-in reporters, or loads a reporter\n * from a module path. Defaults to `\"spec\"`.\n *\n * @see https://mochajs.org/api/mocha#reporter\n */\n reporter(reporter?: string | Mocha.ReporterConstructor, reporterOptions?: any): this;\n\n /**\n * Set test UI to one of the built-in test interfaces.\n *\n * @see https://mochajs.org/api/mocha#ui\n */\n ui(name: Mocha.Interface): this;\n\n /**\n * Set test UI to one of the built-in test interfaces or loads a test interface from a module\n * path. Defaults to `\"bdd\"`.\n *\n * @see https://mochajs.org/api/mocha#ui\n */\n ui(name?: string): this;\n\n /**\n * Escape string and add it to grep as a RegExp.\n *\n * @see https://mochajs.org/api/mocha#fgrep\n */\n fgrep(str: string): this;\n\n /**\n * Add regexp to grep, if `re` is a string it is escaped.\n *\n * @see https://mochajs.org/api/mocha#grep\n */\n grep(re: string | RegExp): this;\n\n /**\n * Invert `.grep()` matches.\n *\n * @see https://mochajs.org/api/mocha#invert\n */\n invert(): this;\n\n /**\n * Ignore global leaks.\n *\n * @see https://mochajs.org/api/mocha#ignoreLeaks\n */\n ignoreLeaks(ignore: boolean): this;\n\n /**\n * Enable global leak checking.\n *\n * @see https://mochajs.org/api/mocha#checkLeaks\n */\n checkLeaks(): this;\n\n /**\n * Display long stack-trace on failing\n *\n * @see https://mochajs.org/api/mocha#fullTrace\n */\n fullTrace(): this;\n\n /**\n * Enable growl support.\n *\n * @see https://mochajs.org/api/mocha#growl\n */\n growl(): this;\n\n /**\n * Ignore `globals` array or string.\n *\n * @see https://mochajs.org/api/mocha#globals\n */\n globals(globals: string | ReadonlyArray): this;\n\n /**\n * Emit color output.\n *\n * @see https://mochajs.org/api/mocha#useColors\n */\n useColors(colors: boolean): this;\n\n /**\n * Use inline diffs rather than +/-.\n *\n * @see https://mochajs.org/api/mocha#useInlineDiffs\n */\n useInlineDiffs(inlineDiffs: boolean): this;\n\n /**\n * Do not show diffs at all.\n *\n * @see https://mochajs.org/api/mocha#hideDiff\n */\n hideDiff(hideDiff: boolean): this;\n\n /**\n * Set the timeout in milliseconds.\n *\n * @see https://mochajs.org/api/mocha#timeout\n */\n timeout(timeout: string | number): this;\n\n /**\n * Set the number of times to retry failed tests.\n *\n * @see https://mochajs.org/api/mocha#retries\n */\n retries(n: number): this;\n\n /**\n * Set slowness threshold in milliseconds.\n *\n * @see https://mochajs.org/api/mocha#slow\n */\n slow(slow: string | number): this;\n\n /**\n * Enable timeouts.\n *\n * @see https://mochajs.org/api/mocha#enableTimeouts\n */\n enableTimeouts(enabled?: boolean): this;\n\n /**\n * Makes all tests async (accepting a callback)\n *\n * @see https://mochajs.org/api/mocha#asyncOnly.\n */\n asyncOnly(): this;\n\n /**\n * Disable syntax highlighting (in browser).\n *\n * @see https://mochajs.org/api/mocha#noHighlighting\n */\n noHighlighting(): this;\n\n /**\n * Enable uncaught errors to propagate (in browser).\n *\n * @see https://mochajs.org/api/mocha#allowUncaught\n */\n allowUncaught(): boolean;\n\n /**\n * Delay root suite execution.\n *\n * @see https://mochajs.org/api/mocha#delay\n */\n delay(): boolean;\n\n /**\n * Tests marked only fail the suite\n *\n * @see https://mochajs.org/api/mocha#forbidOnly\n */\n forbidOnly(): boolean;\n\n /**\n * Pending tests and tests marked skip fail the suite\n *\n * @see https://mochajs.org/api/mocha#forbidPending\n */\n forbidPending(): boolean;\n\n /**\n * Run tests and invoke `fn()` when complete.\n *\n * Note that `run` relies on Node's `require` to execute\n * the test interface functions and will be subject to the\n * cache - if the files are already in the `require` cache,\n * they will effectively be skipped. Therefore, to run tests\n * multiple times or to run tests in files that are already\n * in the `require` cache, make sure to clear them from the\n * cache first in whichever manner best suits your needs.\n *\n * @see https://mochajs.org/api/mocha#run\n */\n run(fn?: (failures: number) => void): Mocha.Runner;\n\n /**\n * Load registered files.\n *\n * @see https://mochajs.org/api/mocha#loadFiles\n */\n protected loadFiles(fn?: () => void): void;\n}\n\ndeclare namespace Mocha {\n namespace utils {\n /**\n * Compute a slug from the given `str`.\n *\n * @see https://mochajs.org/api/module-utils.html#.slug\n */\n function slug(str: string): string;\n\n /**\n * Strip the function definition from `str`, and re-indent for pre whitespace.\n *\n * @see https://mochajs.org/api/module-utils.html#.clean\n */\n function clean(str: string): string;\n\n /**\n * Highlight the given string of `js`.\n */\n function highlight(js: string): string;\n\n /**\n * Takes some variable and asks `Object.prototype.toString()` what it thinks it is.\n */\n function type(value: any): string;\n\n /**\n * Stringify `value`. Different behavior depending on type of value:\n *\n * - If `value` is undefined or null, return `'[undefined]'` or `'[null]'`, respectively.\n * - If `value` is not an object, function or array, return result of `value.toString()` wrapped in double-quotes.\n * - If `value` is an *empty* object, function, or array, returns `'{}'`, `'[Function]'`, or `'[]'` respectively.\n * - If `value` has properties, call canonicalize} on it, then return result of `JSON.stringify()`\n *\n * @see https://mochajs.org/api/module-utils.html#.stringify\n */\n function stringify(value: any): string;\n\n /**\n * Return a new Thing that has the keys in sorted order. Recursive.\n *\n * If the Thing...\n * - has already been seen, return string `'[Circular]'`\n * - is `undefined`, return string `'[undefined]'`\n * - is `null`, return value `null`\n * - is some other primitive, return the value\n * - is not a primitive or an `Array`, `Object`, or `Function`, return the value of the Thing's `toString()` method\n * - is a non-empty `Array`, `Object`, or `Function`, return the result of calling this function again.\n * - is an empty `Array`, `Object`, or `Function`, returns `'[]'`, `'{}'`, or `'[Function]'` respectively.\n *\n * @see https://mochajs.org/api/module-utils.html#.canonicalize\n */\n function canonicalize(value: any, stack: any[], typeHint: string): any;\n\n /**\n * Lookup file names at the given `path`.\n *\n * @see https://mochajs.org/api/Mocha.utils.html#.exports.lookupFiles\n */\n function lookupFiles(filepath: string, extensions?: string[], recursive?: boolean): string[];\n\n /**\n * Generate an undefined error with a message warning the user.\n *\n * @see https://mochajs.org/api/module-utils.html#.undefinedError\n */\n function undefinedError(): Error;\n\n /**\n * Generate an undefined error if `err` is not defined.\n *\n * @see https://mochajs.org/api/module-utils.html#.getError\n */\n function getError(err: Error | undefined): Error;\n\n /**\n * When invoking this function you get a filter function that get the Error.stack as an\n * input, and return a prettify output. (i.e: strip Mocha and internal node functions from\n * stack trace).\n *\n * @see https://mochajs.org/api/module-utils.html#.stackTraceFilter\n */\n function stackTraceFilter(): (stack: string) => string;\n }\n\n namespace interfaces {\n function bdd(suite: Suite): void;\n function tdd(suite: Suite): void;\n function qunit(suite: Suite): void;\n function exports(suite: Suite): void;\n }\n\n // #region Test interface augmentations\n\n interface HookFunction {\n /**\n * [bdd, qunit, tdd] Describe a \"hook\" to execute the given callback `fn`. The name of the\n * function is used as the name of the hook.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (fn: Func): void;\n\n /**\n * [bdd, qunit, tdd] Describe a \"hook\" to execute the given callback `fn`. The name of the\n * function is used as the name of the hook.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (fn: AsyncFunc): void;\n\n /**\n * [bdd, qunit, tdd] Describe a \"hook\" to execute the given `title` and callback `fn`.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (name: string, fn?: Func): void;\n\n /**\n * [bdd, qunit, tdd] Describe a \"hook\" to execute the given `title` and callback `fn`.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (name: string, fn?: AsyncFunc): void;\n }\n\n interface SuiteFunction {\n /**\n * [bdd, tdd] Describe a \"suite\" with the given `title` and callback `fn` containing\n * nested suites.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (title: string, fn: (this: Suite) => void): Suite;\n\n /**\n * [qunit] Describe a \"suite\" with the given `title`.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (title: string): Suite;\n\n /**\n * [bdd, tdd, qunit] Indicates this suite should be executed exclusively.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n only: ExclusiveSuiteFunction;\n\n /**\n * [bdd, tdd] Indicates this suite should not be executed.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n skip: PendingSuiteFunction;\n }\n\n interface ExclusiveSuiteFunction {\n /**\n * [bdd, tdd] Describe a \"suite\" with the given `title` and callback `fn` containing\n * nested suites. Indicates this suite should be executed exclusively.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (title: string, fn: (this: Suite) => void): Suite;\n\n /**\n * [qunit] Describe a \"suite\" with the given `title`. Indicates this suite should be executed\n * exclusively.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (title: string): Suite;\n }\n\n /**\n * [bdd, tdd] Describe a \"suite\" with the given `title` and callback `fn` containing\n * nested suites. Indicates this suite should not be executed.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @returns [bdd] `Suite`\n * @returns [tdd] `void`\n */\n interface PendingSuiteFunction {\n (title: string, fn: (this: Suite) => void): Suite | void;\n }\n\n interface TestFunction {\n /**\n * Describe a specification or test-case with the given callback `fn` acting as a thunk.\n * The name of the function is used as the name of the test.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (fn: Func): Test;\n\n /**\n * Describe a specification or test-case with the given callback `fn` acting as a thunk.\n * The name of the function is used as the name of the test.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (fn: AsyncFunc): Test;\n\n /**\n * Describe a specification or test-case with the given `title` and callback `fn` acting\n * as a thunk.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (title: string, fn?: Func): Test;\n\n /**\n * Describe a specification or test-case with the given `title` and callback `fn` acting\n * as a thunk.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (title: string, fn?: AsyncFunc): Test;\n\n /**\n * Indicates this test should be executed exclusively.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n only: ExclusiveTestFunction;\n\n /**\n * Indicates this test should not be executed.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n skip: PendingTestFunction;\n\n /**\n * Number of attempts to retry.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n retries(n: number): void;\n }\n\n interface ExclusiveTestFunction {\n /**\n * [bdd, tdd, qunit] Describe a specification or test-case with the given callback `fn`\n * acting as a thunk. The name of the function is used as the name of the test. Indicates\n * this test should be executed exclusively.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (fn: Func): Test;\n\n /**\n * [bdd, tdd, qunit] Describe a specification or test-case with the given callback `fn`\n * acting as a thunk. The name of the function is used as the name of the test. Indicates\n * this test should be executed exclusively.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (fn: AsyncFunc): Test;\n\n /**\n * [bdd, tdd, qunit] Describe a specification or test-case with the given `title` and\n * callback `fn` acting as a thunk. Indicates this test should be executed exclusively.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (title: string, fn?: Func): Test;\n\n /**\n * [bdd, tdd, qunit] Describe a specification or test-case with the given `title` and\n * callback `fn` acting as a thunk. Indicates this test should be executed exclusively.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (title: string, fn?: AsyncFunc): Test;\n }\n\n interface PendingTestFunction {\n /**\n * [bdd, tdd, qunit] Describe a specification or test-case with the given callback `fn`\n * acting as a thunk. The name of the function is used as the name of the test. Indicates\n * this test should not be executed.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (fn: Func): Test;\n\n /**\n * [bdd, tdd, qunit] Describe a specification or test-case with the given callback `fn`\n * acting as a thunk. The name of the function is used as the name of the test. Indicates\n * this test should not be executed.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (fn: AsyncFunc): Test;\n\n /**\n * [bdd, tdd, qunit] Describe a specification or test-case with the given `title` and\n * callback `fn` acting as a thunk. Indicates this test should not be executed.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (title: string, fn?: Func): Test;\n\n /**\n * [bdd, tdd, qunit] Describe a specification or test-case with the given `title` and\n * callback `fn` acting as a thunk. Indicates this test should not be executed.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n (title: string, fn?: AsyncFunc): Test;\n }\n\n /**\n * Execute after each test case.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#afterEach\n */\n let afterEach: HookFunction;\n\n /**\n * Execute after running tests.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#after\n */\n let after: HookFunction;\n\n /**\n * Execute before each test case.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#beforeEach\n */\n let beforeEach: HookFunction;\n\n /**\n * Execute before running tests.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#before\n */\n let before: HookFunction;\n\n /**\n * Describe a \"suite\" containing nested suites and tests.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n let describe: SuiteFunction;\n\n /**\n * Describes a test case.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n let it: TestFunction;\n\n /**\n * Describes a pending test case.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n let xit: PendingTestFunction;\n\n /**\n * Execute before each test case.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#beforeEach\n */\n let setup: HookFunction;\n\n /**\n * Execute before running tests.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#before\n */\n let suiteSetup: HookFunction;\n\n /**\n * Execute after running tests.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#after\n */\n let suiteTeardown: HookFunction;\n\n /**\n * Describe a \"suite\" containing nested suites and tests.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n let suite: SuiteFunction;\n\n /**\n * Execute after each test case.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#afterEach\n */\n let teardown: HookFunction;\n\n /**\n * Describes a test case.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n let test: TestFunction;\n\n /**\n * Triggers root suite execution.\n *\n * - _Only available if flag --delay is passed into Mocha._\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#runWithSuite\n */\n function run(): void;\n\n // #endregion Test interface augmentations\n\n namespace reporters {\n /**\n * Initialize a new `Base` reporter.\n *\n * All other reporters generally inherit from this reporter, providing stats such as test duration,\n * number of tests passed / failed, etc.\n *\n * @see https://mochajs.org/api/Mocha.reporters.Base.html\n */\n class Base {\n constructor(runner: Runner, options?: MochaOptions);\n /** @deprecated Use the overload that accepts `Mocha.Runner` instead. */\n constructor(runner: IRunner, options?: MochaOptions);\n\n /**\n * Test run statistics\n */\n stats: Stats;\n\n /**\n * Test failures\n */\n failures: Test[];\n\n /**\n * The configured runner\n */\n runner: Runner;\n\n /**\n * Output common epilogue used by many of the bundled reporters.\n *\n * @see https://mochajs.org/api/Mocha.reporters.Base.html#.Base#epilogue\n */\n epilogue(): void;\n\n done?(failures: number, fn?: (failures: number) => void): void;\n }\n\n namespace Base {\n /**\n * Enables coloring by default\n *\n * @see https://mochajs.org/api/module-base#.useColors\n */\n let useColors: boolean;\n\n /**\n * Inline diffs instead of +/-\n *\n * @see https://mochajs.org/api/module-base#.inlineDiffs\n */\n let inlineDiffs: boolean;\n\n /**\n * Default color map\n *\n * @see https://mochajs.org/api/module-base#.colors\n */\n const colors: ColorMap;\n\n /**\n * Default color map\n *\n * @see https://mochajs.org/api/module-base#.colors\n */\n interface ColorMap {\n // added by Base\n pass: number;\n fail: number;\n \"bright pass\": number;\n \"bright fail\": number;\n \"bright yellow\": number;\n pending: number;\n suite: number;\n \"error title\": number;\n \"error message\": number;\n \"error stack\": number;\n checkmark: number;\n fast: number;\n medium: number;\n slow: number;\n green: number;\n light: number;\n \"diff gutter\": number;\n \"diff added\": number;\n \"diff removed\": number;\n\n // added by Progress\n progress: number;\n\n // added by Landing\n plane: number;\n \"plane crash\": number;\n runway: number;\n\n [key: string]: number;\n }\n\n /**\n * Default symbol map\n *\n * @see https://mochajs.org/api/module-base#.symbols\n */\n const symbols: SymbolMap;\n\n /**\n * Default symbol map\n *\n * @see https://mochajs.org/api/module-base#.symbols\n */\n interface SymbolMap {\n ok: string;\n err: string;\n dot: string;\n comma: string;\n bang: string;\n [key: string]: string;\n }\n\n /**\n * Color `str` with the given `type` (from `colors`)\n *\n * @see https://mochajs.org/api/module-base#.color\n */\n function color(type: string, str: string): string;\n\n /**\n * Expose terminal window size\n *\n * @see https://mochajs.org/api/module-base#.window\n */\n const window: {\n width: number;\n };\n\n /**\n * ANSI TTY control sequences common among reporters.\n *\n * @see https://mochajs.org/api/module-base#.cursor\n */\n namespace cursor {\n /**\n * Hides the cursor\n */\n function hide(): void;\n\n /**\n * Shows the cursor\n */\n function show(): void;\n\n /**\n * Deletes the current line\n */\n function deleteLine(): void;\n\n /**\n * Moves to the beginning of the line\n */\n function beginningOfLine(): void;\n\n /**\n * Clears the line and moves to the beginning of the line.\n */\n function CR(): void;\n }\n\n /**\n * Returns a diff between two strings with colored ANSI output.\n *\n * @see https://mochajs.org/api/module-base#.generateDiff\n */\n function generateDiff(actual: string, expected: string): string;\n\n /**\n * Output the given `failures` as a list.\n *\n * @see https://mochajs.org/api/Mocha.reporters.Base.html#.exports.list1\n */\n function list(failures: Test[]): void;\n }\n\n /**\n * Initialize a new `Dot` matrix test reporter.\n *\n * @see https://mochajs.org/api/Mocha.reporters.Dot.html\n */\n class Dot extends Base {\n }\n\n /**\n * Initialize a new `Doc` reporter.\n *\n * @see https://mochajs.org/api/Mocha.reporters.Doc.html\n */\n class Doc extends Base {\n }\n\n /**\n * Initialize a new `TAP` test reporter.\n *\n * @see https://mochajs.org/api/Mocha.reporters.TAP.html\n */\n class TAP extends Base {\n }\n\n /**\n * Initialize a new `JSON` reporter\n *\n * @see https://mochajs.org/api/Mocha.reporters.JSON.html\n */\n class JSON extends Base {\n }\n\n /**\n * Initialize a new `HTML` reporter.\n *\n * - _This reporter cannot be used on the console._\n *\n * @see https://mochajs.org/api/Mocha.reporters.HTML.html\n */\n class HTML extends Base {\n /**\n * Provide suite URL.\n *\n * @see https://mochajs.org/api/Mocha.reporters.HTML.html#suiteURL\n */\n suiteURL(suite: Suite): string;\n\n /**\n * Provide test URL.\n *\n * @see https://mochajs.org/api/Mocha.reporters.HTML.html#testURL\n */\n testURL(test: Test): string;\n\n /**\n * Adds code toggle functionality for the provided test's list element.\n *\n * @see https://mochajs.org/api/Mocha.reporters.HTML.html#addCodeToggle\n */\n addCodeToggle(el: HTMLLIElement, contents: string): void;\n }\n\n /**\n * Initialize a new `List` test reporter.\n *\n * @see https://mochajs.org/api/Mocha.reporters.List.html\n */\n class List extends Base {\n }\n\n /**\n * Initialize a new `Min` minimal test reporter (best used with --watch).\n *\n * @see https://mochajs.org/api/Mocha.reporters.Min.html\n */\n class Min extends Base {\n }\n\n /**\n * Initialize a new `Spec` test reporter.\n *\n * @see https://mochajs.org/api/Mocha.reporters.Spec.html\n */\n class Spec extends Base {\n }\n\n /**\n * Initialize a new `NyanCat` test reporter.\n *\n * @see https://mochajs.org/api/Mocha.reporters.Nyan.html\n */\n class Nyan extends Base {\n private colorIndex;\n private numberOfLines;\n private rainbowColors;\n private scoreboardWidth;\n private tick;\n private trajectories;\n private trajectoryWidthMax;\n private draw;\n private drawScoreboard;\n private appendRainbow;\n private drawRainbow;\n private drawNyanCat;\n private face;\n private cursorUp;\n private cursorDown;\n private generateColors;\n private rainbowify;\n }\n\n /**\n * Initialize a new `XUnit` test reporter.\n *\n * @see https://mochajs.org/api/Mocha.reporters.XUnit.html\n */\n class XUnit extends Base {\n constructor(runner: Runner, options?: XUnit.MochaOptions);\n /** @deprecated Use the overload that accepts `Mocha.Runner` instead. */\n constructor(runner: IRunner, options?: XUnit.MochaOptions);\n\n /**\n * Override done to close the stream (if it's a file).\n *\n * @see https://mochajs.org/api/Mocha.reporters.XUnit.html#done\n */\n done(failures: number, fn: (failures: number) => void): void;\n\n /**\n * Write out the given line.\n *\n * @see https://mochajs.org/api/Mocha.reporters.XUnit.html#write\n */\n write(line: string): void;\n\n /**\n * Output tag for the given `test.`\n *\n * @see https://mochajs.org/api/Mocha.reporters.XUnit.html#test\n */\n test(test: Test): void;\n }\n\n namespace XUnit {\n interface MochaOptions extends Mocha.MochaOptions {\n reporterOptions?: ReporterOptions;\n }\n\n interface ReporterOptions {\n output?: string;\n suiteName?: string;\n }\n }\n\n /**\n * Initialize a new `Markdown` test reporter.\n *\n * @see https://mochajs.org/api/Mocha.reporters.Markdown.html\n */\n class Markdown extends Base {\n }\n\n /**\n * Initialize a new `Progress` bar test reporter.\n *\n * @see https://mochajs.org/api/Mocha.reporters.Progress.html\n */\n class Progress extends Base {\n constructor(runner: Runner, options?: Progress.MochaOptions);\n /** @deprecated Use the overload that accepts `Mocha.Runner` instead. */\n constructor(runner: IRunner, options?: Progress.MochaOptions);\n }\n\n namespace Progress {\n interface MochaOptions extends Mocha.MochaOptions {\n reporterOptions?: ReporterOptions;\n }\n\n interface ReporterOptions {\n open?: string;\n complete?: string;\n incomplete?: string;\n close?: string;\n verbose?: boolean;\n }\n }\n\n /**\n * Initialize a new `Landing` reporter.\n *\n * @see https://mochajs.org/api/Mocha.reporters.Landing.html\n */\n class Landing extends Base {\n }\n\n /**\n * Initialize a new `JSONStream` test reporter.\n *\n * @see https://mochajs.org/api/Mocha.reporters.JSONStream.html\n */\n class JSONStream extends Base {\n }\n\n // value-only aliases\n const base: typeof Base;\n const dot: typeof Dot;\n const doc: typeof Doc;\n const tap: typeof TAP;\n const json: typeof JSON;\n const html: typeof HTML;\n const list: typeof List;\n const spec: typeof Spec;\n const nyan: typeof Nyan;\n const xunit: typeof XUnit;\n const markdown: typeof Markdown;\n const progress: typeof Progress;\n const landing: typeof Landing;\n // NOTE: not possible to type this correctly:\n // const \"json-stream\": typeof JSONStream;\n }\n\n /**\n * Initialize a new `Runnable` with the given `title` and callback `fn`.\n *\n * @see https://mochajs.org/api/Runnable.html\n */\n class Runnable {\n private _slow;\n private _enableTimeouts;\n private _retries;\n private _currentRetry;\n private _timeout;\n private _timeoutError;\n\n constructor(title: string, fn?: Func | AsyncFunc);\n\n title: string;\n fn: Func | AsyncFunc | undefined;\n body: string;\n async: boolean;\n sync: boolean;\n timedOut: boolean;\n pending: boolean;\n duration?: number;\n parent?: Suite;\n state?: \"failed\" | \"passed\";\n timer?: any;\n ctx?: Context;\n callback?: Done;\n allowUncaught?: boolean;\n file?: string;\n\n /**\n * Get test timeout.\n *\n * @see https://mochajs.org/api/Runnable.html#timeout\n */\n timeout(): number;\n\n /**\n * Set test timeout.\n *\n * @see https://mochajs.org/api/Runnable.html#timeout\n */\n timeout(ms: string | number): this;\n\n /**\n * Get test slowness threshold.\n *\n * @see https://mochajs.org/api/Runnable.html#slow\n */\n slow(): number;\n\n /**\n * Set test slowness threshold.\n *\n * @see https://mochajs.org/api/Runnable.html#slow\n */\n slow(ms: string | number): this;\n\n /**\n * Get whether timeouts are enabled.\n *\n * @see https://mochajs.org/api/Runnable.html#enableTimeouts\n */\n enableTimeouts(): boolean;\n\n /**\n * Set whether timeouts are enabled.\n *\n * @see https://mochajs.org/api/Runnable.html#enableTimeouts\n */\n enableTimeouts(enabled: boolean): this;\n\n /**\n * Halt and mark as pending.\n */\n skip(): never;\n\n /**\n * Check if this runnable or its parent suite is marked as pending.\n *\n * @see https://mochajs.org/api/Runnable.html#isPending\n */\n isPending(): boolean;\n\n /**\n * Return `true` if this Runnable has failed.\n */\n isFailed(): boolean;\n\n /**\n * Return `true` if this Runnable has passed.\n */\n isPassed(): boolean;\n\n /**\n * Set or get number of retries.\n *\n * @see https://mochajs.org/api/Runnable.html#retries\n */\n retries(): number;\n\n /**\n * Set or get number of retries.\n *\n * @see https://mochajs.org/api/Runnable.html#retries\n */\n retries(n: number): void;\n\n /**\n * Set or get current retry\n *\n * @see https://mochajs.org/api/Runnable.html#currentRetry\n */\n protected currentRetry(): number;\n\n /**\n * Set or get current retry\n *\n * @see https://mochajs.org/api/Runnable.html#currentRetry\n */\n protected currentRetry(n: number): void;\n\n /**\n * Return the full title generated by recursively concatenating the parent's full title.\n */\n fullTitle(): string;\n\n /**\n * Return the title path generated by concatenating the parent's title path with the title.\n */\n titlePath(): string[];\n\n /**\n * Clear the timeout.\n *\n * @see https://mochajs.org/api/Runnable.html#clearTimeout\n */\n clearTimeout(): void;\n\n /**\n * Inspect the runnable void of private properties.\n *\n * @see https://mochajs.org/api/Runnable.html#inspect\n */\n inspect(): string;\n\n /**\n * Reset the timeout.\n *\n * @see https://mochajs.org/api/Runnable.html#resetTimeout\n */\n resetTimeout(): void;\n\n /**\n * Get a list of whitelisted globals for this test run.\n *\n * @see https://mochajs.org/api/Runnable.html#globals\n */\n globals(): string[];\n\n /**\n * Set a list of whitelisted globals for this test run.\n *\n * @see https://mochajs.org/api/Runnable.html#globals\n */\n globals(globals: ReadonlyArray): void;\n\n /**\n * Run the test and invoke `fn(err)`.\n *\n * @see https://mochajs.org/api/Runnable.html#run\n */\n run(fn: Done): void;\n }\n\n // #region Runnable \"error\" event\n interface Runnable extends NodeJS.EventEmitter {\n on(event: \"error\", listener: (error: any) => void): this;\n once(event: \"error\", listener: (error: any) => void): this;\n addListener(event: \"error\", listener: (error: any) => void): this;\n removeListener(event: \"error\", listener: (error: any) => void): this;\n prependListener(event: \"error\", listener: (error: any) => void): this;\n prependOnceListener(event: \"error\", listener: (error: any) => void): this;\n emit(name: \"error\", error: any): boolean;\n }\n // #endregion Runnable \"error\" event\n // #region Runnable untyped events\n interface Runnable extends NodeJS.EventEmitter {\n on(event: string, listener: (...args: any[]) => void): this;\n once(event: string, listener: (...args: any[]) => void): this;\n addListener(event: string, listener: (...args: any[]) => void): this;\n removeListener(event: string, listener: (...args: any[]) => void): this;\n prependListener(event: string, listener: (...args: any[]) => void): this;\n prependOnceListener(event: string, listener: (...args: any[]) => void): this;\n emit(name: string, ...args: any[]): boolean;\n }\n // #endregion Runnable untyped events\n\n /**\n * Test context\n *\n * @see https://mochajs.org/api/module-Context.html#~Context\n */\n class Context {\n private _runnable;\n\n test?: Runnable;\n currentTest?: Test;\n\n /**\n * Get the context `Runnable`.\n */\n runnable(): Runnable;\n\n /**\n * Set the context `Runnable`.\n */\n runnable(runnable: Runnable): this;\n /** @deprecated Use the overload that accepts `Mocha.Runnable` instead. */\n runnable(runnable: IRunnable): this;\n\n /**\n * Get test timeout.\n */\n timeout(): number;\n\n /**\n * Set test timeout.\n */\n timeout(ms: string | number): this;\n\n /**\n * Get whether timeouts are enabled.\n */\n enableTimeouts(): boolean;\n\n /**\n * Set whether timeouts are enabled.\n */\n enableTimeouts(enabled: boolean): this;\n\n /**\n * Get test slowness threshold.\n */\n slow(): number;\n\n /**\n * Set test slowness threshold.\n */\n slow(ms: string | number): this;\n\n /**\n * Mark a test as skipped.\n */\n skip(): never;\n\n /**\n * Get the number of allowed retries on failed tests.\n */\n retries(): number;\n\n /**\n * Set the number of allowed retries on failed tests.\n */\n retries(n: number): this;\n\n [key: string]: any;\n }\n\n /**\n * Initialize a `Runner` for the given `suite`.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html\n */\n class Runner {\n private _globals;\n private _abort;\n private _delay;\n private _defaultGrep;\n private next;\n private hookErr;\n private prevGlobalsLength;\n private nextSuite;\n\n constructor(suite: Suite, delay: boolean);\n\n /** @deprecated Use the overload that accepts `Mocha.Suite` instead. */\n constructor(suite: ISuite, delay: boolean);\n\n suite: Suite;\n started: boolean;\n total: number;\n failures: number;\n asyncOnly?: boolean;\n allowUncaught?: boolean;\n fullStackTrace?: boolean;\n forbidOnly?: boolean;\n forbidPending?: boolean;\n ignoreLeaks?: boolean;\n test?: Test;\n currentRunnable?: Runnable;\n stats?: Stats; // added by reporters\n\n /**\n * Run tests with full titles matching `re`. Updates runner.total\n * with number of tests matched.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#.Runner#grep\n */\n grep(re: RegExp, invert: boolean): this;\n\n /**\n * Returns the number of tests matching the grep search for the\n * given suite.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#.Runner#grepTotal\n */\n grepTotal(suite: Suite): number;\n\n /** @deprecated Use the overload that accepts `Mocha.Suite` instead. */\n grepTotal(suite: ISuite): number;\n\n /**\n * Gets the allowed globals.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#.Runner#globals\n */\n globals(): string[];\n\n /**\n * Allow the given `arr` of globals.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#.Runner#globals\n */\n globals(arr: ReadonlyArray): this;\n\n /**\n * Run the root suite and invoke `fn(failures)` on completion.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#.Runner#run\n */\n run(fn?: (failures: number) => void): this;\n\n /**\n * Cleanly abort execution.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#.Runner#abort\n */\n abort(): this;\n\n /**\n * Handle uncaught exceptions.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#uncaught\n */\n uncaught(err: any): void;\n\n /**\n * Wrapper for setImmediate, process.nextTick, or browser polyfill.\n */\n protected static immediately(callback: Function): void;\n\n /**\n * Return a list of global properties.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#globalProps\n */\n protected globalProps(): string[];\n\n /**\n * Check for global variable leaks.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#checkGlobals\n */\n protected checkGlobals(test: Test): void;\n\n /**\n * Fail the given `test`.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#fail\n */\n protected fail(test: Test, err: any): void;\n\n /**\n * Fail the given `hook` with `err`.\n *\n * Hook failures work in the following pattern:\n * - If bail, then exit\n * - Failed `before` hook skips all tests in a suite and subsuites,\n * but jumps to corresponding `after` hook\n * - Failed `before each` hook skips remaining tests in a\n * suite and jumps to corresponding `after each` hook,\n * which is run only once\n * - Failed `after` hook does not alter\n * execution order\n * - Failed `after each` hook skips remaining tests in a\n * suite and subsuites, but executes other `after each`\n * hooks\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#failHook\n */\n protected failHook(hook: Hook, err: any): void;\n\n /**\n * Run hook `name` callbacks and then invoke `fn()`.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#hook\n */\n protected hook(name: string, fn: () => void): void;\n\n /**\n * Run hook `name` for the given array of `suites`\n * in order, and callback `fn(err, errSuite)`.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#hooks\n */\n protected hooks(name: string, suites: Suite[], fn: (err?: any, errSuite?: Suite) => void): void;\n\n /**\n * Run hooks from the top level down.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#hookUp\n */\n protected hookUp(name: string, fn: (err?: any, errSuite?: Suite) => void): void;\n\n /**\n * Run hooks from the bottom up.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#hookDown\n */\n protected hookDown(name: string, fn: (err?: any, errSuite?: Suite) => void): void;\n\n /**\n * Return an array of parent Suites from closest to furthest.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#parents\n */\n protected parents(): Suite[];\n\n /**\n * Run the current test and callback `fn(err)`.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#runTest\n */\n protected runTest(fn: Done): any;\n\n /**\n * Run tests in the given `suite` and invoke the callback `fn()` when complete.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#runTests\n */\n protected runTests(suite: Suite, fn: (errSuite?: Suite) => void): void;\n\n /**\n * Run the given `suite` and invoke the callback `fn()` when complete.\n *\n * @see https://mochajs.org/api/Mocha.Runner.html#runSuite\n */\n protected runSuite(suite: Suite, fn: (errSuite?: Suite) => void): void;\n }\n\n // #region Runner \"waiting\" event\n interface Runner {\n on(event: \"waiting\", listener: (rootSuite: Suite) => void): this;\n once(event: \"waiting\", listener: (rootSuite: Suite) => void): this;\n addListener(event: \"waiting\", listener: (rootSuite: Suite) => void): this;\n removeListener(event: \"waiting\", listener: (rootSuite: Suite) => void): this;\n prependListener(event: \"waiting\", listener: (rootSuite: Suite) => void): this;\n prependOnceListener(event: \"waiting\", listener: (rootSuite: Suite) => void): this;\n emit(name: \"waiting\", rootSuite: Suite): boolean;\n }\n // #endregion Runner \"waiting\" event\n // #region Runner \"start\" event\n interface Runner extends NodeJS.EventEmitter {\n on(event: \"start\", listener: () => void): this;\n once(event: \"start\", listener: () => void): this;\n addListener(event: \"start\", listener: () => void): this;\n removeListener(event: \"start\", listener: () => void): this;\n prependListener(event: \"start\", listener: () => void): this;\n prependOnceListener(event: \"start\", listener: () => void): this;\n emit(name: \"start\"): boolean;\n }\n // #endregion Runner \"start\" event\n // #region Runner \"end\" event\n interface Runner extends NodeJS.EventEmitter {\n on(event: \"end\", listener: () => void): this;\n once(event: \"end\", listener: () => void): this;\n addListener(event: \"end\", listener: () => void): this;\n removeListener(event: \"end\", listener: () => void): this;\n prependListener(event: \"end\", listener: () => void): this;\n prependOnceListener(event: \"end\", listener: () => void): this;\n emit(name: \"end\"): boolean;\n }\n // #endregion Runner \"end\" event\n // #region Runner \"suite\" event\n interface Runner extends NodeJS.EventEmitter {\n on(event: \"suite\", listener: (suite: Suite) => void): this;\n once(event: \"suite\", listener: (suite: Suite) => void): this;\n addListener(event: \"suite\", listener: (suite: Suite) => void): this;\n removeListener(event: \"suite\", listener: (suite: Suite) => void): this;\n prependListener(event: \"suite\", listener: (suite: Suite) => void): this;\n prependOnceListener(event: \"suite\", listener: (suite: Suite) => void): this;\n emit(name: \"suite\", suite: Suite): boolean;\n }\n // #endregion Runner \"suite\" event\n // #region Runner \"suite end\" event\n interface Runner extends NodeJS.EventEmitter {\n on(event: \"suite end\", listener: (suite: Suite) => void): this;\n once(event: \"suite end\", listener: (suite: Suite) => void): this;\n addListener(event: \"suite end\", listener: (suite: Suite) => void): this;\n removeListener(event: \"suite end\", listener: (suite: Suite) => void): this;\n prependListener(event: \"suite end\", listener: (suite: Suite) => void): this;\n prependOnceListener(event: \"suite end\", listener: (suite: Suite) => void): this;\n emit(name: \"suite end\", suite: Suite): boolean;\n }\n // #endregion Runner \"suite end\" event\n // #region Runner \"test\" event\n interface Runner extends NodeJS.EventEmitter {\n on(event: \"test\", listener: (test: Test) => void): this;\n once(event: \"test\", listener: (test: Test) => void): this;\n addListener(event: \"test\", listener: (test: Test) => void): this;\n removeListener(event: \"test\", listener: (test: Test) => void): this;\n prependListener(event: \"test\", listener: (test: Test) => void): this;\n prependOnceListener(event: \"test\", listener: (test: Test) => void): this;\n emit(name: \"test\", test: Test): boolean;\n }\n // #endregion Runner \"test\" event\n // #region Runner \"test end\" event\n interface Runner extends NodeJS.EventEmitter {\n on(event: \"test end\", listener: (test: Test) => void): this;\n once(event: \"test end\", listener: (test: Test) => void): this;\n addListener(event: \"test end\", listener: (test: Test) => void): this;\n removeListener(event: \"test end\", listener: (test: Test) => void): this;\n prependListener(event: \"test end\", listener: (test: Test) => void): this;\n prependOnceListener(event: \"test end\", listener: (test: Test) => void): this;\n emit(name: \"test end\", test: Test): boolean;\n }\n // #endregion Runner \"test end\" event\n // #region Runner \"hook\" event\n interface Runner extends NodeJS.EventEmitter {\n on(event: \"hook\", listener: (hook: Hook) => void): this;\n once(event: \"hook\", listener: (hook: Hook) => void): this;\n addListener(event: \"hook\", listener: (hook: Hook) => void): this;\n removeListener(event: \"hook\", listener: (hook: Hook) => void): this;\n prependListener(event: \"hook\", listener: (hook: Hook) => void): this;\n prependOnceListener(event: \"hook\", listener: (hook: Hook) => void): this;\n emit(name: \"hook\", hook: Hook): boolean;\n }\n // #endregion Runner \"hook\" event\n // #region Runner \"hook end\" event\n interface Runner extends NodeJS.EventEmitter {\n on(event: \"hook end\", listener: (hook: Hook) => void): this;\n once(event: \"hook end\", listener: (hook: Hook) => void): this;\n addListener(event: \"hook end\", listener: (hook: Hook) => void): this;\n removeListener(event: \"hook end\", listener: (hook: Hook) => void): this;\n prependListener(event: \"hook end\", listener: (hook: Hook) => void): this;\n prependOnceListener(event: \"hook end\", listener: (hook: Hook) => void): this;\n emit(name: \"hook end\", hook: Hook): boolean;\n }\n // #endregion Runner \"hook end\" event\n // #region Runner \"pass\" event\n interface Runner extends NodeJS.EventEmitter {\n on(event: \"pass\", listener: (test: Test) => void): this;\n once(event: \"pass\", listener: (test: Test) => void): this;\n addListener(event: \"pass\", listener: (test: Test) => void): this;\n removeListener(event: \"pass\", listener: (test: Test) => void): this;\n prependListener(event: \"pass\", listener: (test: Test) => void): this;\n prependOnceListener(event: \"pass\", listener: (test: Test) => void): this;\n emit(name: \"pass\", test: Test): boolean;\n }\n // #endregion Runner \"pass\" event\n // #region Runner \"fail\" event\n interface Runner extends NodeJS.EventEmitter {\n on(event: \"fail\", listener: (test: Test, err: any) => void): this;\n once(event: \"fail\", listener: (test: Test, err: any) => void): this;\n addListener(event: \"fail\", listener: (test: Test, err: any) => void): this;\n removeListener(event: \"fail\", listener: (test: Test, err: any) => void): this;\n prependListener(event: \"fail\", listener: (test: Test, err: any) => void): this;\n prependOnceListener(event: \"fail\", listener: (test: Test, err: any) => void): this;\n emit(name: \"fail\", test: Test, err: any): boolean;\n }\n // #endregion Runner \"fail\" event\n // #region Runner \"pending\" event\n interface Runner extends NodeJS.EventEmitter {\n on(event: \"pending\", listener: (test: Test) => void): this;\n once(event: \"pending\", listener: (test: Test) => void): this;\n addListener(event: \"pending\", listener: (test: Test) => void): this;\n removeListener(event: \"pending\", listener: (test: Test) => void): this;\n prependListener(event: \"pending\", listener: (test: Test) => void): this;\n prependOnceListener(event: \"pending\", listener: (test: Test) => void): this;\n emit(name: \"pending\", test: Test): boolean;\n }\n // #endregion Runner \"pending\" event\n // #region Runner untyped events\n interface Runner extends NodeJS.EventEmitter {\n on(event: string, listener: (...args: any[]) => void): this;\n once(event: string, listener: (...args: any[]) => void): this;\n addListener(event: string, listener: (...args: any[]) => void): this;\n removeListener(event: string, listener: (...args: any[]) => void): this;\n prependListener(event: string, listener: (...args: any[]) => void): this;\n prependOnceListener(event: string, listener: (...args: any[]) => void): this;\n emit(name: string, ...args: any[]): boolean;\n }\n // #endregion Runner untyped events\n\n /**\n * Initialize a new `Suite` with the given `title` and `ctx`.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html\n */\n class Suite {\n private _beforeEach;\n private _beforeAll;\n private _afterEach;\n private _afterAll;\n private _timeout;\n private _enableTimeouts;\n private _slow;\n private _bail;\n private _retries;\n private _onlyTests;\n private _onlySuites;\n\n constructor(title: string, parentContext?: Context);\n /** @deprecated Use the overload that accepts `Mocha.Context` instead. */\n constructor(title: string, parentContext?: IContext);\n\n ctx: Context;\n suites: Suite[];\n tests: Test[];\n pending: boolean;\n file?: string;\n root: boolean;\n delayed: boolean;\n parent: Suite | undefined;\n title: string;\n\n /**\n * Create a new `Suite` with the given `title` and parent `Suite`. When a suite\n * with the same title is already present, that suite is returned to provide\n * nicer reporter and more flexible meta-testing.\n *\n * @see https://mochajs.org/api/mocha#.exports.create\n */\n static create(parent: Suite, title: string): Suite;\n /** @deprecated Use the overload that accepts `Mocha.Suite` instead. */\n static create(parent: ISuite, title: string): Suite;\n\n /**\n * Return a clone of this `Suite`.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#clone\n */\n clone(): Suite;\n\n /**\n * Get timeout `ms`.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#timeout\n */\n timeout(): number;\n\n /**\n * Set timeout `ms` or short-hand such as \"2s\".\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#timeout\n */\n timeout(ms: string | number): this;\n\n /**\n * Get number of times to retry a failed test.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#retries\n */\n retries(): number;\n\n /**\n * Set number of times to retry a failed test.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#retries\n */\n retries(n: string | number): this;\n\n /**\n * Get whether timeouts are enabled.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#enableTimeouts\n */\n enableTimeouts(): boolean;\n\n /**\n * Set whether timeouts are `enabled`.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#enableTimeouts\n */\n enableTimeouts(enabled: boolean): this;\n\n /**\n * Get slow `ms`.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#slow\n */\n slow(): number;\n\n /**\n * Set slow `ms` or short-hand such as \"2s\".\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#slow\n */\n slow(ms: string | number): this;\n\n /**\n * Get whether to bail after first error.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#bail\n */\n bail(): boolean;\n\n /**\n * Set whether to bail after first error.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#bail\n */\n bail(bail: boolean): this;\n\n /**\n * Check if this suite or its parent suite is marked as pending.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#isPending\n */\n isPending(): boolean;\n\n /**\n * Run `fn(test[, done])` before running tests.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#beforeAll\n */\n beforeAll(fn?: Func): this;\n\n /**\n * Run `fn(test[, done])` before running tests.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#beforeAll\n */\n beforeAll(fn?: AsyncFunc): this;\n\n /**\n * Run `fn(test[, done])` before running tests.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#beforeAll\n */\n beforeAll(title: string, fn?: Func): this;\n\n /**\n * Run `fn(test[, done])` before running tests.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#beforeAll\n */\n beforeAll(title: string, fn?: AsyncFunc): this;\n\n /**\n * Run `fn(test[, done])` after running tests.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#afterAll\n */\n afterAll(fn?: Func): this;\n\n /**\n * Run `fn(test[, done])` after running tests.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#afterAll\n */\n afterAll(fn?: AsyncFunc): this;\n\n /**\n * Run `fn(test[, done])` after running tests.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#afterAll\n */\n afterAll(title: string, fn?: Func): this;\n\n /**\n * Run `fn(test[, done])` after running tests.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#afterAll\n */\n afterAll(title: string, fn?: AsyncFunc): this;\n\n /**\n * Run `fn(test[, done])` before each test case.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#beforeEach\n */\n beforeEach(fn?: Func): this;\n\n /**\n * Run `fn(test[, done])` before each test case.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#beforeEach\n */\n beforeEach(fn?: AsyncFunc): this;\n\n /**\n * Run `fn(test[, done])` before each test case.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#beforeEach\n */\n beforeEach(title: string, fn?: Func): this;\n\n /**\n * Run `fn(test[, done])` before each test case.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#beforeEach\n */\n beforeEach(title: string, fn?: AsyncFunc): this;\n\n /**\n * Run `fn(test[, done])` after each test case.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#afterEach\n */\n afterEach(fn?: Func): this;\n\n /**\n * Run `fn(test[, done])` after each test case.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#afterEach\n */\n afterEach(fn?: AsyncFunc): this;\n\n /**\n * Run `fn(test[, done])` after each test case.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#afterEach\n */\n afterEach(title: string, fn?: Func): this;\n\n /**\n * Run `fn(test[, done])` after each test case.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#afterEach\n */\n afterEach(title: string, fn?: AsyncFunc): this;\n\n /**\n * Add a test `suite`.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#addSuite\n */\n addSuite(suite: Suite): this;\n /** @deprecated Use the overload that accepts `Mocha.ISuite` instead. */\n addSuite(suite: ISuite): this;\n\n /**\n * Add a `test` to this suite.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#addTest\n */\n addTest(test: Test): this;\n /** @deprecated Use the overload that accepts `Mocha.ITest` instead. */\n addTest(test: ITest): this;\n\n /**\n * Return the full title generated by recursively concatenating the parent's\n * full title.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#.Suite#fullTitle\n */\n fullTitle(): string;\n\n /**\n * Return the title path generated by recursively concatenating the parent's\n * title path.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#.Suite#titlePath\n */\n titlePath(): string[];\n\n /**\n * Return the total number of tests.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#.Suite#total\n */\n total(): number;\n\n /**\n * Iterates through each suite recursively to find all tests. Applies a\n * function in the format `fn(test)`.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#eachTest\n */\n eachTest(fn: (test: Test) => void): this;\n\n /**\n * This will run the root suite if we happen to be running in delayed mode.\n *\n * @see https://mochajs.org/api/Mocha.Suite.html#run\n */\n run(): void;\n\n /**\n * Generic hook-creator.\n */\n protected _createHook(title: string, fn?: Func | AsyncFunc): Hook;\n }\n\n // #region Suite \"beforeAll\" event\n interface Suite extends NodeJS.EventEmitter {\n on(event: \"beforeAll\", listener: (hook: Hook) => void): this;\n once(event: \"beforeAll\", listener: (hook: Hook) => void): this;\n addListener(event: \"beforeAll\", listener: (hook: Hook) => void): this;\n removeListener(event: \"beforeAll\", listener: (hook: Hook) => void): this;\n prependListener(event: \"beforeAll\", listener: (hook: Hook) => void): this;\n prependOnceListener(event: \"beforeAll\", listener: (hook: Hook) => void): this;\n emit(name: \"beforeAll\", hook: Hook): boolean;\n }\n // #endregion Suite \"beforeAll\" event\n // #region Suite \"afterAll\" event\n interface Suite extends NodeJS.EventEmitter {\n on(event: \"afterAll\", listener: (hook: Hook) => void): this;\n once(event: \"afterAll\", listener: (hook: Hook) => void): this;\n addListener(event: \"afterAll\", listener: (hook: Hook) => void): this;\n removeListener(event: \"afterAll\", listener: (hook: Hook) => void): this;\n prependListener(event: \"afterAll\", listener: (hook: Hook) => void): this;\n prependOnceListener(event: \"afterAll\", listener: (hook: Hook) => void): this;\n emit(name: \"afterAll\", hook: Hook): boolean;\n }\n // #endregion Suite \"afterAll\" event\n // #region Suite \"beforeEach\" event\n interface Suite extends NodeJS.EventEmitter {\n on(event: \"beforeEach\", listener: (hook: Hook) => void): this;\n once(event: \"beforeEach\", listener: (hook: Hook) => void): this;\n addListener(event: \"beforeEach\", listener: (hook: Hook) => void): this;\n removeListener(event: \"beforeEach\", listener: (hook: Hook) => void): this;\n prependListener(event: \"beforeEach\", listener: (hook: Hook) => void): this;\n prependOnceListener(event: \"beforeEach\", listener: (hook: Hook) => void): this;\n emit(name: \"beforeEach\", hook: Hook): boolean;\n }\n // #endregion Suite \"beforeEach\" event\n // #region Suite \"afterEach\" event\n interface Suite extends NodeJS.EventEmitter {\n on(event: \"afterEach\", listener: (hook: Hook) => void): this;\n once(event: \"afterEach\", listener: (hook: Hook) => void): this;\n addListener(event: \"afterEach\", listener: (hook: Hook) => void): this;\n removeListener(event: \"afterEach\", listener: (hook: Hook) => void): this;\n prependListener(event: \"afterEach\", listener: (hook: Hook) => void): this;\n prependOnceListener(event: \"afterEach\", listener: (hook: Hook) => void): this;\n emit(name: \"afterEach\", hook: Hook): boolean;\n }\n // #endregion Suite \"afterEach\" event\n // #region Suite \"suite\" event\n interface Suite extends NodeJS.EventEmitter {\n on(event: \"suite\", listener: (suite: Suite) => void): this;\n once(event: \"suite\", listener: (suite: Suite) => void): this;\n addListener(event: \"suite\", listener: (suite: Suite) => void): this;\n removeListener(event: \"suite\", listener: (suite: Suite) => void): this;\n prependListener(event: \"suite\", listener: (suite: Suite) => void): this;\n prependOnceListener(event: \"suite\", listener: (suite: Suite) => void): this;\n emit(name: \"suite\", suite: Suite): boolean;\n }\n // #endregion Suite \"suite\" event\n // #region Suite \"test\" event\n interface Suite {\n on(event: \"test\", listener: (test: Test) => void): this;\n once(event: \"test\", listener: (test: Test) => void): this;\n addListener(event: \"test\", listener: (test: Test) => void): this;\n removeListener(event: \"test\", listener: (test: Test) => void): this;\n prependListener(event: \"test\", listener: (test: Test) => void): this;\n prependOnceListener(event: \"test\", listener: (test: Test) => void): this;\n emit(name: \"test\", test: Test): boolean;\n }\n // #endregion Suite \"test\" event\n // #region Suite \"run\" event\n interface Suite extends NodeJS.EventEmitter {\n on(event: \"run\", listener: () => void): this;\n once(event: \"run\", listener: () => void): this;\n addListener(event: \"run\", listener: () => void): this;\n removeListener(event: \"run\", listener: () => void): this;\n prependListener(event: \"run\", listener: () => void): this;\n prependOnceListener(event: \"run\", listener: () => void): this;\n emit(name: \"run\"): boolean;\n }\n // #endregion Suite \"run\" event\n // #region Suite \"pre-require\" event\n interface Suite extends NodeJS.EventEmitter {\n on(event: \"pre-require\", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;\n once(event: \"pre-require\", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;\n addListener(event: \"pre-require\", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;\n removeListener(event: \"pre-require\", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;\n prependListener(event: \"pre-require\", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;\n prependOnceListener(event: \"pre-require\", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;\n emit(name: \"pre-require\", context: MochaGlobals, file: string, mocha: Mocha): boolean;\n }\n // #endregion Suite \"pre-require\" event\n // #region Suite \"require\" event\n interface Suite extends NodeJS.EventEmitter {\n on(event: \"require\", listener: (module: any, file: string, mocha: Mocha) => void): this;\n once(event: \"require\", listener: (module: any, file: string, mocha: Mocha) => void): this;\n addListener(event: \"require\", listener: (module: any, file: string, mocha: Mocha) => void): this;\n removeListener(event: \"require\", listener: (module: any, file: string, mocha: Mocha) => void): this;\n prependListener(event: \"require\", listener: (module: any, file: string, mocha: Mocha) => void): this;\n prependOnceListener(event: \"require\", listener: (module: any, file: string, mocha: Mocha) => void): this;\n emit(name: \"require\", module: any, file: string, mocha: Mocha): boolean;\n }\n // #endregion Suite \"require\" event\n // #region Suite \"post-require\" event\n interface Suite extends NodeJS.EventEmitter {\n on(event: \"post-require\", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;\n once(event: \"post-require\", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;\n addListener(event: \"post-require\", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;\n removeListener(event: \"post-require\", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;\n prependListener(event: \"post-require\", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;\n prependOnceListener(event: \"post-require\", listener: (context: MochaGlobals, file: string, mocha: Mocha) => void): this;\n emit(name: \"post-require\", context: MochaGlobals, file: string, mocha: Mocha): boolean;\n }\n // #endregion Suite \"post-require\" event\n // #region Suite untyped events\n interface Suite extends NodeJS.EventEmitter {\n on(event: string, listener: (...args: any[]) => void): this;\n once(event: string, listener: (...args: any[]) => void): this;\n addListener(event: string, listener: (...args: any[]) => void): this;\n removeListener(event: string, listener: (...args: any[]) => void): this;\n prependListener(event: string, listener: (...args: any[]) => void): this;\n prependOnceListener(event: string, listener: (...args: any[]) => void): this;\n emit(name: string, ...args: any[]): boolean;\n }\n // #endregion Runner untyped events\n\n /**\n * Initialize a new `Hook` with the given `title` and callback `fn`\n *\n * @see https://mochajs.org/api/Hook.html\n */\n class Hook extends Runnable {\n private _error;\n\n type: \"hook\";\n originalTitle?: string; // added by Runner\n\n /**\n * Get the test `err`.\n *\n * @see https://mochajs.org/api/Hook.html#error\n */\n error(): any;\n\n /**\n * Set the test `err`.\n *\n * @see https://mochajs.org/api/Hook.html#error\n */\n error(err: any): void;\n }\n\n /**\n * Initialize a new `Test` with the given `title` and callback `fn`.\n *\n * @see https://mochajs.org/api/Test.html\n */\n class Test extends Runnable {\n type: \"test\";\n speed?: \"slow\" | \"medium\" | \"fast\"; // added by reporters\n err?: Error; // added by reporters\n clone(): Test;\n }\n\n /**\n * Test statistics\n */\n interface Stats {\n suites: number;\n tests: number;\n passes: number;\n pending: number;\n failures: number;\n start?: Date;\n end?: Date;\n duration?: number;\n }\n\n type TestInterface = (suite: Suite) => void;\n\n interface ReporterConstructor {\n new (runner: Runner, options: MochaOptions): reporters.Base;\n }\n\n type Done = (err?: any) => void;\n\n /**\n * Callback function used for tests and hooks.\n */\n type Func = (this: Context, done: Done) => void;\n\n /**\n * Async callback function used for tests and hooks.\n */\n type AsyncFunc = (this: Context) => PromiseLike;\n\n /**\n * Options to pass to Mocha.\n */\n interface MochaOptions {\n /** Test interfaces (\"bdd\", \"tdd\", \"exports\", etc.). */\n ui?: Interface;\n\n /**\n * Reporter constructor, built-in reporter name, or reporter module path. Defaults to\n * `\"spec\"`.\n */\n reporter?: string | ReporterConstructor;\n\n /** Options to pass to the reporter. */\n reporterOptions?: any;\n\n /** Array of accepted globals. */\n globals?: string[];\n\n /** timeout in milliseconds. */\n timeout?: number;\n\n enableTimeouts?: boolean;\n\n /** number of times to retry failed tests. */\n retries?: number;\n\n /** bail on the first test failure. */\n bail?: boolean;\n\n /** milliseconds to wait before considering a test slow. */\n slow?: number;\n\n /** ignore global leaks. */\n ignoreLeaks?: boolean;\n\n /** display the full stack trace on failure. */\n fullStackTrace?: boolean;\n\n /** string or regexp to filter tests with. */\n grep?: string | RegExp;\n\n /** Enable growl support. */\n growl?: boolean;\n\n /** Emit color output. */\n useColors?: boolean;\n\n /** Use inline diffs rather than +/-. */\n inlineDiffs?: boolean;\n\n /** Do not show diffs at all. */\n hideDiff?: boolean;\n\n asyncOnly?: boolean;\n delay?: boolean;\n forbidOnly?: boolean;\n forbidPending?: boolean;\n noHighlighting?: boolean;\n allowUncaught?: boolean;\n }\n\n interface MochaInstanceOptions extends MochaOptions {\n files?: string[];\n }\n\n /**\n * Variables added to the global scope by Mocha when run in the CLI.\n */\n interface MochaGlobals {\n /**\n * Execute before running tests.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#before\n */\n before: HookFunction;\n\n /**\n * Execute after running tests.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#after\n */\n after: HookFunction;\n\n /**\n * Execute before each test case.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#beforeEach\n */\n beforeEach: HookFunction;\n\n /**\n * Execute after each test case.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#afterEach\n */\n afterEach: HookFunction;\n\n /**\n * Describe a \"suite\" containing nested suites and tests.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n describe: SuiteFunction;\n\n /**\n * Describe a \"suite\" containing nested suites and tests.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n context: SuiteFunction;\n\n /**\n * Pending suite.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n xdescribe: PendingSuiteFunction;\n\n /**\n * Pending suite.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n xcontext: PendingSuiteFunction;\n\n /**\n * Describes a test case.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n it: TestFunction;\n\n /**\n * Describes a test case.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n specify: TestFunction;\n\n /**\n * Describes a pending test case.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n xit: PendingTestFunction;\n\n /**\n * Describes a pending test case.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n xspecify: PendingTestFunction;\n\n /**\n * Execute before running tests.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#before\n */\n suiteSetup: HookFunction;\n\n /**\n * Execute after running tests.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#after\n */\n suiteTeardown: HookFunction;\n\n /**\n * Execute before each test case.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#beforeEach\n */\n setup: HookFunction;\n\n /**\n * Execute after each test case.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#afterEach\n */\n teardown: HookFunction;\n\n /**\n * Describe a \"suite\" containing nested suites and tests.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n suite: SuiteFunction;\n\n /**\n * Describes a test case.\n *\n * - _Only available when invoked via the mocha CLI._\n */\n test: TestFunction;\n\n run: typeof run;\n }\n\n /**\n * Third-party declarations that want to add new entries to the `Reporter` union can\n * contribute names here.\n */\n interface ReporterContributions {\n Base: never;\n base: never;\n Dot: never;\n dot: never;\n TAP: never;\n tap: never;\n JSON: never;\n json: never;\n HTML: never;\n html: never;\n List: never;\n list: never;\n Min: never;\n min: never;\n Spec: never;\n spec: never;\n Nyan: never;\n nyan: never;\n XUnit: never;\n xunit: never;\n Markdown: never;\n markdown: never;\n Progress: never;\n progress: never;\n Landing: never;\n landing: never;\n JSONStream: never;\n \"json-stream\": never;\n }\n\n type Reporter = keyof ReporterContributions;\n\n /**\n * Third-party declarations that want to add new entries to the `Interface` union can\n * contribute names here.\n */\n interface InterfaceContributions {\n bdd: never;\n tdd: never;\n qunit: never;\n exports: never;\n }\n\n type Interface = keyof InterfaceContributions;\n\n // #region Deprecations\n\n /** @deprecated use `Mocha.Context` instead. */\n interface IContext {\n test?: IRunnable;\n runnable(): IRunnable | undefined;\n /** @deprecated `.runnable()` returns `this` in `Mocha.Context`. */\n runnable(runnable: IRunnable): IContext;\n timeout(): number;\n /** @deprecated `.timeout()` returns `this` in `Mocha.Context`. */\n timeout(timeout: number): IContext;\n /** @deprecated `.enableTimeouts()` has additional overloads in `Mocha.Context`. */\n /** @deprecated `.enableTimeouts()` returns `this` in `Mocha.Context`. */\n enableTimeouts(enableTimeouts: boolean): IContext;\n /** @deprecated `.slow()` has additional overloads in `Mocha.Context`. */\n /** @deprecated `.slow()` returns `this` in `Mocha.Context`. */\n slow(slow: number): IContext;\n /** @deprecated `.skip()` returns `never` in `Mocha.Context`. */\n skip(): IContext;\n retries(): number;\n /** @deprecated `.retries()` returns `this` in `Mocha.Context`. */\n retries(retries: number): IContext;\n }\n\n /** @deprecated use `Mocha.Suite` instead. */\n interface ISuiteCallbackContext {\n /** @deprecated `.timeout()` has additional overloads in `Mocha.Suite`. */\n timeout(ms: number | string): this;\n /** @deprecated `.retries()` has additional overloads in `Mocha.Suite`. */\n retries(n: number): this;\n /** @deprecated `.slow()` has additional overloads in `Mocha.Suite`. */\n slow(ms: number): this;\n }\n\n /** @deprecated use `Mocha.Context` instead. */\n interface IHookCallbackContext {\n /** @deprecated `.skip()` returns `never` in `Mocha.Context`. */\n skip(): this;\n /** @deprecated `.timeout()` has additional overloads in `Mocha.Context`. */\n timeout(ms: number | string): this;\n [index: string]: any;\n }\n\n /** @deprecated use `Mocha.Context` instead. */\n interface ITestCallbackContext {\n /** @deprecated `.skip()` returns `never` in `Mocha.Context`. */\n skip(): this;\n /** @deprecated `.timeout()` has additional overloads in `Mocha.Context`. */\n timeout(ms: number | string): this;\n /** @deprecated `.retries()` has additional overloads in `Mocha.Context`. */\n retries(n: number): this;\n /** @deprecated `.slow()` has additional overloads in `Mocha.Context`. */\n slow(ms: number): this;\n [index: string]: any;\n }\n\n /** Partial interface for Mocha's `Runnable` class. */\n /** @deprecated use `Mocha.Runnable` instead. */\n interface IRunnable extends NodeJS.EventEmitter {\n title: string;\n /** @deprecated `.fn` has type `Func | AsyncFunc` in `Mocha.Runnable`. */\n fn: Function | undefined;\n async: boolean;\n sync: boolean;\n timedOut: boolean;\n /** @deprecated `.timeout()` has additional overloads in `Mocha.Runnable`. */\n timeout(n: number | string): this;\n duration?: number;\n }\n\n /** Partial interface for Mocha's `Suite` class. */\n /** @deprecated use `Mocha.Suite` instead. */\n interface ISuite {\n /** @deprecated `.ctx` has type `Mocha.Context` in `Mocha.Suite`. */\n ctx: IContext;\n /** @deprecated `.parent` has type `Mocha.Suite | undefined` in `Mocha.Suite`. */\n parent: ISuite | undefined;\n root: boolean;\n title: string;\n /** @deprecated `.suites` has type `Mocha.Suite[]` in `Mocha.Suite`. */\n suites: ISuite[];\n /** @deprecated `.tests` has type `Mocha.Test[]` in `Mocha.Suite`. */\n tests: ITest[];\n\n bail(): boolean;\n /** @deprecated `.bail()` returns `this` in `Mocha.Suite`. */\n bail(bail: boolean): ISuite;\n fullTitle(): string;\n retries(): number;\n /** @deprecated `.retries()` returns `this` in `Mocha.Suite`. */\n retries(retries: number): ISuite;\n slow(): number;\n /** @deprecated `.slow()` returns `this` in `Mocha.Suite`. */\n slow(slow: number): ISuite;\n timeout(): number;\n /** @deprecated `.timeout()` returns `this` in `Mocha.Suite`. */\n timeout(timeout: number): ISuite;\n }\n\n /** Partial interface for Mocha's `Test` class. */\n /** @deprecated use `Mocha.Test` instead. */\n interface ITest extends IRunnable {\n body?: string;\n file?: string;\n /** @deprecated `.parent` has type `Mocha.Suite | undefined` in `Mocha.Test`. */\n parent?: ISuite;\n pending: boolean;\n state?: 'failed' | 'passed';\n type: 'test';\n fullTitle(): string;\n }\n\n /** @deprecated use `Mocha.Hook` instead. */\n interface IHook extends IRunnable {\n /** @deprecated `.ctx` has type `Mocha.Context` in `Mocha.Runnable`. */\n ctx?: IContext;\n /** @deprecated `.parent` has type `Mocha.Suite` in `Mocha.Runnable`. */\n parent?: ISuite;\n type: 'hook';\n /** @deprecated `.error()` has additional overloads in `Mocha.Hook`. */\n error(err: Error): void;\n }\n\n /** @deprecated use `Mocha.Context` instead. */\n interface IBeforeAndAfterContext extends IHookCallbackContext {\n /** @deprecated `.currentTest` has type `Mocha.Test` in `Mocha.Context`. */\n currentTest?: ITest;\n }\n\n /** @deprecated use `Mocha.Stats` instead. */\n type IStats = Stats;\n\n /** Partial interface for Mocha's `Runner` class. */\n /** @deprecated use `Mocha.Runner` instead. */\n interface IRunner extends NodeJS.EventEmitter {\n asyncOnly?: boolean;\n stats?: IStats;\n started: boolean;\n /** @deprecated `.suite` has type `Mocha.Suite` in `Mocha.Runner`. */\n suite: ISuite;\n total: number;\n failures: number;\n forbidOnly?: boolean;\n forbidPending?: boolean;\n fullStackTrace?: boolean;\n ignoreLeaks?: boolean;\n grep(re: RegExp, invert: boolean): this;\n /** @deprecated Parameter `suite` has type `Mocha.Suite` in `Mocha.Runner`. */\n grepTotal(suite: ISuite): number;\n /** @deprecated `.globals()` has different overloads in `Mocha.Runner`. */\n globals(arr: ReadonlyArray): this | string[];\n abort(): this;\n run(fn?: (failures: number) => void): this;\n }\n\n /** @deprecated use `Mocha.SuiteFunction` instead. */\n interface IContextDefinition {\n /** @deprecated use `Mocha.SuiteFunction` instead. */\n (description: string, callback: (this: ISuiteCallbackContext) => void): ISuite;\n /** @deprecated use `Mocha.SuiteFunction` instead. */\n only(description: string, callback: (this: ISuiteCallbackContext) => void): ISuite;\n /** @deprecated use `Mocha.SuiteFunction` instead. */\n skip(description: string, callback: (this: ISuiteCallbackContext) => void): void;\n }\n\n /** @deprecated use `Mocha.TestFunction` instead. */\n interface ITestDefinition {\n /** @deprecated use `Mocha.TestFunction` instead. */\n /** @deprecated `Mocha.TestFunction` does not allow mixing `done` with a return type of `PromiseLike`. */\n (expectation: string, callback?: (this: ITestCallbackContext, done: MochaDone) => PromiseLike | void): ITest;\n /** @deprecated use `Mocha.TestFunction` instead. */\n /** @deprecated `Mocha.TestFunction#only` does not allow mixing `done` with a return type of `PromiseLike`. */\n only(expectation: string, callback?: (this: ITestCallbackContext, done: MochaDone) => PromiseLike | void): ITest;\n /** @deprecated use `Mocha.TestFunction` instead. */\n /** @deprecated `Mocha.TestFunction#skip` does not allow mixing `done` with a return type of `PromiseLike`. */\n skip(expectation: string, callback?: (this: ITestCallbackContext, done: MochaDone) => PromiseLike | void): void;\n }\n\n // #endregion\n}\n\n// #region Test interface augmentations\n\n/**\n * Triggers root suite execution.\n *\n * - _Only available if flag --delay is passed into Mocha._\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#runWithSuite\n */\ndeclare function run(): void;\n\n/**\n * Execute before running tests.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#before\n */\ndeclare var before: Mocha.HookFunction;\n\n/**\n * Execute before running tests.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#before\n */\ndeclare var suiteSetup: Mocha.HookFunction;\n\n/**\n * Execute after running tests.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#after\n */\ndeclare var after: Mocha.HookFunction;\n\n/**\n * Execute after running tests.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#after\n */\ndeclare var suiteTeardown: Mocha.HookFunction;\n\n/**\n * Execute before each test case.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#beforeEach\n */\ndeclare var beforeEach: Mocha.HookFunction;\n\n/**\n * Execute before each test case.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#beforeEach\n */\ndeclare var setup: Mocha.HookFunction;\n\n/**\n * Execute after each test case.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#afterEach\n */\ndeclare var afterEach: Mocha.HookFunction;\n\n/**\n * Execute after each test case.\n *\n * - _Only available when invoked via the mocha CLI._\n *\n * @see https://mochajs.org/api/global.html#afterEach\n */\ndeclare var teardown: Mocha.HookFunction;\n\n/**\n * Describe a \"suite\" containing nested suites and tests.\n *\n * - _Only available when invoked via the mocha CLI._\n */\ndeclare var describe: Mocha.SuiteFunction;\n\n/**\n * Describe a \"suite\" containing nested suites and tests.\n *\n * - _Only available when invoked via the mocha CLI._\n */\ndeclare var context: Mocha.SuiteFunction;\n\n/**\n * Describe a \"suite\" containing nested suites and tests.\n *\n * - _Only available when invoked via the mocha CLI._\n */\ndeclare var suite: Mocha.SuiteFunction;\n\n/**\n * Pending suite.\n *\n * - _Only available when invoked via the mocha CLI._\n */\ndeclare var xdescribe: Mocha.PendingSuiteFunction;\n\n/**\n * Pending suite.\n *\n * - _Only available when invoked via the mocha CLI._\n */\ndeclare var xcontext: Mocha.PendingSuiteFunction;\n\n/**\n * Describes a test case.\n *\n * - _Only available when invoked via the mocha CLI._\n */\ndeclare var it: Mocha.TestFunction;\n\n/**\n * Describes a test case.\n *\n * - _Only available when invoked via the mocha CLI._\n */\ndeclare var specify: Mocha.TestFunction;\n\n/**\n * Describes a test case.\n *\n * - _Only available when invoked via the mocha CLI._\n */\ndeclare var test: Mocha.TestFunction;\n\n/**\n * Describes a pending test case.\n *\n * - _Only available when invoked via the mocha CLI._\n */\ndeclare var xit: Mocha.PendingTestFunction;\n\n/**\n * Describes a pending test case.\n *\n * - _Only available when invoked via the mocha CLI._\n */\ndeclare var xspecify: Mocha.PendingTestFunction;\n\n// #endregion Test interface augmentations\n\n// #region Reporter augmentations\n\n// Forward declaration for `HTMLLIElement` from lib.dom.d.ts.\n// Required by Mocha.reporters.HTML.\n// NOTE: Mocha *must not* have a direct dependency on DOM types.\n// tslint:disable-next-line no-empty-interface\ninterface HTMLLIElement { }\n\n// Augments the DOM `Window` object when lib.dom.d.ts is loaded.\n// tslint:disable-next-line no-empty-interface\ninterface Window extends Mocha.MochaGlobals { }\n\ndeclare namespace NodeJS {\n // Forward declaration for `NodeJS.EventEmitter` from node.d.ts.\n // Required by Mocha.Runnable, Mocha.Runner, and Mocha.Suite.\n // NOTE: Mocha *must not* have a direct dependency on @types/node.\n // tslint:disable-next-line no-empty-interface\n interface EventEmitter { }\n\n // Augments NodeJS's `global` object when node.d.ts is loaded\n // tslint:disable-next-line no-empty-interface\n interface Global extends Mocha.MochaGlobals { }\n}\n\n// #endregion Reporter augmentations\n\n// #region Browser augmentations\n\n/**\n * Mocha global.\n *\n * - _Only supported in the browser._\n */\ndeclare const mocha: BrowserMocha;\n\ninterface BrowserMocha extends Mocha {\n /**\n * Function to allow assertion libraries to throw errors directly into mocha.\n * This is useful when running tests in a browser because window.onerror will\n * only receive the 'message' attribute of the Error.\n *\n * - _Only supported in the browser._\n */\n throwError(err: any): never;\n\n /**\n * Setup mocha with the given settings options.\n *\n * - _Only supported in the browser._\n */\n setup(opts?: Mocha.Interface | MochaSetupOptions): this;\n}\n\n/**\n * Options to pass to `mocha.setup` in the browser.\n */\ninterface MochaSetupOptions extends Mocha.MochaOptions {\n /** @deprecated This is not used by Mocha. Use `files` instead. */\n require?: string[];\n fullTrace?: boolean;\n}\n\n// #endregion Browser augmentations\n\n// #region Deprecations\n\n/** @deprecated use `Mocha.Done` instead. */\ntype MochaDone = Mocha.Done;\n\n/** @deprecated use `Mocha.ReporterConstructor` instead. */\ntype ReporterConstructor = Mocha.ReporterConstructor;\n\n// #endregion Deprecations\n\ndeclare module \"mocha\" {\n export = Mocha;\n}\n\ndeclare module \"mocha/lib/ms\" {\n export = milliseconds;\n /**\n * Parse the given `str` and return milliseconds.\n *\n * @see {@link https://mochajs.org/api/module-milliseconds.html}\n * @see {@link https://mochajs.org/api/module-milliseconds.html#~parse}\n */\n function milliseconds(val: string): number;\n\n /**\n * Format for `ms`.\n *\n * @see {@link https://mochajs.org/api/module-milliseconds.html}\n * @see {@link https://mochajs.org/api/module-milliseconds.html#~format}\n */\n function milliseconds(val: number): string;\n}\n\ndeclare module \"mocha/lib/interfaces/common\" {\n export = common;\n\n function common(suites: Mocha.Suite[], context: Mocha.MochaGlobals, mocha: Mocha): common.CommonFunctions;\n\n namespace common {\n interface CommonFunctions {\n /**\n * This is only present if flag --delay is passed into Mocha. It triggers\n * root suite execution.\n */\n runWithSuite(suite: Mocha.Suite): () => void;\n\n /**\n * Execute before running tests.\n */\n before(fn?: Mocha.Func | Mocha.AsyncFunc): void;\n\n /**\n * Execute before running tests.\n */\n before(name: string, fn?: Mocha.Func | Mocha.AsyncFunc): void;\n\n /**\n * Execute after running tests.\n */\n after(fn?: Mocha.Func | Mocha.AsyncFunc): void;\n\n /**\n * Execute after running tests.\n */\n after(name: string, fn?: Mocha.Func | Mocha.AsyncFunc): void;\n\n /**\n * Execute before each test case.\n */\n beforeEach(fn?: Mocha.Func | Mocha.AsyncFunc): void;\n\n /**\n * Execute before each test case.\n */\n beforeEach(name: string, fn?: Mocha.Func | Mocha.AsyncFunc): void;\n\n /**\n * Execute after each test case.\n */\n afterEach(fn?: Mocha.Func | Mocha.AsyncFunc): void;\n\n /**\n * Execute after each test case.\n */\n afterEach(name: string, fn?: Mocha.Func | Mocha.AsyncFunc): void;\n\n suite: SuiteFunctions;\n test: TestFunctions;\n }\n\n interface CreateOptions {\n /** Title of suite */\n title: string;\n\n /** Suite function */\n fn?: (this: Mocha.Suite) => void;\n\n /** Is suite pending? */\n pending?: boolean;\n\n /** Filepath where this Suite resides */\n file?: string;\n\n /** Is suite exclusive? */\n isOnly?: boolean;\n }\n\n interface SuiteFunctions {\n /**\n * Create an exclusive Suite; convenience function\n */\n only(opts: CreateOptions): Mocha.Suite;\n\n /**\n * Create a Suite, but skip it; convenience function\n */\n skip(opts: CreateOptions): Mocha.Suite;\n\n /**\n * Creates a suite.\n */\n create(opts: CreateOptions): Mocha.Suite;\n }\n\n interface TestFunctions {\n /**\n * Exclusive test-case.\n */\n only(mocha: Mocha, test: Mocha.Test): Mocha.Test;\n\n /**\n * Pending test case.\n */\n skip(title: string): void;\n\n /**\n * Number of retry attempts\n */\n retries(n: number): void;\n }\n }\n}\n\n// Type definitions for chai 4.2\n// Project: http://chaijs.com/\n// Definitions by: Jed Mao ,\n// Bart van der Schoor ,\n// Andrew Brown ,\n// Olivier Chevet ,\n// Matt Wistrand ,\n// Josh Goldberg \n// Shaun Luttin \n// Gintautas Miselis \n// Satana Charuwichitratana \n// Erik Schierboom \n// Rebecca Turner \n// Bogdan Paranytsia \n// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped\n// TypeScript Version: 3.0\n\ndeclare namespace Chai {\n type Message = string | (() => string);\n type ObjectProperty = string | symbol | number;\n\n interface PathInfo {\n parent: object;\n name: string;\n value?: any;\n exists: boolean;\n }\n\n interface ErrorConstructor {\n new(...args: any[]): Error;\n }\n\n interface ChaiUtils {\n addChainableMethod(\n // object to define the method on, e.g. chai.Assertion.prototype\n ctx: object,\n // method name\n name: string,\n // method itself; any arguments\n method: (...args: any[]) => void,\n // called when property is accessed\n chainingBehavior?: () => void\n ): void;\n overwriteChainableMethod(\n ctx: object,\n name: string,\n method: (...args: any[]) => void,\n chainingBehavior?: () => void\n ): void;\n addLengthGuard(\n fn: Function,\n assertionName: string,\n isChainable: boolean\n ): void;\n addMethod(ctx: object, name: string, method: Function): void;\n addProperty(ctx: object, name: string, getter: () => any): void;\n overwriteMethod(ctx: object, name: string, method: Function): void;\n overwriteProperty(ctx: object, name: string, getter: () => any): void;\n compareByInspect(a: object, b: object): -1 | 1;\n expectTypes(obj: object, types: string[]): void;\n flag(obj: object, key: string, value?: any): any;\n getActual(obj: object, args: AssertionArgs): any;\n getProperties(obj: object): string[];\n getEnumerableProperties(obj: object): string[];\n getOwnEnumerablePropertySymbols(obj: object): symbol[];\n getOwnEnumerableProperties(obj: object): Array;\n getMessage(errorLike: Error | string): string;\n getMessage(obj: any, args: AssertionArgs): string;\n inspect(obj: any, showHidden?: boolean, depth?: number, colors?: boolean): void;\n isProxyEnabled(): boolean;\n objDisplay(obj: object): void;\n proxify(obj: object, nonChainableMethodName: string): object;\n test(obj: object, args: AssertionArgs): boolean;\n transferFlags(assertion: Assertion, obj: object, includeAll?: boolean): void;\n compatibleInstance(thrown: Error, errorLike: Error | ErrorConstructor): boolean;\n compatibleConstructor(thrown: Error, errorLike: Error | ErrorConstructor): boolean;\n compatibleMessage(thrown: Error, errMatcher: string | RegExp): boolean;\n getConstructorName(constructorFn: Function): string;\n getFuncName(constructorFn: Function): string | null;\n\n // Reexports from pathval:\n hasProperty(obj: object | undefined | null, name: ObjectProperty): boolean;\n getPathInfo(obj: object, path: string): PathInfo;\n getPathValue(obj: object, path: string): object | undefined;\n }\n\n type ChaiPlugin = (chai: ChaiStatic, utils: ChaiUtils) => void;\n\n interface ChaiStatic {\n expect: ExpectStatic;\n should(): Should;\n /**\n * Provides a way to extend the internals of Chai\n */\n use(fn: ChaiPlugin): ChaiStatic;\n util: ChaiUtils;\n assert: AssertStatic;\n config: Config;\n Assertion: AssertionStatic;\n AssertionError: typeof AssertionError;\n version: string;\n }\n\n export interface ExpectStatic {\n (val: any, message?: string): Assertion;\n fail(actual?: any, expected?: any, message?: string, operator?: Operator): void;\n }\n\n export interface AssertStatic extends Assert {\n }\n\n // chai.Assertion.prototype.assert arguments\n type AssertionArgs = [\n // 'expression to be tested'\n // This parameter is unused and the docs list its type as\n // 'Philosophical', which is mentioned nowhere else in the source. Do\n // with that what you will!\n any,\n Message, // message if value fails\n Message, // message if negated value fails\n any, // expected value\n any?, // actual value\n boolean? // showDiff\n ];\n\n export interface AssertionPrototype {\n assert(...args: AssertionArgs): void;\n _obj: any;\n }\n\n export interface AssertionStatic extends AssertionPrototype {\n prototype: AssertionPrototype;\n\n new (target: any, message?: string, ssfi?: Function, lockSsfi?: boolean): Assertion;\n\n // Deprecated properties:\n includeStack: boolean;\n showDiff: boolean;\n\n // Partials of functions on ChaiUtils:\n addProperty(name: string, getter: (this: AssertionStatic) => any): void;\n addMethod(name: string, method: (this: AssertionStatic, ...args: any[]) => any): void;\n addChainableMethod(\n name: string,\n method: (this: AssertionStatic, ...args: any[]) => void,\n chainingBehavior?: () => void\n ): void;\n overwriteProperty(name: string, getter: (this: AssertionStatic) => any): void;\n overwriteMethod(name: string, method: (this: AssertionStatic, ...args: any[]) => any): void;\n overwriteChainableMethod(\n name: string,\n method: (this: AssertionStatic, ...args: any[]) => void,\n chainingBehavior?: () => void\n ): void;\n }\n\n export type Operator = string; // \"==\" | \"===\" | \">\" | \">=\" | \"<\" | \"<=\" | \"!=\" | \"!==\";\n\n export type OperatorComparable = boolean | null | number | string | undefined | Date;\n\n interface ShouldAssertion {\n equal(value1: any, value2: any, message?: string): void;\n Throw: ShouldThrow;\n throw: ShouldThrow;\n exist(value: any, message?: string): void;\n }\n\n interface Should extends ShouldAssertion {\n not: ShouldAssertion;\n fail(actual: any, expected: any, message?: string, operator?: Operator): void;\n }\n\n interface ShouldThrow {\n (actual: Function, expected?: string|RegExp, message?: string): void;\n (actual: Function, constructor: Error|Function, expected?: string|RegExp, message?: string): void;\n }\n\n interface Assertion extends LanguageChains, NumericComparison, TypeComparison {\n not: Assertion;\n deep: Deep;\n ordered: Ordered;\n nested: Nested;\n own: Own;\n any: KeyFilter;\n all: KeyFilter;\n a: TypeComparison;\n an: TypeComparison;\n include: Include;\n includes: Include;\n contain: Include;\n contains: Include;\n ok: Assertion;\n true: Assertion;\n false: Assertion;\n null: Assertion;\n undefined: Assertion;\n NaN: Assertion;\n exist: Assertion;\n empty: Assertion;\n arguments: Assertion;\n Arguments: Assertion;\n equal: Equal;\n equals: Equal;\n eq: Equal;\n eql: Equal;\n eqls: Equal;\n property: Property;\n ownProperty: Property;\n haveOwnProperty: Property;\n ownPropertyDescriptor: OwnPropertyDescriptor;\n haveOwnPropertyDescriptor: OwnPropertyDescriptor;\n length: Length;\n lengthOf: Length;\n match: Match;\n matches: Match;\n string(string: string, message?: string): Assertion;\n keys: Keys;\n key(string: string): Assertion;\n throw: Throw;\n throws: Throw;\n Throw: Throw;\n respondTo: RespondTo;\n respondsTo: RespondTo;\n itself: Assertion;\n satisfy: Satisfy;\n satisfies: Satisfy;\n closeTo: CloseTo;\n approximately: CloseTo;\n members: Members;\n increase: PropertyChange;\n increases: PropertyChange;\n decrease: PropertyChange;\n decreases: PropertyChange;\n change: PropertyChange;\n changes: PropertyChange;\n extensible: Assertion;\n sealed: Assertion;\n frozen: Assertion;\n oneOf(list: ReadonlyArray, message?: string): Assertion;\n }\n\n interface LanguageChains {\n to: Assertion;\n be: Assertion;\n been: Assertion;\n is: Assertion;\n that: Assertion;\n which: Assertion;\n and: Assertion;\n has: Assertion;\n have: Assertion;\n with: Assertion;\n at: Assertion;\n of: Assertion;\n same: Assertion;\n but: Assertion;\n does: Assertion;\n }\n\n interface NumericComparison {\n above: NumberComparer;\n gt: NumberComparer;\n greaterThan: NumberComparer;\n least: NumberComparer;\n gte: NumberComparer;\n below: NumberComparer;\n lt: NumberComparer;\n lessThan: NumberComparer;\n most: NumberComparer;\n lte: NumberComparer;\n within(start: number, finish: number, message?: string): Assertion;\n within(start: Date, finish: Date, message?: string): Assertion;\n }\n\n interface NumberComparer {\n (value: number | Date, message?: string): Assertion;\n }\n\n interface TypeComparison {\n (type: string, message?: string): Assertion;\n instanceof: InstanceOf;\n instanceOf: InstanceOf;\n }\n\n interface InstanceOf {\n (constructor: any, message?: string): Assertion;\n }\n\n interface CloseTo {\n (expected: number, delta: number, message?: string): Assertion;\n }\n\n interface Nested {\n include: Include;\n includes: Include;\n contain: Include;\n contains: Include;\n property: Property;\n members: Members;\n }\n\n interface Own {\n include: Include;\n includes: Include;\n contain: Include;\n contains: Include;\n property: Property;\n }\n\n interface Deep {\n equal: Equal;\n equals: Equal;\n eq: Equal;\n include: Include;\n includes: Include;\n contain: Include;\n contains: Include;\n property: Property;\n members: Members;\n ordered: Ordered;\n nested: Nested;\n own: Own;\n }\n\n interface Ordered {\n members: Members;\n }\n\n interface KeyFilter {\n keys: Keys;\n members: Members;\n }\n\n interface Equal {\n (value: any, message?: string): Assertion;\n }\n\n interface Property {\n (name: string, value: any, message?: string): Assertion;\n (name: string, message?: string): Assertion;\n }\n\n interface OwnPropertyDescriptor {\n (name: string, descriptor: PropertyDescriptor, message?: string): Assertion;\n (name: string, message?: string): Assertion;\n }\n\n interface Length extends LanguageChains, NumericComparison {\n (length: number, message?: string): Assertion;\n }\n\n interface Include {\n (value: any, message?: string): Assertion;\n keys: Keys;\n deep: Deep;\n ordered: Ordered;\n members: Members;\n any: KeyFilter;\n all: KeyFilter;\n }\n\n interface Match {\n (regexp: RegExp, message?: string): Assertion;\n }\n\n interface Keys {\n (...keys: string[]): Assertion;\n (keys: ReadonlyArray|Object): Assertion;\n }\n\n interface Throw {\n (expected?: string|RegExp, message?: string): Assertion;\n (constructor: Error|Function, expected?: string|RegExp, message?: string): Assertion;\n }\n\n interface RespondTo {\n (method: string, message?: string): Assertion;\n }\n\n interface Satisfy {\n (matcher: Function, message?: string): Assertion;\n }\n\n interface Members {\n (set: ReadonlyArray, message?: string): Assertion;\n }\n\n interface PropertyChange {\n (object: Object, property?: string, message?: string): Assertion;\n }\n\n export interface Assert {\n /**\n * @param expression Expression to test for truthiness.\n * @param message Message to display on error.\n */\n (expression: any, message?: string): void;\n\n /**\n * Throws a failure.\n *\n * @type T Type of the objects.\n * @param actual Actual value.\n * @param expected Potential expected value.\n * @param message Message to display on error.\n * @param operator Comparison operator, if not strict equality.\n * @remarks Node.js assert module-compatible.\n */\n fail(actual?: T, expected?: T, message?: string, operator?: Operator): void;\n\n /**\n * Asserts that object is truthy.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param message Message to display on error.\n */\n isOk(value: T, message?: string): void;\n\n /**\n * Asserts that object is truthy.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param message Message to display on error.\n */\n ok(value: T, message?: string): void;\n\n /**\n * Asserts that object is falsy.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param message Message to display on error.\n */\n isNotOk(value: T, message?: string): void;\n\n /**\n * Asserts that object is falsy.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param message Message to display on error.\n */\n notOk(value: T, message?: string): void;\n\n /**\n * Asserts non-strict equality (==) of actual and expected.\n *\n * @type T Type of the objects.\n * @param actual Actual value.\n * @param expected Potential expected value.\n * @param message Message to display on error.\n */\n equal(actual: T, expected: T, message?: string): void;\n\n /**\n * Asserts non-strict inequality (==) of actual and expected.\n *\n * @type T Type of the objects.\n * @param actual Actual value.\n * @param expected Potential expected value.\n * @param message Message to display on error.\n */\n notEqual(actual: T, expected: T, message?: string): void;\n\n /**\n * Asserts strict equality (===) of actual and expected.\n *\n * @type T Type of the objects.\n * @param actual Actual value.\n * @param expected Potential expected value.\n * @param message Message to display on error.\n */\n strictEqual(actual: T, expected: T, message?: string): void;\n\n /**\n * Asserts strict inequality (==) of actual and expected.\n *\n * @type T Type of the objects.\n * @param actual Actual value.\n * @param expected Potential expected value.\n * @param message Message to display on error.\n */\n notStrictEqual(actual: T, expected: T, message?: string): void;\n\n /**\n * Asserts that actual is deeply equal (==) to expected.\n *\n * @type T Type of the objects.\n * @param actual Actual value.\n * @param expected Potential expected value.\n * @param message Message to display on error.\n */\n deepEqual(actual: T, expected: T, message?: string): void;\n\n /**\n * Asserts that actual is not deeply equal (==) to expected.\n *\n * @type T Type of the objects.\n * @param actual Actual value.\n * @param expected Potential expected value.\n * @param message Message to display on error.\n */\n notDeepEqual(actual: T, expected: T, message?: string): void;\n\n /**\n * Asserts that actual is deeply strict equal (===) to expected.\n *\n * @type T Type of the objects.\n * @param actual Actual value.\n * @param expected Potential expected value.\n * @param message Message to display on error.\n */\n deepStrictEqual(actual: T, expected: T, message?: string): void;\n\n /**\n * Asserts valueToCheck is strictly greater than (>) valueToBeAbove.\n *\n * @param valueToCheck Actual value.\n * @param valueToBeAbove Minimum Potential expected value.\n * @param message Message to display on error.\n */\n isAbove(valueToCheck: number, valueToBeAbove: number, message?: string): void;\n\n /**\n * Asserts valueToCheck is greater than or equal to (>=) valueToBeAtLeast.\n *\n * @param valueToCheck Actual value.\n * @param valueToBeAtLeast Minimum Potential expected value.\n * @param message Message to display on error.\n */\n isAtLeast(valueToCheck: number, valueToBeAtLeast: number, message?: string): void;\n\n /**\n * Asserts valueToCheck is strictly less than (<) valueToBeBelow.\n *\n * @param valueToCheck Actual value.\n * @param valueToBeBelow Minimum Potential expected value.\n * @param message Message to display on error.\n */\n isBelow(valueToCheck: number, valueToBeBelow: number, message?: string): void;\n\n /**\n * Asserts valueToCheck is less than or equal to (<=) valueToBeAtMost.\n *\n * @param valueToCheck Actual value.\n * @param valueToBeAtMost Minimum Potential expected value.\n * @param message Message to display on error.\n */\n isAtMost(valueToCheck: number, valueToBeAtMost: number, message?: string): void;\n\n /**\n * Asserts that value is true.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isTrue(value: T, message?: string): void;\n\n /**\n * Asserts that value is false.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isFalse(value: T, message?: string): void;\n\n /**\n * Asserts that value is not true.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isNotTrue(value: T, message?: string): void;\n\n /**\n * Asserts that value is not false.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isNotFalse(value: T, message?: string): void;\n\n /**\n * Asserts that value is null.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isNull(value: T, message?: string): void;\n\n /**\n * Asserts that value is not null.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isNotNull(value: T, message?: string): void;\n\n /**\n * Asserts that value is NaN.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isNaN(value: T, message?: string): void;\n\n /**\n * Asserts that value is not NaN.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isNotNaN(value: T, message?: string): void;\n\n /**\n * Asserts that the target is neither null nor undefined.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n exists(value: T, message?: string): void;\n\n /**\n * Asserts that the target is either null or undefined.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n notExists(value: T, message?: string): void;\n\n /**\n * Asserts that value is undefined.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isUndefined(value: T, message?: string): void;\n\n /**\n * Asserts that value is not undefined.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isDefined(value: T, message?: string): void;\n\n /**\n * Asserts that value is a function.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isFunction(value: T, message?: string): void;\n\n /**\n * Asserts that value is not a function.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isNotFunction(value: T, message?: string): void;\n\n /**\n * Asserts that value is an object of type 'Object'\n * (as revealed by Object.prototype.toString).\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n * @remarks The assertion does not match subclassed objects.\n */\n isObject(value: T, message?: string): void;\n\n /**\n * Asserts that value is not an object of type 'Object'\n * (as revealed by Object.prototype.toString).\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isNotObject(value: T, message?: string): void;\n\n /**\n * Asserts that value is an array.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isArray(value: T, message?: string): void;\n\n /**\n * Asserts that value is not an array.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isNotArray(value: T, message?: string): void;\n\n /**\n * Asserts that value is a string.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isString(value: T, message?: string): void;\n\n /**\n * Asserts that value is not a string.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isNotString(value: T, message?: string): void;\n\n /**\n * Asserts that value is a number.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isNumber(value: T, message?: string): void;\n\n /**\n * Asserts that value is not a number.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isNotNumber(value: T, message?: string): void;\n\n /**\n * Asserts that value is a boolean.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isBoolean(value: T, message?: string): void;\n\n /**\n * Asserts that value is not a boolean.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param message Message to display on error.\n */\n isNotBoolean(value: T, message?: string): void;\n\n /**\n * Asserts that value's type is name, as determined by Object.prototype.toString.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param name Potential expected type name of value.\n * @param message Message to display on error.\n */\n typeOf(value: T, name: string, message?: string): void;\n\n /**\n * Asserts that value's type is not name, as determined by Object.prototype.toString.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param name Potential expected type name of value.\n * @param message Message to display on error.\n */\n notTypeOf(value: T, name: string, message?: string): void;\n\n /**\n * Asserts that value is an instance of constructor.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param constructor Potential expected contructor of value.\n * @param message Message to display on error.\n */\n instanceOf(value: T, constructor: Function, message?: string): void;\n\n /**\n * Asserts that value is not an instance of constructor.\n *\n * @type T Type of value.\n * @param value Actual value.\n * @param constructor Potential expected contructor of value.\n * @param message Message to display on error.\n */\n notInstanceOf(value: T, type: Function, message?: string): void;\n\n /**\n * Asserts that haystack includes needle.\n *\n * @param haystack Container string.\n * @param needle Potential substring of haystack.\n * @param message Message to display on error.\n */\n include(haystack: string, needle: string, message?: string): void;\n\n /**\n * Asserts that haystack includes needle.\n *\n * @type T Type of values in haystack.\n * @param haystack Container array, set or map.\n * @param needle Potential value contained in haystack.\n * @param message Message to display on error.\n */\n include(haystack: ReadonlyArray | ReadonlySet | ReadonlyMap, needle: T, message?: string): void;\n\n /**\n * Asserts that haystack includes needle.\n *\n * @type T Type of values in haystack.\n * @param haystack WeakSet container.\n * @param needle Potential value contained in haystack.\n * @param message Message to display on error.\n */\n include(haystack: WeakSet, needle: T, message?: string): void;\n\n /**\n * Asserts that haystack includes needle.\n *\n * @type T Type of haystack.\n * @param haystack Object.\n * @param needle Potential subset of the haystack's properties.\n * @param message Message to display on error.\n */\n include(haystack: T, needle: Partial, message?: string): void;\n\n /**\n * Asserts that haystack does not includes needle.\n *\n * @param haystack Container string.\n * @param needle Potential substring of haystack.\n * @param message Message to display on error.\n */\n notInclude(haystack: string, needle: string, message?: string): void;\n\n /**\n * Asserts that haystack does not includes needle.\n *\n * @type T Type of values in haystack.\n * @param haystack Container array, set or map.\n * @param needle Potential value contained in haystack.\n * @param message Message to display on error.\n */\n notInclude(haystack: ReadonlyArray | ReadonlySet | ReadonlyMap, needle: T, message?: string): void;\n\n /**\n * Asserts that haystack does not includes needle.\n *\n * @type T Type of values in haystack.\n * @param haystack WeakSet container.\n * @param needle Potential value contained in haystack.\n * @param message Message to display on error.\n */\n notInclude(haystack: WeakSet, needle: T, message?: string): void;\n\n /**\n * Asserts that haystack does not includes needle.\n *\n * @type T Type of haystack.\n * @param haystack Object.\n * @param needle Potential subset of the haystack's properties.\n * @param message Message to display on error.\n */\n notInclude(haystack: T, needle: Partial, message?: string): void;\n\n /**\n * Asserts that haystack includes needle. Deep equality is used.\n *\n * @param haystack Container string.\n * @param needle Potential substring of haystack.\n * @param message Message to display on error.\n *\n * @deprecated Does not have any effect on string. Use {@link Assert#include} instead.\n */\n deepInclude(haystack: string, needle: string, message?: string): void;\n\n /**\n * Asserts that haystack includes needle. Deep equality is used.\n *\n * @type T Type of values in haystack.\n * @param haystack Container array, set or map.\n * @param needle Potential value contained in haystack.\n * @param message Message to display on error.\n */\n deepInclude(haystack: ReadonlyArray | ReadonlySet | ReadonlyMap, needle: T, message?: string): void;\n\n /**\n * Asserts that haystack does not includes needle.\n *\n * @type T Type of haystack.\n * @param haystack Object.\n * @param needle Potential subset of the haystack's properties.\n * @param message Message to display on error.\n */\n deepInclude(haystack: T, needle: T extends WeakSet ? never : Partial, message?: string): void;\n\n /**\n * Asserts that haystack does not includes needle. Deep equality is used.\n *\n * @param haystack Container string.\n * @param needle Potential substring of haystack.\n * @param message Message to display on error.\n *\n * @deprecated Does not have any effect on string. Use {@link Assert#notInclude} instead.\n */\n notDeepInclude(haystack: string, needle: string, message?: string): void;\n\n /**\n * Asserts that haystack does not includes needle. Deep equality is used.\n *\n * @type T Type of values in haystack.\n * @param haystack Container array, set or map.\n * @param needle Potential value contained in haystack.\n * @param message Message to display on error.\n */\n notDeepInclude(haystack: ReadonlyArray | ReadonlySet | ReadonlyMap, needle: T, message?: string): void;\n\n /**\n * Asserts that haystack does not includes needle. Deep equality is used.\n *\n * @type T Type of haystack.\n * @param haystack Object.\n * @param needle Potential subset of the haystack's properties.\n * @param message Message to display on error.\n */\n notDeepInclude(haystack: T, needle: T extends WeakSet ? never : Partial, message?: string): void;\n\n /**\n * Asserts that ‘haystack’ includes ‘needle’. Can be used to assert the inclusion of a subset of properties in an object.\n *\n * Enables the use of dot- and bracket-notation for referencing nested properties.\n * ‘[]’ and ‘.’ in property names can be escaped using double backslashes.Asserts that ‘haystack’ includes ‘needle’.\n * Can be used to assert the inclusion of a subset of properties in an object.\n * Enables the use of dot- and bracket-notation for referencing nested properties.\n * ‘[]’ and ‘.’ in property names can be escaped using double backslashes.\n *\n * @param haystack\n * @param needle\n * @param message Message to display on error.\n */\n nestedInclude(haystack: any, needle: any, message?: string): void;\n\n /**\n * Asserts that ‘haystack’ does not include ‘needle’. Can be used to assert the absence of a subset of properties in an object.\n *\n * Enables the use of dot- and bracket-notation for referencing nested properties.\n * ‘[]’ and ‘.’ in property names can be escaped using double backslashes.Asserts that ‘haystack’ includes ‘needle’.\n * Can be used to assert the inclusion of a subset of properties in an object.\n * Enables the use of dot- and bracket-notation for referencing nested properties.\n * ‘[]’ and ‘.’ in property names can be escaped using double backslashes.\n *\n * @param haystack\n * @param needle\n * @param message Message to display on error.\n */\n notNestedInclude(haystack: any, needle: any, message?: string): void;\n\n /**\n * Asserts that ‘haystack’ includes ‘needle’. Can be used to assert the inclusion of a subset of properties in an object while checking for deep equality\n *\n * Enables the use of dot- and bracket-notation for referencing nested properties.\n * ‘[]’ and ‘.’ in property names can be escaped using double backslashes.Asserts that ‘haystack’ includes ‘needle’.\n * Can be used to assert the inclusion of a subset of properties in an object.\n * Enables the use of dot- and bracket-notation for referencing nested properties.\n * ‘[]’ and ‘.’ in property names can be escaped using double backslashes.\n *\n * @param haystack\n * @param needle\n * @param message Message to display on error.\n */\n deepNestedInclude(haystack: any, needle: any, message?: string): void;\n\n /**\n * Asserts that ‘haystack’ does not include ‘needle’. Can be used to assert the absence of a subset of properties in an object while checking for deep equality.\n *\n * Enables the use of dot- and bracket-notation for referencing nested properties.\n * ‘[]’ and ‘.’ in property names can be escaped using double backslashes.Asserts that ‘haystack’ includes ‘needle’.\n * Can be used to assert the inclusion of a subset of properties in an object.\n * Enables the use of dot- and bracket-notation for referencing nested properties.\n * ‘[]’ and ‘.’ in property names can be escaped using double backslashes.\n *\n * @param haystack\n * @param needle\n * @param message Message to display on error.\n */\n notDeepNestedInclude(haystack: any, needle: any, message?: string): void;\n\n /**\n * Asserts that ‘haystack’ includes ‘needle’. Can be used to assert the inclusion of a subset of properties in an object while ignoring inherited properties.\n *\n * @param haystack\n * @param needle\n * @param message Message to display on error.\n */\n ownInclude(haystack: any, needle: any, message?: string): void;\n\n /**\n * Asserts that ‘haystack’ includes ‘needle’. Can be used to assert the absence of a subset of properties in an object while ignoring inherited properties.\n *\n * @param haystack\n * @param needle\n * @param message Message to display on error.\n */\n notOwnInclude(haystack: any, needle: any, message?: string): void;\n\n /**\n * Asserts that ‘haystack’ includes ‘needle’. Can be used to assert the inclusion of a subset of properties in an object while ignoring inherited properties and checking for deep\n *\n * @param haystack\n * @param needle\n * @param message Message to display on error.\n */\n deepOwnInclude(haystack: any, needle: any, message?: string): void;\n\n /**\n * Asserts that ‘haystack’ includes ‘needle’. Can be used to assert the absence of a subset of properties in an object while ignoring inherited properties and checking for deep equality.\n *\n * @param haystack\n * @param needle\n * @param message Message to display on error.\n */\n notDeepOwnInclude(haystack: any, needle: any, message?: string): void;\n\n /**\n * Asserts that value matches the regular expression regexp.\n *\n * @param value Actual value.\n * @param regexp Potential match of value.\n * @param message Message to display on error.\n */\n match(value: string, regexp: RegExp, message?: string): void;\n\n /**\n * Asserts that value does not match the regular expression regexp.\n *\n * @param value Actual value.\n * @param regexp Potential match of value.\n * @param message Message to display on error.\n */\n notMatch(expected: any, regexp: RegExp, message?: string): void;\n\n /**\n * Asserts that object has a property named by property.\n *\n * @type T Type of object.\n * @param object Container object.\n * @param property Potential contained property of object.\n * @param message Message to display on error.\n */\n property(object: T, property: string /* keyof T */, message?: string): void;\n\n /**\n * Asserts that object has a property named by property.\n *\n * @type T Type of object.\n * @param object Container object.\n * @param property Potential contained property of object.\n * @param message Message to display on error.\n */\n notProperty(object: T, property: string /* keyof T */, message?: string): void;\n\n /**\n * Asserts that object has a property named by property, which can be a string\n * using dot- and bracket-notation for deep reference.\n *\n * @type T Type of object.\n * @param object Container object.\n * @param property Potential contained property of object.\n * @param message Message to display on error.\n */\n deepProperty(object: T, property: string, message?: string): void;\n\n /**\n * Asserts that object does not have a property named by property, which can be a\n * string using dot- and bracket-notation for deep reference.\n *\n * @type T Type of object.\n * @param object Container object.\n * @param property Potential contained property of object.\n * @param message Message to display on error.\n */\n notDeepProperty(object: T, property: string, message?: string): void;\n\n /**\n * Asserts that object has a property named by property with value given by value.\n *\n * @type T Type of object.\n * @type V Type of value.\n * @param object Container object.\n * @param property Potential contained property of object.\n * @param value Potential expected property value.\n * @param message Message to display on error.\n */\n propertyVal(object: T, property: string /* keyof T */, value: V, message?: string): void;\n\n /**\n * Asserts that object has a property named by property with value given by value.\n *\n * @type T Type of object.\n * @type V Type of value.\n * @param object Container object.\n * @param property Potential contained property of object.\n * @param value Potential expected property value.\n * @param message Message to display on error.\n */\n propertyNotVal(object: T, property: string /* keyof T */, value: V, message?: string): void;\n\n /**\n * Asserts that object has a property named by property, which can be a string\n * using dot- and bracket-notation for deep reference.\n *\n * @type T Type of object.\n * @type V Type of value.\n * @param object Container object.\n * @param property Potential contained property of object.\n * @param value Potential expected property value.\n * @param message Message to display on error.\n */\n deepPropertyVal(object: T, property: string, value: V, message?: string): void;\n\n /**\n * Asserts that object does not have a property named by property, which can be a\n * string using dot- and bracket-notation for deep reference.\n *\n * @type T Type of object.\n * @type V Type of value.\n * @param object Container object.\n * @param property Potential contained property of object.\n * @param value Potential expected property value.\n * @param message Message to display on error.\n */\n deepPropertyNotVal(object: T, property: string, value: V, message?: string): void;\n\n /**\n * Asserts that object has a length property with the expected value.\n *\n * @type T Type of object.\n * @param object Container object.\n * @param length Potential expected length of object.\n * @param message Message to display on error.\n */\n lengthOf(object: T, length: number, message?: string): void;\n\n /**\n * Asserts that fn will throw an error.\n *\n * @param fn Function that may throw.\n * @param message Message to display on error.\n */\n throw(fn: Function, message?: string): void;\n\n /**\n * Asserts that function will throw an error with message matching regexp.\n *\n * @param fn Function that may throw.\n * @param regExp Potential expected message match.\n * @param message Message to display on error.\n */\n throw(fn: Function, regExp: RegExp): void;\n\n /**\n * Asserts that function will throw an error that is an instance of constructor.\n *\n * @param fn Function that may throw.\n * @param constructor Potential expected error constructor.\n * @param message Message to display on error.\n */\n throw(fn: Function, constructor: Function, message?: string): void;\n\n /**\n * Asserts that function will throw an error that is an instance of constructor\n * and an error with message matching regexp.\n *\n * @param fn Function that may throw.\n * @param constructor Potential expected error constructor.\n * @param message Message to display on error.\n */\n throw(fn: Function, constructor: Function, regExp: RegExp): void;\n\n /**\n * Asserts that fn will throw an error.\n *\n * @param fn Function that may throw.\n * @param message Message to display on error.\n */\n throws(fn: Function, message?: string): void;\n\n /**\n * Asserts that function will throw an error with message matching regexp.\n *\n * @param fn Function that may throw.\n * @param errType Potential expected message match or error constructor.\n * @param message Message to display on error.\n */\n throws(fn: Function, errType: RegExp|Function, message?: string): void;\n\n /**\n * Asserts that function will throw an error that is an instance of constructor\n * and an error with message matching regexp.\n *\n * @param fn Function that may throw.\n * @param constructor Potential expected error constructor.\n * @param message Message to display on error.\n */\n throws(fn: Function, errType: Function, regExp: RegExp): void;\n\n /**\n * Asserts that fn will throw an error.\n *\n * @param fn Function that may throw.\n * @param message Message to display on error.\n */\n Throw(fn: Function, message?: string): void;\n\n /**\n * Asserts that function will throw an error with message matching regexp.\n *\n * @param fn Function that may throw.\n * @param regExp Potential expected message match.\n * @param message Message to display on error.\n */\n Throw(fn: Function, regExp: RegExp): void;\n\n /**\n * Asserts that function will throw an error that is an instance of constructor.\n *\n * @param fn Function that may throw.\n * @param constructor Potential expected error constructor.\n * @param message Message to display on error.\n */\n Throw(fn: Function, errType: Function, message?: string): void;\n\n /**\n * Asserts that function will throw an error that is an instance of constructor\n * and an error with message matching regexp.\n *\n * @param fn Function that may throw.\n * @param constructor Potential expected error constructor.\n * @param message Message to display on error.\n */\n Throw(fn: Function, errType: Function, regExp: RegExp): void;\n\n /**\n * Asserts that fn will not throw an error.\n *\n * @param fn Function that may throw.\n * @param message Message to display on error.\n */\n doesNotThrow(fn: Function, message?: string): void;\n\n /**\n * Asserts that function will throw an error with message matching regexp.\n *\n * @param fn Function that may throw.\n * @param regExp Potential expected message match.\n * @param message Message to display on error.\n */\n doesNotThrow(fn: Function, regExp: RegExp): void;\n\n /**\n * Asserts that function will throw an error that is an instance of constructor.\n *\n * @param fn Function that may throw.\n * @param constructor Potential expected error constructor.\n * @param message Message to display on error.\n */\n doesNotThrow(fn: Function, errType: Function, message?: string): void;\n\n /**\n * Asserts that function will throw an error that is an instance of constructor\n * and an error with message matching regexp.\n *\n * @param fn Function that may throw.\n * @param constructor Potential expected error constructor.\n * @param message Message to display on error.\n */\n doesNotThrow(fn: Function, errType: Function, regExp: RegExp): void;\n\n /**\n * Compares two values using operator.\n *\n * @param val1 Left value during comparison.\n * @param operator Comparison operator.\n * @param val2 Right value during comparison.\n * @param message Message to display on error.\n */\n operator(val1: OperatorComparable, operator: Operator, val2: OperatorComparable, message?: string): void;\n\n /**\n * Asserts that the target is equal to expected, to within a +/- delta range.\n *\n * @param actual Actual value\n * @param expected Potential expected value.\n * @param delta Maximum differenced between values.\n * @param message Message to display on error.\n */\n closeTo(actual: number, expected: number, delta: number, message?: string): void;\n\n /**\n * Asserts that the target is equal to expected, to within a +/- delta range.\n *\n * @param actual Actual value\n * @param expected Potential expected value.\n * @param delta Maximum differenced between values.\n * @param message Message to display on error.\n */\n approximately(act: number, exp: number, delta: number, message?: string): void;\n\n /**\n * Asserts that set1 and set2 have the same members. Order is not take into account.\n *\n * @type T Type of set values.\n * @param set1 Actual set of values.\n * @param set2 Potential expected set of values.\n * @param message Message to display on error.\n */\n sameMembers(set1: T[], set2: T[], message?: string): void;\n\n /**\n * Asserts that set1 and set2 have the same members using deep equality checking.\n * Order is not take into account.\n *\n * @type T Type of set values.\n * @param set1 Actual set of values.\n * @param set2 Potential expected set of values.\n * @param message Message to display on error.\n */\n sameDeepMembers(set1: T[], set2: T[], message?: string): void;\n\n /**\n * Asserts that set1 and set2 have the same members in the same order.\n * Uses a strict equality check (===).\n *\n * @type T Type of set values.\n * @param set1 Actual set of values.\n * @param set2 Potential expected set of values.\n * @param message Message to display on error.\n */\n sameOrderedMembers(set1: T[], set2: T[], message?: string): void;\n\n /**\n * Asserts that set1 and set2 don’t have the same members in the same order.\n * Uses a strict equality check (===).\n *\n * @type T Type of set values.\n * @param set1 Actual set of values.\n * @param set2 Potential expected set of values.\n * @param message Message to display on error.\n */\n notSameOrderedMembers(set1: T[], set2: T[], message?: string): void;\n\n /**\n * Asserts that set1 and set2 have the same members in the same order.\n * Uses a deep equality check.\n *\n * @type T Type of set values.\n * @param set1 Actual set of values.\n * @param set2 Potential expected set of values.\n * @param message Message to display on error.\n */\n sameDeepOrderedMembers(set1: T[], set2: T[], message?: string): void;\n\n /**\n * Asserts that set1 and set2 don’t have the same members in the same order.\n * Uses a deep equality check.\n *\n * @type T Type of set values.\n * @param set1 Actual set of values.\n * @param set2 Potential expected set of values.\n * @param message Message to display on error.\n */\n notSameDeepOrderedMembers(set1: T[], set2: T[], message?: string): void;\n\n /**\n * Asserts that subset is included in superset in the same order beginning with the first element in superset.\n * Uses a strict equality check (===).\n *\n * @type T Type of set values.\n * @param superset Actual set of values.\n * @param subset Potential contained set of values.\n * @param message Message to display on error.\n */\n includeOrderedMembers(superset: T[], subset: T[], message?: string): void;\n\n /**\n * Asserts that subset isn’t included in superset in the same order beginning with the first element in superset.\n * Uses a strict equality check (===).\n *\n * @type T Type of set values.\n * @param superset Actual set of values.\n * @param subset Potential contained set of values.\n * @param message Message to display on error.\n */\n notIncludeOrderedMembers(superset: T[], subset: T[], message?: string): void;\n\n /**\n * Asserts that subset is included in superset in the same order beginning with the first element in superset.\n * Uses a deep equality check.\n *\n * @type T Type of set values.\n * @param superset Actual set of values.\n * @param subset Potential contained set of values.\n * @param message Message to display on error.\n */\n includeDeepOrderedMembers(superset: T[], subset: T[], message?: string): void;\n\n /**\n * Asserts that subset isn’t included in superset in the same order beginning with the first element in superset.\n * Uses a deep equality check.\n *\n * @type T Type of set values.\n * @param superset Actual set of values.\n * @param subset Potential contained set of values.\n * @param message Message to display on error.\n */\n notIncludeDeepOrderedMembers(superset: T[], subset: T[], message?: string): void;\n\n /**\n * Asserts that subset is included in superset. Order is not take into account.\n *\n * @type T Type of set values.\n * @param superset Actual set of values.\n * @param subset Potential contained set of values.\n * @param message Message to display on error.\n */\n includeMembers(superset: T[], subset: T[], message?: string): void;\n\n /**\n * Asserts that subset is included in superset using deep equality checking.\n * Order is not take into account.\n *\n * @type T Type of set values.\n * @param superset Actual set of values.\n * @param subset Potential contained set of values.\n * @param message Message to display on error.\n */\n includeDeepMembers(superset: T[], subset: T[], message?: string): void;\n\n /**\n * Asserts that non-object, non-array value inList appears in the flat array list.\n *\n * @type T Type of list values.\n * @param inList Value expected to be in the list.\n * @param list List of values.\n * @param message Message to display on error.\n */\n oneOf(inList: T, list: T[], message?: string): void;\n\n /**\n * Asserts that a function changes the value of a property.\n *\n * @type T Type of object.\n * @param modifier Function to run.\n * @param object Container object.\n * @param property Property of object expected to be modified.\n * @param message Message to display on error.\n */\n changes(modifier: Function, object: T, property: string /* keyof T */, message?: string): void;\n\n /**\n * Asserts that a function does not change the value of a property.\n *\n * @type T Type of object.\n * @param modifier Function to run.\n * @param object Container object.\n * @param property Property of object expected not to be modified.\n * @param message Message to display on error.\n */\n doesNotChange(modifier: Function, object: T, property: string /* keyof T */, message?: string): void;\n\n /**\n * Asserts that a function increases an object property.\n *\n * @type T Type of object.\n * @param modifier Function to run.\n * @param object Container object.\n * @param property Property of object expected to be increased.\n * @param message Message to display on error.\n */\n increases(modifier: Function, object: T, property: string /* keyof T */, message?: string): void;\n\n /**\n * Asserts that a function does not increase an object property.\n *\n * @type T Type of object.\n * @param modifier Function to run.\n * @param object Container object.\n * @param property Property of object expected not to be increased.\n * @param message Message to display on error.\n */\n doesNotIncrease(modifier: Function, object: T, property: string /* keyof T */, message?: string): void;\n\n /**\n * Asserts that a function decreases an object property.\n *\n * @type T Type of object.\n * @param modifier Function to run.\n * @param object Container object.\n * @param property Property of object expected to be decreased.\n * @param message Message to display on error.\n */\n decreases(modifier: Function, object: T, property: string /* keyof T */, message?: string): void;\n\n /**\n * Asserts that a function does not decrease an object property.\n *\n * @type T Type of object.\n * @param modifier Function to run.\n * @param object Container object.\n * @param property Property of object expected not to be decreased.\n * @param message Message to display on error.\n */\n doesNotDecrease(modifier: Function, object: T, property: string /* keyof T */, message?: string): void;\n\n /**\n * Asserts if value is not a false value, and throws if it is a true value.\n *\n * @type T Type of object.\n * @param object Actual value.\n * @param message Message to display on error.\n * @remarks This is added to allow for chai to be a drop-in replacement for\n * Node’s assert class.\n */\n ifError(object: T, message?: string): void;\n\n /**\n * Asserts that object is extensible (can have new properties added to it).\n *\n * @type T Type of object\n * @param object Actual value.\n * @param message Message to display on error.\n */\n isExtensible(object: T, message?: string): void;\n\n /**\n * Asserts that object is extensible (can have new properties added to it).\n *\n * @type T Type of object\n * @param object Actual value.\n * @param message Message to display on error.\n */\n extensible(object: T, message?: string): void;\n\n /**\n * Asserts that object is not extensible.\n *\n * @type T Type of object\n * @param object Actual value.\n * @param message Message to display on error.\n */\n isNotExtensible(object: T, message?: string): void;\n\n /**\n * Asserts that object is not extensible.\n *\n * @type T Type of object\n * @param object Actual value.\n * @param message Message to display on error.\n */\n notExtensible(object: T, message?: string): void;\n\n /**\n * Asserts that object is sealed (can have new properties added to it\n * and its existing properties cannot be removed).\n *\n * @type T Type of object\n * @param object Actual value.\n * @param message Message to display on error.\n */\n isSealed(object: T, message?: string): void;\n\n /**\n * Asserts that object is sealed (can have new properties added to it\n * and its existing properties cannot be removed).\n *\n * @type T Type of object\n * @param object Actual value.\n * @param message Message to display on error.\n */\n sealed(object: T, message?: string): void;\n\n /**\n * Asserts that object is not sealed.\n *\n * @type T Type of object\n * @param object Actual value.\n * @param message Message to display on error.\n */\n isNotSealed(object: T, message?: string): void;\n\n /**\n * Asserts that object is not sealed.\n *\n * @type T Type of object\n * @param object Actual value.\n * @param message Message to display on error.\n */\n notSealed(object: T, message?: string): void;\n\n /**\n * Asserts that object is frozen (cannot have new properties added to it\n * and its existing properties cannot be removed).\n *\n * @type T Type of object\n * @param object Actual value.\n * @param message Message to display on error.\n */\n isFrozen(object: T, message?: string): void;\n\n /**\n * Asserts that object is frozen (cannot have new properties added to it\n * and its existing properties cannot be removed).\n *\n * @type T Type of object\n * @param object Actual value.\n * @param message Message to display on error.\n */\n frozen(object: T, message?: string): void;\n\n /**\n * Asserts that object is not frozen (cannot have new properties added to it\n * and its existing properties cannot be removed).\n *\n * @type T Type of object\n * @param object Actual value.\n * @param message Message to display on error.\n */\n isNotFrozen(object: T, message?: string): void;\n\n /**\n * Asserts that object is not frozen (cannot have new properties added to it\n * and its existing properties cannot be removed).\n *\n * @type T Type of object\n * @param object Actual value.\n * @param message Message to display on error.\n */\n notFrozen(object: T, message?: string): void;\n\n /**\n * Asserts that the target does not contain any values. For arrays and\n * strings, it checks the length property. For Map and Set instances, it\n * checks the size property. For non-function objects, it gets the count\n * of own enumerable string keys.\n *\n * @type T Type of object\n * @param object Actual value.\n * @param message Message to display on error.\n */\n isEmpty(object: T, message?: string): void;\n\n /**\n * Asserts that the target contains values. For arrays and strings, it checks\n * the length property. For Map and Set instances, it checks the size property.\n * For non-function objects, it gets the count of own enumerable string keys.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param message Message to display on error.\n */\n isNotEmpty(object: T, message?: string): void;\n\n /**\n * Asserts that `object` has at least one of the `keys` provided.\n * You can also provide a single object instead of a `keys` array and its keys\n * will be used as the expected set of keys.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param keys Keys to check\n * @param message Message to display on error.\n */\n hasAnyKeys(object: T, keys: Array | { [key: string]: any }, message?: string): void;\n\n /**\n * Asserts that `object` has all and only all of the `keys` provided.\n * You can also provide a single object instead of a `keys` array and its keys\n * will be used as the expected set of keys.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param keys Keys to check\n * @param message Message to display on error.\n */\n hasAllKeys(object: T, keys: Array | { [key: string]: any }, message?: string): void;\n\n /**\n * Asserts that `object` has all of the `keys` provided but may have more keys not listed.\n * You can also provide a single object instead of a `keys` array and its keys\n * will be used as the expected set of keys.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param keys Keys to check\n * @param message Message to display on error.\n */\n containsAllKeys(object: T, keys: Array | { [key: string]: any }, message?: string): void;\n\n /**\n * Asserts that `object` has none of the `keys` provided.\n * You can also provide a single object instead of a `keys` array and its keys\n * will be used as the expected set of keys.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param keys Keys to check\n * @param message Message to display on error.\n */\n doesNotHaveAnyKeys(object: T, keys: Array | { [key: string]: any }, message?: string): void;\n\n /**\n * Asserts that `object` does not have at least one of the `keys` provided.\n * You can also provide a single object instead of a `keys` array and its keys\n * will be used as the expected set of keys.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param keys Keys to check\n * @param message Message to display on error.\n */\n doesNotHaveAllKeys(object: T, keys: Array | { [key: string]: any }, message?: string): void;\n\n /**\n * Asserts that `object` has at least one of the `keys` provided.\n * Since Sets and Maps can have objects as keys you can use this assertion to perform\n * a deep comparison.\n * You can also provide a single object instead of a `keys` array and its keys\n * will be used as the expected set of keys.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param keys Keys to check\n * @param message Message to display on error.\n */\n hasAnyDeepKeys(object: T, keys: Array | { [key: string]: any }, message?: string): void;\n\n /**\n * Asserts that `object` has all and only all of the `keys` provided.\n * Since Sets and Maps can have objects as keys you can use this assertion to perform\n * a deep comparison.\n * You can also provide a single object instead of a `keys` array and its keys\n * will be used as the expected set of keys.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param keys Keys to check\n * @param message Message to display on error.\n */\n hasAllDeepKeys(object: T, keys: Array | { [key: string]: any }, message?: string): void;\n\n /**\n * Asserts that `object` contains all of the `keys` provided.\n * Since Sets and Maps can have objects as keys you can use this assertion to perform\n * a deep comparison.\n * You can also provide a single object instead of a `keys` array and its keys\n * will be used as the expected set of keys.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param keys Keys to check\n * @param message Message to display on error.\n */\n containsAllDeepKeys(object: T, keys: Array | { [key: string]: any }, message?: string): void;\n\n /**\n * Asserts that `object` contains all of the `keys` provided.\n * Since Sets and Maps can have objects as keys you can use this assertion to perform\n * a deep comparison.\n * You can also provide a single object instead of a `keys` array and its keys\n * will be used as the expected set of keys.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param keys Keys to check\n * @param message Message to display on error.\n */\n doesNotHaveAnyDeepKeys(object: T, keys: Array | { [key: string]: any }, message?: string): void;\n\n /**\n * Asserts that `object` contains all of the `keys` provided.\n * Since Sets and Maps can have objects as keys you can use this assertion to perform\n * a deep comparison.\n * You can also provide a single object instead of a `keys` array and its keys\n * will be used as the expected set of keys.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param keys Keys to check\n * @param message Message to display on error.\n */\n doesNotHaveAllDeepKeys(object: T, keys: Array | { [key: string]: any }, message?: string): void;\n\n /**\n * Asserts that object has a direct or inherited property named by property,\n * which can be a string using dot- and bracket-notation for nested reference.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param property Property to test.\n * @param message Message to display on error.\n */\n nestedProperty(object: T, property: string, message?: string): void;\n\n /**\n * Asserts that object does not have a property named by property,\n * which can be a string using dot- and bracket-notation for nested reference.\n * The property cannot exist on the object nor anywhere in its prototype chain.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param property Property to test.\n * @param message Message to display on error.\n */\n notNestedProperty(object: T, property: string, message?: string): void;\n\n /**\n * Asserts that object has a property named by property with value given by value.\n * property can use dot- and bracket-notation for nested reference. Uses a strict equality check (===).\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param property Property to test.\n * @param value Value to test.\n * @param message Message to display on error.\n */\n nestedPropertyVal(object: T, property: string, value: any, message?: string): void;\n\n /**\n * Asserts that object does not have a property named by property with value given by value.\n * property can use dot- and bracket-notation for nested reference. Uses a strict equality check (===).\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param property Property to test.\n * @param value Value to test.\n * @param message Message to display on error.\n */\n notNestedPropertyVal(object: T, property: string, value: any, message?: string): void;\n\n /**\n * Asserts that object has a property named by property with a value given by value.\n * property can use dot- and bracket-notation for nested reference. Uses a deep equality check.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param property Property to test.\n * @param value Value to test.\n * @param message Message to display on error.\n */\n deepNestedPropertyVal(object: T, property: string, value: any, message?: string): void;\n\n /**\n * Asserts that object does not have a property named by property with value given by value.\n * property can use dot- and bracket-notation for nested reference. Uses a deep equality check.\n *\n * @type T Type of object.\n * @param object Object to test.\n * @param property Property to test.\n * @param value Value to test.\n * @param message Message to display on error.\n */\n notDeepNestedPropertyVal(object: T, property: string, value: any, message?: string): void;\n }\n\n export interface Config {\n /**\n * Default: false\n */\n includeStack: boolean;\n\n /**\n * Default: true\n */\n showDiff: boolean;\n\n /**\n * Default: 40\n */\n truncateThreshold: number;\n\n /**\n * Default: true\n */\n useProxy: boolean;\n\n /**\n * Default: ['then', 'catch', 'inspect', 'toJSON']\n */\n proxyExcludedKeys: string[];\n }\n\n export class AssertionError {\n constructor(message: string, _props?: any, ssf?: Function);\n name: string;\n message: string;\n showDiff: boolean;\n stack: string;\n }\n}\n\ndeclare const chai: Chai.ChaiStatic;\n\ndeclare module \"chai\" {\n export = chai;\n}\n\ninterface Object {\n should: Chai.Assertion;\n}\n\n// Type definitions for chai-as-promised 7.1.0\n// Project: https://github.com/domenic/chai-as-promised/\n// Definitions by: jt000 ,\n// Yuki Kokubun ,\n// Leonard Thieu ,\n// Mike Lazer-Walker ,\n// Matt Bishop \n// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped\n// TypeScript Version: 3.0\n\n/// \n\ndeclare module 'chai-as-promised' {\n interface ChaiAsPromised extends Chai.ChaiPlugin {\n transferPromiseness(assertion: Chai.PromisedAssertion, promise: PromiseLike): void;\n transformAsserterArgs(values: any[]): any;\n }\n\n const chaiAsPromised: ChaiAsPromised;\n export = chaiAsPromised;\n}\n\ndeclare namespace Chai {\n\n // For BDD API\n interface Assertion extends LanguageChains, NumericComparison, TypeComparison {\n eventually: PromisedAssertion;\n become(expected: any): PromisedAssertion;\n fulfilled: PromisedAssertion;\n rejected: PromisedAssertion;\n rejectedWith: PromisedThrow;\n notify(fn: Function): PromisedAssertion;\n }\n\n // Eventually does not have .then(), but PromisedAssertion have.\n interface Eventually extends PromisedLanguageChains, PromisedNumericComparison, PromisedTypeComparison {\n // From chai-as-promised\n become(expected: any): PromisedAssertion;\n fulfilled: PromisedAssertion;\n rejected: PromisedAssertion;\n rejectedWith: PromisedThrow;\n notify(fn: Function): PromisedAssertion;\n\n // From chai\n not: PromisedAssertion;\n deep: PromisedDeep;\n ordered: PromisedOrdered;\n nested: PromisedNested;\n any: PromisedKeyFilter;\n all: PromisedKeyFilter;\n a: PromisedTypeComparison;\n an: PromisedTypeComparison;\n include: PromisedInclude;\n contain: PromisedInclude;\n ok: PromisedAssertion;\n true: PromisedAssertion;\n false: PromisedAssertion;\n null: PromisedAssertion;\n undefined: PromisedAssertion;\n NaN: PromisedAssertion;\n exist: PromisedAssertion;\n empty: PromisedAssertion;\n arguments: PromisedAssertion;\n Arguments: PromisedAssertion;\n equal: PromisedEqual;\n equals: PromisedEqual;\n eq: PromisedEqual;\n eql: PromisedEqual;\n eqls: PromisedEqual;\n property: PromisedProperty;\n ownProperty: PromisedOwnProperty;\n haveOwnProperty: PromisedOwnProperty;\n ownPropertyDescriptor: PromisedOwnPropertyDescriptor;\n haveOwnPropertyDescriptor: PromisedOwnPropertyDescriptor;\n length: PromisedLength;\n lengthOf: PromisedLength;\n match: PromisedMatch;\n matches: PromisedMatch;\n string(string: string, message?: string): PromisedAssertion;\n keys: PromisedKeys;\n key(string: string): PromisedAssertion;\n throw: PromisedThrow;\n throws: PromisedThrow;\n Throw: PromisedThrow;\n respondTo: PromisedRespondTo;\n respondsTo: PromisedRespondTo;\n itself: PromisedAssertion;\n satisfy: PromisedSatisfy;\n satisfies: PromisedSatisfy;\n closeTo: PromisedCloseTo;\n approximately: PromisedCloseTo;\n members: PromisedMembers;\n increase: PromisedPropertyChange;\n increases: PromisedPropertyChange;\n decrease: PromisedPropertyChange;\n decreases: PromisedPropertyChange;\n change: PromisedPropertyChange;\n changes: PromisedPropertyChange;\n extensible: PromisedAssertion;\n sealed: PromisedAssertion;\n frozen: PromisedAssertion;\n oneOf(list: any[], message?: string): PromisedAssertion;\n }\n\n interface PromisedAssertion extends Eventually, PromiseLike {\n }\n\n interface PromisedLanguageChains {\n eventually: Eventually;\n\n // From chai\n to: PromisedAssertion;\n be: PromisedAssertion;\n been: PromisedAssertion;\n is: PromisedAssertion;\n that: PromisedAssertion;\n which: PromisedAssertion;\n and: PromisedAssertion;\n has: PromisedAssertion;\n have: PromisedAssertion;\n with: PromisedAssertion;\n at: PromisedAssertion;\n of: PromisedAssertion;\n same: PromisedAssertion;\n but: PromisedAssertion;\n does: PromisedAssertion;\n }\n\n interface PromisedNumericComparison {\n above: PromisedNumberComparer;\n gt: PromisedNumberComparer;\n greaterThan: PromisedNumberComparer;\n least: PromisedNumberComparer;\n gte: PromisedNumberComparer;\n below: PromisedNumberComparer;\n lt: PromisedNumberComparer;\n lessThan: PromisedNumberComparer;\n most: PromisedNumberComparer;\n lte: PromisedNumberComparer;\n within(start: number, finish: number, message?: string): PromisedAssertion;\n }\n\n interface PromisedNumberComparer {\n (value: number, message?: string): PromisedAssertion;\n }\n\n interface PromisedTypeComparison {\n (type: string, message?: string): PromisedAssertion;\n instanceof: PromisedInstanceOf;\n instanceOf: PromisedInstanceOf;\n }\n\n interface PromisedInstanceOf {\n (constructor: Object, message?: string): PromisedAssertion;\n }\n\n interface PromisedCloseTo {\n (expected: number, delta: number, message?: string): PromisedAssertion;\n }\n\n interface PromisedNested {\n include: PromisedInclude;\n property: PromisedProperty;\n members: PromisedMembers;\n }\n\n interface PromisedDeep {\n equal: PromisedEqual;\n equals: PromisedEqual;\n eq: PromisedEqual;\n include: PromisedInclude;\n property: PromisedProperty;\n members: PromisedMembers;\n ordered: PromisedOrdered\n }\n\n interface PromisedOrdered {\n members: PromisedMembers;\n }\n\n interface PromisedKeyFilter {\n keys: PromisedKeys;\n }\n\n interface PromisedEqual {\n (value: any, message?: string): PromisedAssertion;\n }\n\n interface PromisedProperty {\n (name: string, value?: any, message?: string): PromisedAssertion;\n }\n\n interface PromisedOwnProperty {\n (name: string, message?: string): PromisedAssertion;\n }\n\n interface PromisedOwnPropertyDescriptor {\n (name: string, descriptor: PropertyDescriptor, message?: string): PromisedAssertion;\n (name: string, message?: string): PromisedAssertion;\n }\n\n interface PromisedLength extends PromisedLanguageChains, PromisedNumericComparison {\n (length: number, message?: string): PromisedAssertion;\n }\n\n interface PromisedInclude {\n (value: Object, message?: string): PromisedAssertion;\n (value: string, message?: string): PromisedAssertion;\n (value: number, message?: string): PromisedAssertion;\n keys: PromisedKeys;\n deep: PromisedDeep;\n ordered: PromisedOrdered;\n members: PromisedMembers;\n any: PromisedKeyFilter;\n all: PromisedKeyFilter;\n }\n\n interface PromisedMatch {\n (regexp: RegExp | string, message?: string): PromisedAssertion;\n }\n\n interface PromisedKeys {\n (...keys: string[]): PromisedAssertion;\n (keys: any[]): PromisedAssertion;\n (keys: Object): PromisedAssertion;\n }\n\n interface PromisedThrow {\n (): PromisedAssertion;\n (expected: string | RegExp, message?: string): PromisedAssertion;\n (constructor: Error | Function, expected?: string | RegExp, message?: string): PromisedAssertion;\n }\n\n interface PromisedRespondTo {\n (method: string, message?: string): PromisedAssertion;\n }\n\n interface PromisedSatisfy {\n (matcher: Function, message?: string): PromisedAssertion;\n }\n\n interface PromisedMembers {\n (set: any[], message?: string): PromisedAssertion;\n }\n\n interface PromisedPropertyChange {\n (object: Object, property: string, message?: string): PromisedAssertion;\n }\n\n // For Assert API\n interface Assert {\n eventually: PromisedAssert;\n isFulfilled(promise: PromiseLike, message?: string): PromiseLike;\n becomes(promise: PromiseLike, expected: any, message?: string): PromiseLike;\n doesNotBecome(promise: PromiseLike, expected: any, message?: string): PromiseLike;\n isRejected(promise: PromiseLike, message?: string): PromiseLike;\n isRejected(promise: PromiseLike, expected: any, message?: string): PromiseLike;\n isRejected(promise: PromiseLike, match: RegExp, message?: string): PromiseLike;\n notify(fn: Function): PromiseLike;\n }\n\n export interface PromisedAssert {\n fail(actual?: any, expected?: any, msg?: string, operator?: string): PromiseLike;\n\n isOk(val: any, msg?: string): PromiseLike;\n ok(val: any, msg?: string): PromiseLike;\n isNotOk(val: any, msg?: string): PromiseLike;\n notOk(val: any, msg?: string): PromiseLike;\n\n equal(act: any, exp: any, msg?: string): PromiseLike;\n notEqual(act: any, exp: any, msg?: string): PromiseLike;\n\n strictEqual(act: any, exp: any, msg?: string): PromiseLike;\n notStrictEqual(act: any, exp: any, msg?: string): PromiseLike;\n\n deepEqual(act: any, exp: any, msg?: string): PromiseLike;\n notDeepEqual(act: any, exp: any, msg?: string): PromiseLike;\n\n isAbove(val: number, above: number, msg?: string): PromiseLike;\n isAtLeast(val: number, atLeast: number, msg?: string): PromiseLike;\n isAtBelow(val: number, below: number, msg?: string): PromiseLike;\n isAtMost(val: number, atMost: number, msg?: string): PromiseLike;\n\n isTrue(val: any, msg?: string): PromiseLike;\n isFalse(val: any, msg?: string): PromiseLike;\n\n isNotTrue(val: any, msg?: string): PromiseLike;\n isNotFalse(val: any, msg?: string): PromiseLike;\n\n isNull(val: any, msg?: string): PromiseLike;\n isNotNull(val: any, msg?: string): PromiseLike;\n\n isNaN(val: any, msg?: string): PromiseLike;\n isNotNaN(val: any, msg?: string): PromiseLike;\n\n exists(val: any, msg?: string): PromiseLike;\n notExists(val: any, msg?: string): PromiseLike;\n\n isUndefined(val: any, msg?: string): PromiseLike;\n isDefined(val: any, msg?: string): PromiseLike;\n\n isFunction(val: any, msg?: string): PromiseLike;\n isNotFunction(val: any, msg?: string): PromiseLike;\n\n isObject(val: any, msg?: string): PromiseLike;\n isNotObject(val: any, msg?: string): PromiseLike;\n\n isArray(val: any, msg?: string): PromiseLike;\n isNotArray(val: any, msg?: string): PromiseLike;\n\n isString(val: any, msg?: string): PromiseLike;\n isNotString(val: any, msg?: string): PromiseLike;\n\n isNumber(val: any, msg?: string): PromiseLike;\n isNotNumber(val: any, msg?: string): PromiseLike;\n\n isBoolean(val: any, msg?: string): PromiseLike;\n isNotBoolean(val: any, msg?: string): PromiseLike;\n\n typeOf(val: any, type: string, msg?: string): PromiseLike;\n notTypeOf(val: any, type: string, msg?: string): PromiseLike;\n\n instanceOf(val: any, type: Function, msg?: string): PromiseLike;\n notInstanceOf(val: any, type: Function, msg?: string): PromiseLike;\n\n include(exp: string, inc: any, msg?: string): PromiseLike;\n include(exp: any[], inc: any, msg?: string): PromiseLike;\n\n notInclude(exp: string, inc: any, msg?: string): PromiseLike;\n notInclude(exp: any[], inc: any, msg?: string): PromiseLike;\n\n match(exp: any, re: RegExp, msg?: string): PromiseLike;\n notMatch(exp: any, re: RegExp, msg?: string): PromiseLike;\n\n property(obj: Object, prop: string, msg?: string): PromiseLike;\n notProperty(obj: Object, prop: string, msg?: string): PromiseLike;\n deepProperty(obj: Object, prop: string, msg?: string): PromiseLike;\n notDeepProperty(obj: Object, prop: string, msg?: string): PromiseLike;\n\n propertyVal(obj: Object, prop: string, val: any, msg?: string): PromiseLike;\n propertyNotVal(obj: Object, prop: string, val: any, msg?: string): PromiseLike;\n\n deepPropertyVal(obj: Object, prop: string, val: any, msg?: string): PromiseLike;\n deepPropertyNotVal(obj: Object, prop: string, val: any, msg?: string): PromiseLike;\n\n lengthOf(exp: any, len: number, msg?: string): PromiseLike;\n //alias frenzy\n throw(fn: Function, msg?: string): PromiseLike;\n throw(fn: Function, regExp: RegExp): PromiseLike;\n throw(fn: Function, errType: Function, msg?: string): PromiseLike;\n throw(fn: Function, errType: Function, regExp: RegExp): PromiseLike;\n\n throws(fn: Function, msg?: string): PromiseLike;\n throws(fn: Function, regExp: RegExp): PromiseLike;\n throws(fn: Function, errType: Function, msg?: string): PromiseLike;\n throws(fn: Function, errType: Function, regExp: RegExp): PromiseLike;\n\n Throw(fn: Function, msg?: string): PromiseLike;\n Throw(fn: Function, regExp: RegExp): PromiseLike;\n Throw(fn: Function, errType: Function, msg?: string): PromiseLike;\n Throw(fn: Function, errType: Function, regExp: RegExp): PromiseLike;\n\n doesNotThrow(fn: Function, msg?: string): PromiseLike;\n doesNotThrow(fn: Function, regExp: RegExp): PromiseLike;\n doesNotThrow(fn: Function, errType: Function, msg?: string): PromiseLike;\n doesNotThrow(fn: Function, errType: Function, regExp: RegExp): PromiseLike;\n\n operator(val: any, operator: string, val2: any, msg?: string): PromiseLike;\n closeTo(act: number, exp: number, delta: number, msg?: string): PromiseLike;\n approximately(act: number, exp: number, delta: number, msg?: string): PromiseLike;\n\n sameMembers(set1: any[], set2: any[], msg?: string): PromiseLike;\n sameDeepMembers(set1: any[], set2: any[], msg?: string): PromiseLike;\n sameOrderedMembers(set1: any[], set2: any[], msg?: string): PromiseLike;\n notSameOrderedMembers(set1: any[], set2: any[], msg?: string): PromiseLike;\n sameDeepOrderedMembers(set1: any[], set2: any[], msg?: string): PromiseLike;\n notSameDeepOrderedMembers(set1: any[], set2: any[], msg?: string): PromiseLike;\n includeOrderedMembers(set1: any[], set2: any[], msg?: string): PromiseLike;\n notIncludeOrderedMembers(set1: any[], set2: any[], msg?: string): PromiseLike;\n includeDeepOrderedMembers(set1: any[], set2: any[], msg?: string): PromiseLike;\n notIncludeDeepOrderedMembers(set1: any[], set2: any[], msg?: string): PromiseLike;\n includeMembers(set1: any[], set2: any[], msg?: string): PromiseLike;\n includeDeepMembers(set1: any[], set2: any[], msg?: string): PromiseLike;\n\n oneOf(val: any, list: any[], msg?: string): PromiseLike;\n\n changes(modifier: Function, obj: Object, property: string, msg?: string): PromiseLike;\n doesNotChange(modifier: Function, obj: Object, property: string, msg?: string): PromiseLike;\n increases(modifier: Function, obj: Object, property: string, msg?: string): PromiseLike;\n doesNotIncrease(modifier: Function, obj: Object, property: string, msg?: string): PromiseLike;\n decreases(modifier: Function, obj: Object, property: string, msg?: string): PromiseLike;\n doesNotDecrease(modifier: Function, obj: Object, property: string, msg?: string): PromiseLike;\n\n ifError(val: any, msg?: string): PromiseLike;\n\n isExtensible(obj: Object, msg?: string): PromiseLike;\n isNotExtensible(obj: Object, msg?: string): PromiseLike;\n\n isSealed(obj: Object, msg?: string): PromiseLike;\n sealed(obj: Object, msg?: string): PromiseLike;\n isNotSealed(obj: Object, msg?: string): PromiseLike;\n notSealed(obj: Object, msg?: string): PromiseLike;\n\n isFrozen(obj: Object, msg?: string): PromiseLike;\n frozen(obj: Object, msg?: string): PromiseLike;\n isNotFrozen(obj: Object, msg?: string): PromiseLike;\n notFrozen(obj: Object, msg?: string): PromiseLike;\n\n isEmpty(val: any, msg?: string): PromiseLike;\n isNotEmpty(val: any, msg?: string): PromiseLike;\n }\n}\n\n// Type definitions for WavesKeeper\n// Project: WavesKeeper\n\n/*~ This template shows how to write a global plugin. */\n\ninterface Window {\n WavesKeeper: WavesKeeper.TWavesKeeperApi;\n}\n\ndeclare var WavesKeeper: WavesKeeper.TWavesKeeperApi;\n\ndeclare namespace WavesKeeper {\n\n type TWavesKeeperApi = {\n /**\n * This is a method for obtaining a signature of authorization data while verifying Waves' user.\n * @param data\n */\n auth(data: IAuthData): Promise;\n\n /**\n * If a website is trusted, Waves Keeper public data are returned.\n */\n publicState(): Promise;\n\n /**\n * Waves Keeper's method for cancelling an order to the matcher.\n * It works identically to signCancelOrder, but also tries to send data to the matcher.\n * @param data\n */\n signAndPublishCancelOrder(data: TSignCancelOrderData): Promise;\n\n /**\n * Waves Keeper's method for creating an order to the matcher is identical to signOrder\n * but it also tries to send data to the matcher.\n * @param data\n */\n signAndPublishOrder(data: TSignOrderData): Promise;\n\n /**\n * This is similar to \"signTransaction\", but it also broadcasts a transaction to the blockchain.\n * @param data\n */\n signAndPublishTransaction(data: TSignTransactionData): Promise;\n\n /**\n * Waves Keeper's method for signing cancellation of an order to the matcher.\n * @param data\n */\n signCancelOrder(data: TSignCancelOrderData): Promise;\n\n /**\n * Waves Keeper's method for signing an order to the matcher.\n * @param data\n */\n signOrder(data: TSignOrderData): Promise;\n\n /**\n * A method for signing transactions in Waves' network.\n * @param data\n */\n signTransaction(data: TSignTransactionData): Promise;\n\n /**\n * Waves Keeper's method for signing typified data, for signing requests on various services.\n * @param data\n */\n signRequest(data: TSignRequestData): Promise;\n\n /**\n * A package transaction signature. Sometimes several transactions need to be simultaneously signed,\n * and for users' convenience, up to seven transactions at ones could be signed.\n * Only certain types of transactions are permitted:\n * issue, transfer, reissue, burn, create alias, mass transfer, data\n * @param tx\n * @param name\n */\n signTransactionPackage(tx: TSignTransactionPackageData, name?: string): Promise>;\n\n /**\n * Waves Keeper's method for signing custom data. Can be used for different services\n * Adds prefix to data to make it impossible to sign transaction data in this method\n * Signs byteArray. Prefix = [255, 255, 255, 1]\n * @param data\n */\n signCustomData(data: TSignCustomDataParamsV1): Promise\n /**\n * Waves Keeper's method for signing custom data. Can be used for different services\n * Adds prefix to data to make it impossible to sign transaction data in this method\n * Signs typed data array. Prefix = [255, 255, 255, 2]\n * @param data\n */\n signCustomData(data: TSignCustomDataParamsV2): Promise\n\n /**\n * Send message to keeper.\n * You can send message only 1 time in 30 sec for trusted sites with send permission\n * @param data\n */\n notification(data: INotificationData): Promise;\n\n /**\n * You can encrypt string messages to account in Waves network.\n * You need have recipient publicKey.\n * @param stringToEncrypt\n * String to encrypt\n * @param publicKey\n * Public key in base58 string\n * @param prefix\n * Prefix is secret app string need for encoding\n */\n encryptMessage(stringToEncrypt: string, publicKey: string, prefix: string): Promise;\n\n /**\n * You can decrypt string messages from account in Waves network to you.\n * You need have sender publicKey and encrypted message.\n * @param stringToDecrypt\n * String to decrypt\n * @param publicKey\n * Public key in base58 string\n * @param prefix\n * Prefix is secret app string need for encoding\n */\n decryptMessage(stringToDecrypt: string, publicKey: string, prefix: string): Promise;\n\n /**\n * Allows subscribing to Waves Keeper events.\n * If a website is not trusted, events won't show.\n * @param event\n * Supports events:\n * update – subscribe to updates of the state\n * @param cb\n */\n on(event: 'update', cb: (state: IPublicStateResponse) => any): object;\n\n /**\n * On initialize window.WavesKeeper has not api methods.\n * You can use WavesKeeper.initialPromise for waiting end initializing api\n */\n initialPromise() : Promise;\n\n }\n\n type TTypedData = TBinaryData | TBooleanData | TIntegerData | TStringData\n type TBinaryData = { type: 'binary', key: string, value: string}\n type TBooleanData = { type: 'boolean', key: string, value: boolean}\n type TIntegerData = { type: 'integer', key: string, value: number}\n type TStringData = { type: 'string', key: string, value: string}\n type TSignCustomDataParamsV1 = {\n version: 1\n /**\n * base64 encoded byteArray\n */\n binary: string\n }\n type TSignCustomDataResponseV1 = TSignCustomDataParamsV1 & { signature: string, publicKey: string}\n type TSignCustomDataParamsV2 = {\n version: 2\n data: TTypedData[]\n }\n type TSignCustomDataResponseV2 = TSignCustomDataParamsV2 & { signature: string, publicKey: string}\n\n interface IAuthData {\n /**\n * a string line with any data (required field)\n */\n data: string;\n /**\n * name of the service (optional field)\n */\n name?: string;\n /**\n * a websites' full URL for redirect (optional field)\n */\n referrer?: string;\n /**\n * path to the logo relative to the referrer or origin of the website (optional field)\n */\n icon?: string;\n /**\n * relative path to the website's Auth API (optional field)\n */\n successPath?: string;\n }\n\n interface IAuthResponse {\n /**\n * an address in Waves network\n */\n address: string;\n /**\n * a host that requested a signature\n */\n host: string;\n /**\n * a prefix participating in the signature\n */\n prefix: string;\n /**\n * the user's public key\n */\n publicKey: string;\n /**\n * signature\n */\n signature: string;\n /**\n * API version\n */\n version: number;\n /**\n * the name of an application that requested a signature\n */\n name: string;\n }\n\n interface IPublicStateResponse {\n /**\n * boolean keeper initialized\n */\n initialized: boolean;\n /**\n * boolean keeper in wait mode\n */\n locked: boolean;\n /**\n * current account, if the user allowed access to the website, or null\n */\n account: TPublicStateAccount | null;\n /**\n * current Waves network, node and matcher addresses\n */\n network: TPublicStateNetwork,\n /**\n * signature request statuses\n */\n messages: Array,\n /**\n * available transaction versions for each type\n */\n txVersion: Record>;\n }\n\n type TPublicStateNetwork = {\n code: string;\n server: string;\n matcher: string;\n }\n\n type TPublicStateAccount = {\n name: string;\n publicKey: string;\n address: string;\n networkCode: string;\n network: string;\n balance: TAccountBalance;\n type: string;\n }\n\n type TAccountBalance = {\n available: string;\n leasedOut: string;\n network: string;\n }\n\n type TPublicStateMessage = {\n id: string;\n status: string;\n }\n\n interface ICancelOrderData {\n /**\n * order ID\n */\n id: string;\n /**\n * sender's public key in base58\n */\n senderPublicKey?: string;\n }\n\n type TSignCancelOrderData = ISignData<1003, ICancelOrderData>;\n\n interface ISignOrderDataBody {\n /**\n * MoneyLike - amount\n */\n amount: TMoney;\n /**\n * MoneyLike - price\n */\n price: TMoney;\n /**\n * 'sell'/'buy' – order type\n */\n orderType: 'sell' | 'buy';\n /**\n * MoneyLike - fee (0.003 WAVES minimum)\n */\n matcherFee: TMoney;\n /**\n * the public key of the exchange service\n */\n matcherPublicKey: string;\n /**\n * the order's expiration time\n */\n expiration: string | number;\n /**\n * current time\n */\n timestamp?: string | number;\n /**\n * public key in base58\n */\n senderPublicKey?: string;\n }\n\n type TSignOrderData = ISignData<1002, ISignOrderDataBody>;\n\n interface ISignRequestBody {\n timestamp: number | string;\n /**\n * public key in base58\n */\n senderPublicKey?: string;\n }\n\n type TSignRequestData = ISignData<1001 | 1004, ISignRequestBody>;\n\n type TSignTransactionData =\n TIssueTxData |\n TTransferTxData |\n TReissueTxData |\n TBurnTxData |\n TLeaseTxData |\n TLeaseCancelTxData |\n TCreateAliasTxData |\n TMassTransferTxData |\n TDataTxData |\n TSetScriptTxData |\n TSponsoredFeeTxData |\n TSetAssetScriptTxData |\n TScriptInvocationTxData;\n\n interface ISignData {\n type: TYPE;\n data: BODY;\n }\n\n interface ITransactionBase {\n /**\n * MoneyLike - fee\n */\n fee: TMoney;\n /**\n * sender's public key in base58\n */\n senderPublicKey?: string;\n /**\n * time in ms\n */\n timestamp?: number | string;\n }\n\n interface IIssueTx extends ITransactionBase {\n /**\n * [4, 16] string – token name\n */\n name: string;\n /**\n * [0, 1000] string – token description\n */\n description: string,\n /**\n * [0 - (JLM)] number/string - quantity\n */\n quantity: number | string;\n /**\n * [0 - 8] number - precision\n */\n precision: number;\n /**\n * can reissue token\n */\n reissuable: boolean;\n /**\n * smart asset\n */\n script?: string;\n }\n\n type TIssueTxData = ISignData<3, IIssueTx>;\n\n interface ITransferTx extends ITransactionBase {\n /**\n * MoneyLike - amount\n */\n amount: TMoney;\n /**\n * recipient's address or alias\n */\n recipient: string;\n /**\n * [,140 bytes] string or byte Array – additional info in text (optional field)\n */\n attachment?: string | Uint8Array | Array;\n }\n\n type TTransferTxData = ISignData<4, ITransferTx>;\n\n interface IReissueTx extends ITransactionBase {\n /**\n * asset ID\n */\n assetId: string;\n /**\n * [0 - (JLM)] number/string/MoneyLike - quantity\n */\n quantity: number | string | TMoney;\n /**\n * deny reissue\n */\n reissuable: boolean;\n }\n\n type TReissueTxData = ISignData<5, IReissueTx>;\n\n interface IBurnTx extends ITransactionBase {\n /**\n * asset ID\n */\n assetId: string;\n /**\n * [0 - (JLM)] number/string/MoneyLike - quantity,\n */\n amount: number | string | TMoney;\n }\n\n type TBurnTxData = ISignData<6, IBurnTx>;\n\n interface ILeaseTx extends ITransactionBase {\n /**\n * recipient's address or alias\n */\n recipient: string;\n /**\n * [0 - (JLM)] number/string/MoneyLike - quantity\n */\n amount: number | string | TMoney;\n }\n\n type TLeaseTxData = ISignData<8, ILeaseTx>;\n\n interface ILeaseCancelTx extends ITransactionBase {\n /**\n * leasing transaction ID\n */\n leaseId: string;\n }\n\n type TLeaseCancelTxData = ISignData<9, ILeaseCancelTx>;\n\n interface ICreateAliasTx extends ITransactionBase {\n /**\n * [4, 30] string - alias\n */\n alias: string;\n }\n\n type TCreateAliasTxData = ISignData<10, ICreateAliasTx>;\n\n interface IMassTransferTx extends ITransactionBase {\n /**\n * moneyLike – total to be sent\n * instead of calculating the amount you may insert { assetId: \"ID of the asset to be sent\", coins: 0},\n */\n totalAmount: TMoney;\n /**\n * a mass of objects\n */\n transfers: Array;\n /**\n * [,140 bytes в base58] string – additional info (optional field)\n */\n attachment?: string;\n }\n\n interface ITransfer {\n /**\n * address/alias\n */\n recipient: string;\n /**\n * amount\n */\n amount: number | string | TMoney;\n }\n\n type TMassTransferTxData = ISignData<11, IMassTransferTx>;\n\n interface IDataTx extends ITransactionBase {\n /**\n * mass of objects\n */\n data: Array;\n }\n\n type TData = TCallArgs & {key: string};\n\n type TDataTxData = ISignData<12, IDataTx>;\n\n interface ISetScriptTx extends ITransactionBase {\n /**\n * script\n * https://docs.wavesplatform.com/en/#section-5e6520b97a7ead921d7fb6bce7292ce0\n */\n script: string;\n }\n\n type TSetScriptTxData = ISignData<13, ISetScriptTx>;\n\n interface ISponsoredFeeTx extends ITransactionBase {\n /**\n * MoneyLike – fee price in the asset\n */\n minSponsoredAssetFee: TMoney;\n }\n\n type TSponsoredFeeTxData = ISignData<14, ISponsoredFeeTx>;\n\n interface ISetAssetScriptTx extends ITransactionBase {\n /**\n * asset ID\n */\n assetId: string;\n /**\n * script\n * https://docs.wavesplatform.com/en/#section-5e6520b97a7ead921d7fb6bce7292ce0\n */\n script: string;\n }\n\n type TSetAssetScriptTxData = ISignData<15, ISetAssetScriptTx>;\n\n interface IScriptInvocationTx extends ITransactionBase {\n /**\n * address script account\n */\n dApp: string;\n /**\n * array MoneyLike (at now can use only 1 payment)\n */\n payment?: Array;\n call?: ICall;\n }\n\n interface ICall {\n /**\n * function name\n */\n function: string;\n /**\n * array\n */\n args: Array;\n }\n\n type TCallArgs = TCallArgsInteger | TCallArgsBoolean | TCallArgsBinary | TCallArgsString;\n\n type TCallArgsInteger = {\n type: 'integer';\n value: number | string;\n }\n\n type TCallArgsBoolean = {\n type: 'boolean';\n value: boolean;\n }\n\n type TCallArgsBinary = {\n type: 'binary';\n /**\n * base64\n */\n value: string;\n }\n\n type TCallArgsString = {\n type: 'string';\n value: string;\n }\n\n type TScriptInvocationTxData = ISignData<16, IScriptInvocationTx>;\n\n type TSignTransactionPackageData = Array<\n TIssueTxData |\n TTransferTxData |\n TReissueTxData |\n TBurnTxData |\n TCreateAliasTxData |\n TMassTransferTxData |\n TDataTxData |\n TScriptInvocationTxData>;\n\n interface INotificationData {\n /**\n * string (20 chars max)\n */\n title: string;\n /**\n * string (250 chars max)\n */\n message?: string;\n }\n\n interface IMoneyTokens {\n assetId: string;\n tokens: number | string;\n }\n\n interface IMoneyCoins {\n assetId: string;\n coins: number | string;\n }\n\n interface IMoneyAmount {\n assetId: string;\n /**\n * coins alias\n */\n amount: number | string;\n }\n\n type TMoney = IMoneyTokens | IMoneyCoins | IMoneyAmount;\n}\n\nconst expect = chai.expect\ninterface Console {\nmemory: any;\nassert(condition?: boolean, message?: string, ...data: any[]): void;\nclear(): void;\ncount(label?: string): void;\ndebug(message?: any, ...optionalParams: any[]): void;\ndir(value?: any, ...optionalParams: any[]): void;\ndirxml(value: any): void;\nerror(message?: any, ...optionalParams: any[]): void;\nexception(message?: string, ...optionalParams: any[]): void;\ngroup(groupTitle?: string, ...optionalParams: any[]): void;\ngroupCollapsed(groupTitle?: string, ...optionalParams: any[]): void;\ngroupEnd(): void;\ninfo(message?: any, ...optionalParams: any[]): void;\nlog(message?: any, ...optionalParams: any[]): void;\nmarkTimeline(label?: string): void;\nprofile(reportName?: string): void;\nprofileEnd(reportName?: string): void;\ntable(...tabularData: any[]): void;\ntime(label?: string): void;\ntimeEnd(label?: string): void;\ntimeStamp(label?: string): void;\ntimeline(label?: string): void;\ntimelineEnd(label?: string): void;\ntrace(message?: any, ...optionalParams: any[]): void;\nwarn(message?: any, ...optionalParams: any[]): void;\n}\n\ndeclare var console: Console;\ndeclare function setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;\ndeclare function setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;" \ No newline at end of file diff --git a/src/layout/Dialogs/MigrationDialog/index.tsx b/src/layout/Dialogs/MigrationDialog/index.tsx index 816a4149..d57271da 100644 --- a/src/layout/Dialogs/MigrationDialog/index.tsx +++ b/src/layout/Dialogs/MigrationDialog/index.tsx @@ -4,8 +4,7 @@ import Button from '@src/components/Button'; import styles from './styles.less'; import { inject, observer } from 'mobx-react'; import { MigrationStore, AccountsStore, SettingsStore } from '@stores'; -import { NetworkChainId } from '@stores/AccountsStore'; -import { activeHostSecure, formatHost, activeHosts } from '@utils/hosts'; +import { activeHostSecure, formatHost } from '@utils/hosts'; import { FilesStore } from '@stores/FilesStore'; import { Loading } from '@src/layout/Dialogs/MigrationDialog/Loading'; import Link from '@components/Link'; @@ -34,15 +33,10 @@ export default class MigrationDialog extends React.Component { const { customNodes } = this.props.settingsStore!; const { - stagenetMigrationState, - migrationState, + stagenetMigrationState } = this.props.migrationStore!; - const {accountGroups, nodesAccounts} = this.props!.accountsStore!; - - const stagenetAccounts = accountGroups[NetworkChainId.S] - - const hasStagenetAccounts = stagenetAccounts ? stagenetAccounts.accounts.length > 0 : false + const { nodesAccounts} = this.props!.accountsStore!; const isMigrationAvailable = nodesAccounts.length > 0 || @@ -55,36 +49,26 @@ export default class MigrationDialog extends React.Component { width={618} footer={ isMigrationAvailable - ? ( -
-
- -
+ ? ( +
+
+ +
-
- {hasStagenetAccounts && ( +
- )} - - +
-
- ) - : undefined + ) + : undefined } visible > @@ -104,15 +88,6 @@ export default class MigrationDialog extends React.Component { To automatically transfer your projects and accounts to the new service, click the "Migrate" button.
- {hasStagenetAccounts && ( -
- To work with Stagenet network you need to use  - - {(activeHosts.stagenet.secure as string).replace(/^https?:\/\//, '')} - - . To automatically transfer your data to Stagenet network, click the "Migrate Stagenet" button. -
- )}
You can also transfer your data manually using the "Export" button. @@ -123,3 +98,5 @@ export default class MigrationDialog extends React.Component { ; } } + + diff --git a/src/layout/Dialogs/SettingsDialog/Info.tsx b/src/layout/Dialogs/SettingsDialog/Info.tsx index 8d2e546a..19e315ff 100644 --- a/src/layout/Dialogs/SettingsDialog/Info.tsx +++ b/src/layout/Dialogs/SettingsDialog/Info.tsx @@ -18,8 +18,11 @@ type TInfoData = { Testnet: TDataItem, Stagenet: TDataItem, NodeTimeout: TDataItem, - TestTimeout: TDataItem - DefaultAdditionalFee: TDataItem + TestTimeout: TDataItem, + DefaultAdditionalFee: TDataItem, + CompileCompaction: TDataItem, + CompileRemoveUnusedCode: TDataItem, + }; const infoData: TInfoData = { @@ -52,6 +55,14 @@ const infoData: TInfoData = { DefaultAdditionalFee: { title: 'Default additional fee', text: 'Fee will be added to all transactions generated in IDE via UI, tests or console. E.g.: you can set it to 400000, so every new generated tx will be valid if send from scripted account', + }, + CompileCompaction: { + title: 'Compaction', + text: 'Reduce the compiled script size by using shortened names of functions and variables with mapping to original names.', + }, + CompileRemoveUnusedCode: { + title: 'Remove unused code', + text: 'Reduce the compiled script size by removing unused functions and variables defined globally.', } }; @@ -66,7 +77,7 @@ const Info = ({infoType}: IProps) =>
} > -
+
; diff --git a/src/layout/Dialogs/SettingsDialog/NodeItem.tsx b/src/layout/Dialogs/SettingsDialog/NodeItem.tsx index b49a64e1..cec3a291 100644 --- a/src/layout/Dialogs/SettingsDialog/NodeItem.tsx +++ b/src/layout/Dialogs/SettingsDialog/NodeItem.tsx @@ -34,7 +34,7 @@ const titles: Record = { export class NodeItem extends React.Component { @computed get urlValidation() { - const { node } = this.props + const { node } = this.props; const selfUrl = new URL(window.location.href); @@ -53,8 +53,8 @@ export class NodeItem extends React.Component {   supports only the HTTPS protocol. To setup node with the HTTP protocol, use   - - {formatHost(activeHosts.mainnet.insecure)} + + {formatHost(activeHosts.stagenet.insecure)} .
@@ -64,19 +64,19 @@ export class NodeItem extends React.Component { isValid: node.isValidNodeUrl, message: 'Invalid node url' }, - ].find(check => !check.isValid)) + ].find(check => !check.isValid)); } @computed get chainIdValidation() { - const { node } = this.props + const { node } = this.props; return ([ { isValid: node.isValidChainId, message: 'Invalid byte' } - ].find(check => !check.isValid)) + ].find(check => !check.isValid)); } byteRef = React.createRef(); @@ -91,8 +91,6 @@ export class NodeItem extends React.Component { handleUpdateUrl = (value: string, i: number) => this.props.settingsStore!.updateNode(value, i, 'url'); handleUpdateChainId = (value: string, i: number) => { - const { node } = this.props; - this.props.settingsStore!.updateNode(value, i, 'chainId'); logToTagManager({event: 'ideChainIdChange', ideChainId: value}); }; @@ -113,7 +111,7 @@ export class NodeItem extends React.Component { }; private getNodeItemClass = () => { - const { node } = this.props + const { node } = this.props; return classNames( styles.section_item, @@ -136,7 +134,7 @@ export class NodeItem extends React.Component {
Network byte
- + { onChange={(e) => this.handleUpdateUrl(e.target.value, i)} /> { {this.props.settingsStore!.systemNodes.map((node, i) => ( ))} - -
-
- Stagenet URL -
- -
-
- Dear user, the IDE for the stagenet network has moved to  - - {(activeHosts.stagenet.secure as string).replace(/^https?:\/\//, '')} - - . For convenience, you can transfer your projects using import/export. -
- -
- - Go to Stagenet IDE - -
-
-
Custom nodes {this.props.settingsStore!.customNodes.map((node, i) => ( - + ))}
diff --git a/src/layout/Main/MainPanelFooter/ContractFooter/index.tsx b/src/layout/Main/MainPanelFooter/ContractFooter/index.tsx index 9413ed4d..5cfcd17b 100644 --- a/src/layout/Main/MainPanelFooter/ContractFooter/index.tsx +++ b/src/layout/Main/MainPanelFooter/ContractFooter/index.tsx @@ -1,19 +1,23 @@ import React from 'react'; import { RouteComponentProps, withRouter } from 'react-router'; import { inject, observer } from 'mobx-react'; -import { IRideFile, NotificationsStore, SettingsStore, SignerStore } from '@stores'; +import { IRideFile, FilesStore, NotificationsStore, SettingsStore, SignerStore } from '@stores'; +import { RIDE_CONTENT_TYPE, RIDE_SCRIPT_TYPE } from '@stores/File'; import classNames from 'classnames'; import Button from '@src/components/Button'; import copyToClipboard from 'copy-to-clipboard'; import styles from '../styles.less'; import ShareFileButton from '../ShareFileButton'; +import Checkbox from '@components/Checkbox'; import Dropdown from '@components/Dropdown'; import ReactResizeDetector from 'react-resize-detector'; +import InfoTooltip from '../../../Dialogs/SettingsDialog/Info'; // todo move to components 655 interface IInjectedProps { - settingsStore?: SettingsStore - signerStore?: SignerStore - notificationsStore?: NotificationsStore + filesStore?: FilesStore, + settingsStore?: SettingsStore, + signerStore?: SignerStore, + notificationsStore?: NotificationsStore, } interface IProps extends IInjectedProps, RouteComponentProps { @@ -22,29 +26,34 @@ interface IProps extends IInjectedProps, RouteComponentProps { } interface IState { - currentWidth: number + currentWidth: number, } -@inject('settingsStore', 'signerStore', 'notificationsStore') +@inject('filesStore', 'settingsStore', 'signerStore', 'notificationsStore') @observer class ContractFooter extends React.Component { state = { - currentWidth: 0 + currentWidth: 0, }; - handleDeploy = () => { - const {signerStore, history} = this.props; + handleDeploy = (fileType: string) => { + const {filesStore, settingsStore, signerStore, history} = this.props; - const txTemplate = signerStore!.setScriptTemplate; + const asyncDeploy = async () => { + await filesStore!.syncCurrentFileInfo(settingsStore?.isCompaction, settingsStore?.isRemoveUnusedCode); + const txTemplate = fileType === 'expression' ? signerStore!.expressionTemplate : signerStore!.setScriptTemplate; - if (txTemplate) { - signerStore!.setTxJson(txTemplate); - history.push('/signer'); - } + if (txTemplate) { + signerStore!.setTxJson(txTemplate); + history.push('/signer'); + } + }; + + asyncDeploy(); }; handleIssue = () => { - const {file, signerStore, history} = this.props; + const {file, signerStore, history, settingsStore} = this.props; const issueTemplate = signerStore!.issueTemplate; @@ -61,11 +70,20 @@ class ContractFooter extends React.Component { } }; + onChangeCompaction = () => { + this.props.settingsStore?.toggleIsCompaction(); + } + + onChangeRemoveUnusedCode = () => { + this.props.settingsStore?.toggleIsRemoveUnusedCode(); + } + render() { - const {className, file, signerStore} = this.props; + const state = this.state; + const {className, file, settingsStore} = this.props; const rootClassName = classNames(styles!.root, className); - let copyBase64Handler, issueHandler, deployHandler; + let copyBase64Handler; if (file.info.compilation.base64) { const base64 = file.info.compilation.base64; @@ -73,19 +91,21 @@ class ContractFooter extends React.Component { } const isAsset = (file: IRideFile) => file.info.type === 'asset'; + const isExpression = (file: IRideFile) => file.info.type === 'expression'; const isLib = (file: IRideFile) => file.info.type === 'library'; const hiddenButtons: JSX.Element[] = [], buttons: JSX.Element[] = []; const buttonMap = [ {cond: !file.readonly, btn: }, {cond: !isLib(file), btn: }, - {cond: !isLib(file), btn: }, - {cond: isAsset(file), btn: } + {cond: !isLib(file), btn: this.handleDeploy(file.info.type)} type={file.info.type}/>}, + {cond: isAsset(file), btn: }, ]; + const compilationSettindsWidth = 270; buttonMap .filter(({cond}) => cond) - .forEach(({cond, btn}, i) => i + 1 > Math.floor((this.state.currentWidth - 200) / 130) + .forEach(({cond, btn}, i) => i + 1 > Math.floor((this.state.currentWidth - (200+compilationSettindsWidth)) / 130) ? hiddenButtons.push(btn) : buttons.push(btn) ); @@ -96,56 +116,75 @@ class ContractFooter extends React.Component { compilation, contentType, maxComplexity, - maxAccountVerifierComplexity + maxCallableComplexity, + maxAccountVerifierComplexity, + maxAssetVerifierComplexity, + scriptType, } = file.info; let largestFuncComplexity = Math.max.apply(null, Object.values({})); if (!isFinite(largestFuncComplexity)) largestFuncComplexity = 0; - const size = compilation.size || 0 - const complexity = compilation.complexity || 0 + const size = compilation.size || 0; + const complexity = compilation.complexity || 0; + const verifierComplexity = compilation.verifierComplexity || 0; + const stateCallsComplexities = Object.values(compilation.stateCallsComplexities || {}).reduce((acc, x) => acc += x, 0); - const verifierComplexity = compilation.verifierComplexity || 0 - return
-
+ const complexityStatus = (value: number, maxValue: number, title: string) => { + return ( - Script size:  - - maxSize ? '#e5494d' : undefined}}> - {size} - -  / {maxSize} bytes - - - - {(type !== 'library') && ( - - {type === 'dApp' ? 'Script complexity' : 'Verifier complexity'}:  - - - maxComplexity ? '#e5494d' : undefined}}> - {complexity} - - -  / {maxComplexity} - + {title}:  + + maxValue ? '#e5494d' : undefined}}>{value} +  /  + {maxValue} - )} - - {type === 'dApp' && ( - - Verifier complexity:  + + ); + }; - - maxAccountVerifierComplexity ? '#e5494d' : undefined}}> - {verifierComplexity} - -  / {maxAccountVerifierComplexity} + return
+
+ + Script size:  + + maxSize ? '#e5494d' : undefined}}> + {size} +  / {maxSize} bytes - )} + + {contentType === RIDE_CONTENT_TYPE.DAPP ? ( + <> + {complexityStatus(complexity, maxCallableComplexity, 'Script complexity')} + {complexityStatus(verifierComplexity, maxAccountVerifierComplexity, 'Verifier complexity')} + {complexityStatus(stateCallsComplexities, 4000, 'State Calls Complexity')} + + ) : undefined} + {contentType === RIDE_CONTENT_TYPE.EXPRESSION ? ( + <> + {complexityStatus( + complexity, + scriptType === RIDE_SCRIPT_TYPE.ACCOUNT ? maxAccountVerifierComplexity : maxAssetVerifierComplexity, + 'Verifier complexity' + )} + + ) : undefined}
- this.setState({currentWidth: width})}/> +
+   Compaction +   +    +   Remove unused code +   +
+ this.setState({ currentWidth: width })}/>
{buttons} {hiddenButtons.length > 0 && {
} />}
- -
; } } @@ -188,5 +225,7 @@ const DeployButton: React.FunctionComponent<{ deployHandler?: () => void, type: Deploy ; +const Info: React.FunctionComponent<{ text: string }> = ({ text }) => +
{text}
export default withRouter(ContractFooter); diff --git a/src/layout/Main/MainPanelFooter/styles.less b/src/layout/Main/MainPanelFooter/styles.less index c9a47bf4..96d14010 100644 --- a/src/layout/Main/MainPanelFooter/styles.less +++ b/src/layout/Main/MainPanelFooter/styles.less @@ -20,7 +20,7 @@ display: flex; flex-wrap: wrap; white-space: nowrap; - margin: 0 -5px; + margin: 0 0 0 -5px; & > * { margin: 0 5px; @@ -39,6 +39,16 @@ -webkit-user-select: none; } + .compileConfig { + display: flex; + flex-wrap: nowrap; + justify-content: space-between; + align-items: center; + + white-space: nowrap; + .mainPanelFooter-font(); + } + & > .buttonSet { display: flex; flex-wrap: nowrap; diff --git a/src/layout/Main/TabContent/Editor/index.tsx b/src/layout/Main/TabContent/Editor/index.tsx index 9323bf0f..47ded496 100644 --- a/src/layout/Main/TabContent/Editor/index.tsx +++ b/src/layout/Main/TabContent/Editor/index.tsx @@ -5,10 +5,21 @@ import * as monaco from 'monaco-editor/esm/vs/editor/editor.api'; import { DARK_THEME_ID, DEFAULT_THEME_ID } from '@src/setupMonaco'; import rideLanguageService from '@services/rideLanguageService'; import { inject, observer } from 'mobx-react'; -import { FILE_TYPE, FilesStore, SettingsStore, TAB_TYPE, TabsStore, TestsStore, TFile, UIStore } from '@stores'; +import { + FILE_TYPE, + FilesStore, + IRideFile, + SettingsStore, + TAB_TYPE, + TabsStore, + TestsStore, + TFile, + UIStore +} from '@stores'; import { mediator } from '@services'; import styles from './styles.less'; import { computed, Lambda, observe, reaction } from 'mobx'; +import { scriptInfo } from '@waves/ride-js'; interface IProps { filesStore?: FilesStore @@ -54,7 +65,20 @@ export default class Editor extends React.Component { if (this.editor && this.monaco) { const model = this.editor.getModel(); if (model == null || (model as any).getLanguageIdentifier().language !== 'ride') return; - const errors = await rideLanguageService.validateTextDocument(model); + + const rideFileInfo = scriptInfo(this.props.filesStore?.currentFile?.content || ''); + if ('error' in rideFileInfo) throw 'invalid scriptInfo'; + const imports = rideFileInfo.imports.map(name => name.endsWith('.ride') ? name : `${name}.ride`); + + let libraries = {} as Record; + this.props.filesStore?.files.filter(file => { + return imports.indexOf(file.name) != -1; + }).map(file => { + const libName = rideFileInfo.imports.find(name => name === file.name || `${name}.ride` === file.name) + libraries[libName || file.name] = file.content + }); + + const errors = await rideLanguageService.validateTextDocument(model, libraries); this.monaco.editor.setModelMarkers(model, '', errors); } }; diff --git a/src/layout/SidePanel/Explorer/index.tsx b/src/layout/SidePanel/Explorer/index.tsx index efc911a2..42105288 100644 --- a/src/layout/SidePanel/Explorer/index.tsx +++ b/src/layout/SidePanel/Explorer/index.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { inject, observer } from 'mobx-react'; import { saveAs } from 'file-saver'; -import { FILE_TYPE, FilesStore, TAB_TYPE, TabsStore, TFile } from '@stores'; +import { FILE_TYPE, FilesStore, TAB_TYPE, TabsStore, TFile,NotificationsStore } from '@stores'; import Scrollbar from '@components/Scrollbar'; import Menu, { MenuItem, SubMenu } from 'rc-menu'; import styles from './styles.less'; @@ -11,11 +11,13 @@ import classNames from 'classnames'; type IFileExplorerState = { editingFile: string + editingFileName: string }; interface IInjectedProps { filesStore?: FilesStore tabsStore?: TabsStore + notificationsStore?: NotificationsStore } export const getFileIcon = (file: TFile) => { @@ -42,12 +44,12 @@ export const getFileIcon = (file: TFile) => { }; - -@inject('filesStore', 'tabsStore') +@inject('filesStore', 'tabsStore', 'notificationsStore') @observer class Explorer extends React.Component { state: IFileExplorerState = { - editingFile: '' + editingFile: '', + editingFileName: '' }; private handleOpen = (fileId: string) => () => this.props.tabsStore!.openFile(fileId); @@ -60,6 +62,19 @@ class Explorer extends React.Component { this.props.filesStore!.renameFile(key, name); }; + private finishEditing = () => { + const file = this.props.filesStore?.fileById(this.state.editingFile); + if (file == null) { + this.props.notificationsStore?.notify(`The selected file was not found.`,{type: 'warning'}) + return; + } + if(this.props.filesStore?.files.some(f => f.id !== file.id && f.name === file.name)){ + this.props.notificationsStore?.notify(`A file with "${file.name}" name already exists.`,{type: 'warning'}) + file.name = this.state.editingFileName + }; + this.setState({editingFile: '', editingFileName: ''}); + }; + private handleFocus = (e: React.FocusEvent) => { const input = e.target; input.setSelectionRange(0, input.value.length); @@ -79,7 +94,11 @@ class Explorer extends React.Component { private handleEdit = (fileId: string) => (e: React.MouseEvent) => { e.stopPropagation(); - this.setState({editingFile: fileId}); + const editingFileName = this.props.filesStore?.fileById(fileId)?.name; + if (editingFileName != null) { + this.setState({editingFile: fileId, editingFileName}); + } + }; private handleDelete = (fileId: string) => (e: React.MouseEvent) => { @@ -90,7 +109,7 @@ class Explorer extends React.Component { private handleEnter = (e: React.KeyboardEvent) => { if (e.key.toLowerCase() === 'enter') { e.preventDefault(); - this.setState({editingFile: ''}); + this.finishEditing(); } }; @@ -110,10 +129,8 @@ class Explorer extends React.Component { ? (<> {getFileIcon(file)} { - this.handleRename(file.id, e.target.value); - }} - onBlur={() => this.setState({editingFile: ''})} + onChange={(e) => this.handleRename(file.id, e.target.value)} + onBlur={this.finishEditing} value={file.name} readOnly={false} onFocus={this.handleFocus} @@ -182,7 +199,7 @@ class Explorer extends React.Component { {this.getFileMenu(FILE_TYPE.JAVA_SCRIPT, 'Test files', files)} Library}> } + expandIcon={} title={<>
Tutorials diff --git a/src/services/HotKeysService.ts b/src/services/HotKeysService.ts index 923da2bc..09c254e4 100644 --- a/src/services/HotKeysService.ts +++ b/src/services/HotKeysService.ts @@ -85,7 +85,7 @@ export class HotKeysService { private createNewFile = (e: ExtendedKeyboardEvent) => { this.stopPropagation(e); - const content = '{-# STDLIB_VERSION 4 #-}\n' + + const content = '{-# STDLIB_VERSION 5 #-}\n' + '{-# CONTENT_TYPE DAPP #-}\n' + '{-# SCRIPT_TYPE ACCOUNT #-}'; this.rootStore!.filesStore.createFile({type: FILE_TYPE.RIDE, content}, true); diff --git a/src/services/rideLanguageService/index.ts b/src/services/rideLanguageService/index.ts index 9f79cef8..ff25940e 100644 --- a/src/services/rideLanguageService/index.ts +++ b/src/services/rideLanguageService/index.ts @@ -2,7 +2,6 @@ import monaco, { CancellationToken } from 'monaco-editor/esm/vs/editor/editor.ap import { Range } from 'vscode-languageserver-types'; import Worker from './worker'; import EventEmitter from 'wolfy87-eventemitter'; -import { IFlattenedCompilationResult } from "@waves/ride-js"; import ITextModel = monaco.editor.ITextModel; import IMarkerData = monaco.editor.IMarkerData; import CompletionList = monaco.languages.CompletionList; @@ -10,7 +9,7 @@ import Hover = monaco.languages.Hover; import SignatureHelpResult = monaco.languages.SignatureHelpResult; import Definition = monaco.languages.Definition; -export type TRideFileType = 'account' | 'asset' | 'dApp' | 'library'; +export type TRideFileType = 'account' | 'asset' | 'dApp' | 'library' | 'expression'; export interface ICompilation { ast?: object @@ -22,6 +21,7 @@ export interface ICompilation { callableComplexities?: Record userFunctionComplexities?: Record globalVariableComplexities?: Record + stateCallsComplexities?: Record error?: string } @@ -30,13 +30,15 @@ export interface IRideFileInfo { readonly type: TRideFileType, readonly maxSize: number, readonly maxComplexity: number, + readonly maxCallableComplexity: number, readonly compilation: ICompilation, readonly maxAccountVerifierComplexity: number, - readonly scriptType: number - readonly contentType: number + readonly imports: string[] + readonly maxAssetVerifierComplexity: number, + readonly scriptType: number, + readonly contentType: number, } - export class RideLanguageService extends EventEmitter { id = 0; worker: any; @@ -49,13 +51,14 @@ export class RideLanguageService extends EventEmitter { }); } - async validateTextDocument(model: ITextModel): Promise { + async validateTextDocument(model: ITextModel, libraries: Record): Promise { const msgId = ++this.id; this.worker.postMessage({ data: { uri: model.uri.toString(), languageId: model.getModeId(), - content: model.getValue() + content: model.getValue(), + libraries }, msgId, type: 'validateTextDocument' @@ -193,9 +196,11 @@ export class RideLanguageService extends EventEmitter { } - async provideInfo(content: string): Promise { + async provideInfo(content: string, needCompaction?: boolean, removeUnused?: boolean, libraries?: Record ): Promise { const msgId = ++this.id; - this.worker.postMessage({data: {content}, msgId, type: 'compile'}); + const msgData = { content, needCompaction, removeUnused, libraries }; + + this.worker.postMessage({ data: msgData, msgId, type: 'compile' }); return new Promise((resolve, reject) => { this.once('result' + msgId, (info: IRideFileInfo) => { diff --git a/src/services/rideLanguageService/worker.ts b/src/services/rideLanguageService/worker.ts index 79e1e7c4..eebfd3c2 100644 --- a/src/services/rideLanguageService/worker.ts +++ b/src/services/rideLanguageService/worker.ts @@ -8,6 +8,7 @@ interface IFlattenedCompilationResult { callableComplexities?: Record userFunctionComplexities?: Record globalVariableComplexities?: Record + stateCallsComplexities?: Record error?: string } @@ -22,6 +23,7 @@ interface ICompilationResult { callableComplexities?: Record userFunctionComplexities?: Record globalVariableComplexities?: Record + stateCallsComplexities?: Record } } @@ -36,6 +38,7 @@ interface ICompilationError { callableComplexities?: Record userFunctionComplexities?: Record globalVariableComplexities?: Record + stateCallsComplexities?: Record } interface ICompilation { @@ -48,10 +51,11 @@ interface ICompilation { callableComplexities?: Record userFunctionComplexities?: Record globalVariableComplexities?: Record + stateCallsComplexities?: Record error?: string } -type TRideFileType = 'account' | 'asset' | 'dApp' | 'library'; +type TRideFileType = 'account' | 'asset' | 'dApp' | 'library' | 'expression'; interface IRideFileInfo { stdLibVersion: number, @@ -59,9 +63,13 @@ interface IRideFileInfo { maxSize: number, compilation: ICompilation, maxComplexity: number, + maxCallableComplexity: number, maxAccountVerifierComplexity: number, + maxAssetVerifierComplexity: number, scriptType: number contentType: number + // maxstateCallsComplexities?: number + imports: [] } const worker = (() => { @@ -71,47 +79,67 @@ const worker = (() => { const RideJS = (self as any).RideJS; const languageService = new LspService(); + console.log('Worker RideJS ver: ', RideJS.version); + const flattenCompilationResult = (compiled: ICompilationResult | ICompilationError): IFlattenedCompilationResult => { let result: IFlattenedCompilationResult | undefined = undefined; if ('error' in compiled) { - result = compiled + result = compiled; } else { result = compiled.result; } return result; - } + }; - function compileRideFile(content: string) { + function compileRideFile(content: string, needCompaction: boolean, removeUnused: boolean, libraries?: Record) { const limits = RideJS.contractLimits; + let info: IRideFileInfo = { stdLibVersion: 3, type: 'account', maxSize: limits.MaxExprSizeInBytes, maxComplexity: limits.MaxComplexityByVersion(3), + maxCallableComplexity: 0, maxAccountVerifierComplexity: 0, + maxAssetVerifierComplexity: 0, compilation: { verifierComplexity: 0 }, contentType: 2, scriptType: 1, + imports: [] }; - + try { const scriptInfo = RideJS.scriptInfo(content); if ('error' in scriptInfo) throw 'invalid scriptInfo'; - - const { stdLibVersion, contentType, scriptType } = scriptInfo; + + const { stdLibVersion, contentType, scriptType, imports } = scriptInfo; info.stdLibVersion = stdLibVersion; info.contentType = contentType; info.scriptType = scriptType; - + info.imports = imports; info.maxSize = contentType === 2 ? limits.MaxContractSizeInBytes : limits.MaxExprSizeInBytes; info.maxComplexity = limits.MaxComplexityByVersion(stdLibVersion); + info.maxCallableComplexity = limits.MaxCallableComplexityByVersion(stdLibVersion) switch (contentType) { + case 1: + if (scriptType === 2) { + info.type = 'asset'; + info.maxAssetVerifierComplexity = limits.MaxAssetVerifierComplexityByVersion(stdLibVersion); + } + if (scriptType === 3) { + info.type = 'expression'; + info.maxAssetVerifierComplexity = limits.MaxAssetVerifierComplexityByVersion(stdLibVersion); + } else { + info.type = 'account'; + info.maxAccountVerifierComplexity = limits.MaxAccountVerifierComplexityByVersion(stdLibVersion); + } + break; case 2: info.type = 'dApp'; info.maxAccountVerifierComplexity = limits.MaxAccountVerifierComplexityByVersion(stdLibVersion); @@ -119,17 +147,9 @@ const worker = (() => { case 3: info.type = 'library'; break; - default: - if (scriptType === 2) { - info.type = 'asset'; - } else { - info.type = 'account'; - info.maxAccountVerifierComplexity = limits.MaxAccountVerifierComplexityByVersion(stdLibVersion); - } - break; } - const compilationResult: IFlattenedCompilationResult = flattenCompilationResult(RideJS.compile(content, 3)); + const compilationResult: IFlattenedCompilationResult = flattenCompilationResult(RideJS.compile(content, 3, needCompaction, removeUnused, libraries)); info.compilation = compilationResult; } catch (e) { @@ -137,23 +157,24 @@ const worker = (() => { info.compilation = { error: e, verifierComplexity: 0 - } + }; } else { info.compilation = { error: 'unknown error', verifierComplexity: 0 - } + }; } } return info; } + + self.addEventListener('message', e => { if (!e) return; const {data, msgId, type} = e.data; let result: any = null; - try { const textDocument = LspService.TextDocument @@ -164,7 +185,7 @@ const worker = (() => { }; switch (type) { case'validateTextDocument': - result = languageService.validateTextDocument(textDocument); + result = languageService.validateTextDocument(textDocument, data.libraries); break; case'completion': result = languageService.completion(textDocument, convertedPosition); @@ -179,12 +200,11 @@ const worker = (() => { result = languageService.definition(textDocument, convertedPosition); break; case'compile': - result = compileRideFile(data.content); + result = compileRideFile(data.content, data.needCompaction, data.removeUnused, data.libraries); break; } } catch (e) { console.error(e); - console.log({data, msgId, type}); } postMessage({result, msgId}, undefined as any); }); diff --git a/src/setupMonaco.ts b/src/setupMonaco.ts index ada8c21d..71db761c 100644 --- a/src/setupMonaco.ts +++ b/src/setupMonaco.ts @@ -105,6 +105,7 @@ export default function setupMonaco() { ], string: [ {regex: /[^\\"]+/, action: {token: 'string'}}, + {regex: /\\./, action: {token: 'string.escape.invalid'}}, {regex: /"/, action: {token: 'string.quote', bracket: '@close', next: '@pop'}} ] }, diff --git a/src/stores/AccountsStore.ts b/src/stores/AccountsStore.ts index f26e4205..8e3cec7b 100644 --- a/src/stores/AccountsStore.ts +++ b/src/stores/AccountsStore.ts @@ -125,8 +125,8 @@ class AccountsStore extends SubStore { @computed get nodesAccounts() { return Object.entries(this.accountGroups).reduce((accounts, group) => { - return [...accounts, ...group[1].accounts] - }, [] as IAccount[]) + return [...accounts, ...group[1].accounts]; + }, [] as IAccount[]); } @computed @@ -221,9 +221,8 @@ class AccountsStore extends SubStore { async updateAccountInfo(account: IAccount, url: string) { let requestOptions: RequestInit | undefined = this.rootStore.accountsStore ? this.rootStore.settingsStore.nodeRequestOptions - : { credentials: 'same-origin' } + : { credentials: 'same-origin' }; - // const url = this.rootStore.settingsStore.defaultNode.url; const balance = await nodeInteraction.balance(account.address, url, requestOptions); const scriptInfo = await nodeInteraction.scriptInfo(account.address, url, requestOptions); runInAction(() => { diff --git a/src/stores/CompilationStore.ts b/src/stores/CompilationStore.ts index cb9b5d7c..baccf828 100644 --- a/src/stores/CompilationStore.ts +++ b/src/stores/CompilationStore.ts @@ -1,8 +1,8 @@ -import { observable, action, computed } from 'mobx'; +import { computed } from 'mobx'; import SubStore from '@stores/SubStore'; import { FILE_TYPE } from '@stores/FilesStore'; -import { ICompilation, IRideFileInfo } from '@services/rideLanguageService'; +import { IRideFileInfo } from '@services/rideLanguageService'; interface IRepl { name: string, @@ -17,11 +17,15 @@ interface ICompilationMessage { export default class CompilationStore extends SubStore { getFunctionsComplexityMessages = (info: IRideFileInfo, messages: ICompilationMessage[], type: 'error' | 'success' = 'success') => { const contentTypeTitle = info.contentType === 1 ? 'Verifier' : 'Script' - + const callableFunctionsComplexities = Object.entries(info.compilation.callableComplexities || {}) .reduce((complexities, [func, complexity]) => ([...complexities, `\n\n \u2000 \u2000 ${func} ${complexity}`]) , []); + const stateCallFunctionsComplexities = Object.entries(info.compilation.stateCallsComplexities || {}) + .reduce((complexities, [func, complexity]) => ([...complexities, `\n\n \u2000 \u2000 ${func} ${complexity}`]) + , []); + const userFunctionComplexities = Object.entries(info.compilation.userFunctionComplexities || {}) .reduce((complexities, [func, complexity]) => ([...complexities, `\n\n \u2000 \u2000 ${func} ${complexity}`]) , []); @@ -33,6 +37,7 @@ export default class CompilationStore extends SubStore { const parts = [ 'complexity' in info.compilation ? `${contentTypeTitle} complexity ${info.compilation.complexity}` : undefined, callableFunctionsComplexities.length > 0 ? `\n\nCallable functions complexity: ${callableFunctionsComplexities.join('')}` : undefined, + stateCallFunctionsComplexities.length > 0 ? `\n\nState calls complexity: ${stateCallFunctionsComplexities.join('')}` : undefined, userFunctionComplexities.length > 0 ? `\n\nUser functions complexity: ${userFunctionComplexities.join('')}` : undefined, globalVariableComplexities.length > 0 ? `\n\nGlobal variables complexity: ${globalVariableComplexities.join('')}` : undefined ].filter(part => !!part); @@ -71,7 +76,6 @@ export default class CompilationStore extends SubStore { if (file && file.type === FILE_TYPE.RIDE && file.info) { const { name, info } = file; - if ('error' in info.compilation && info.compilation.error) { compilation.length = 0; compilation.push({ type: 'error', message: info.compilation.error }); diff --git a/src/stores/File.ts b/src/stores/File.ts index 30c4ab29..07f7fe76 100644 --- a/src/stores/File.ts +++ b/src/stores/File.ts @@ -3,11 +3,24 @@ import { autorun, Lambda, observable, reaction, runInAction } from 'mobx'; import { IDBPDatabase } from 'idb'; import { IAppDBSchema } from '@services/db'; import rideLanguageService,{ IRideFileInfo } from '@services/rideLanguageService'; +import { scriptInfo } from '@waves/ride-js'; +import { SettingsStore } from '@stores/SettingsStore'; export enum FILE_TYPE { RIDE = 'ride', JAVA_SCRIPT = 'js', - MARKDOWN = 'md', + MARKDOWN = 'md' +} + +export enum RIDE_SCRIPT_TYPE { + ACCOUNT = 1, + ASSET = 2, +} + +export enum RIDE_CONTENT_TYPE { + EXPRESSION = 1, + DAPP = 2, + LIBRARY = 3, } export interface IFile { @@ -22,7 +35,8 @@ export interface IFile { export interface IRideFile extends IFile { type: FILE_TYPE.RIDE - readonly info: IRideFileInfo + info: IRideFileInfo + setInfo: (info: IRideFileInfo) => void; } export interface IJSFile extends IFile { @@ -107,24 +121,44 @@ export class RideFile extends File implements IRideFile { type: 'account', maxSize: 0, maxComplexity: 0, + maxCallableComplexity: 0, compilation: { error: 'No data' }, maxAccountVerifierComplexity: 0, + maxAssetVerifierComplexity: 0, scriptType: 0, - contentType: 0 + contentType: 0, + imports: [] }; type: FILE_TYPE.RIDE = FILE_TYPE.RIDE; _rideFileInfoSyncDisposer: Lambda; - constructor(opts: Omit, db?: IDBPDatabase) { + constructor(settingsStore: SettingsStore, opts: Omit, db?: IDBPDatabase) { super(opts, db); this._rideFileInfoSyncDisposer = autorun(async () => { - const info = await rideLanguageService.provideInfo(this.content); + const rideFileInfo = scriptInfo(this.content) + + if ('error' in rideFileInfo) throw 'invalid scriptInfo'; + + const imports = rideFileInfo.imports.map(name => name.endsWith('.ride') ? name : `${name}.ride`); + + let libraries = {} as Record; + if (!!imports && !!imports.length) { + let files = await db?.getAll('files') || []; + files = files.filter(file => imports.indexOf(file.name) !== -1) + files.map(file => libraries[file.name.slice(0,-5)] = file.content) + } + + const info = await rideLanguageService.provideInfo(this.content, settingsStore.isCompaction, settingsStore.isRemoveUnusedCode, libraries); runInAction(() => this.info = info); }); } + setInfo(info: IRideFileInfo) { + this.info = info; + } + dispose() { super.dispose(); this._rideFileInfoSyncDisposer(); diff --git a/src/stores/FilesStore.ts b/src/stores/FilesStore.ts index 44c47485..f7690198 100644 --- a/src/stores/FilesStore.ts +++ b/src/stores/FilesStore.ts @@ -12,23 +12,14 @@ import { testSamples } from '@src/testSamples'; import dbPromise, { IAppDBSchema } from '@services/db'; import { IDBPDatabase } from 'idb'; import { FILE_TYPE, IFile, IJSFile, IRideFile, JSFile, RideFile, TFile } from './File'; -import rideLanguageService from '@services/rideLanguageService'; +import rideLanguageService from '@services/rideLanguageService'; +import { scriptInfo } from '@waves/ride-js'; export type Overwrite = { [P in Exclude]: T1[P] } & T2; -function fileObs(file: IFile, db?: IDBPDatabase): RideFile | JSFile { - if (file.type === FILE_TYPE.JAVA_SCRIPT) { - return new JSFile(file as IJSFile, db); - } else if (file.type === FILE_TYPE.RIDE) { - return new RideFile(file as IRideFile, db); - } else { - throw new Error(`Invalid file type ${file.type}`); - } -} - -const FOLDERS = ['smart-accounts', 'ride4dapps', 'dApps', 'smart-assets']; +const FOLDERS = ['smart-accounts', 'smart-assets', 'dApps', 'dApp-to-dApps', 'casino', 'auction']; type TFolder = { name: string, @@ -82,6 +73,7 @@ class FilesStore extends SubStore { public currentDebouncedChangeFnForFile?: ReturnType; + constructor(rootStore: RootStore, initState: any) { super(rootStore); if (initState != null) { @@ -110,6 +102,16 @@ class FilesStore extends SubStore { } + fileObs(file: IFile, db?: IDBPDatabase): RideFile | JSFile { + if (file.type === FILE_TYPE.JAVA_SCRIPT) { + return new JSFile(file as IJSFile, db); + } else if (file.type === FILE_TYPE.RIDE) { + return new RideFile(this.rootStore.settingsStore, file as IRideFile, db); + } else { + throw new Error(`Invalid file type ${file.type}`); + } + } + public serialize = () => ({ examples: this.examples }); @@ -169,7 +171,7 @@ class FilesStore extends SubStore { @action async createFile(file: Partial & { type: FILE_TYPE, content: string }, open = false): Promise { const db = await dbPromise; - const newFile = fileObs({ + const newFile = this.fileObs({ id: uuid(), name: this.generateFilename(file.type), ...file @@ -224,6 +226,33 @@ class FilesStore extends SubStore { } } + async syncCurrentFileInfo(isCompaction?: boolean, isRemoveUnusedCode?: boolean) { + const file = this.currentFile; + let libraries = {} as Record; + + if(file?.type === FILE_TYPE.RIDE) { + const rideFileInfo = scriptInfo(file.content) + + if ('error' in rideFileInfo) throw 'invalid scriptInfo'; + + const imports = rideFileInfo.imports.map(name => name.endsWith('.ride') ? name : `${name}.ride`); + + if (!!imports && imports.length) { + const db = await dbPromise; + let files = await db?.getAll('files') || []; + files = files.filter(file => imports.indexOf(file.name) !== -1) + files.map(file => { + const libName = rideFileInfo.imports.find(name => name === file.name || `${name}.ride` === file.name) + libraries[libName || file.name] = file.content + }) + } + } + if (file && file.type === FILE_TYPE.RIDE) { + const info = await rideLanguageService.provideInfo(file.content, isCompaction, isRemoveUnusedCode, libraries); + file.setInfo(info); + } + } + getDebouncedChangeFnForFile = (id: string) => { const changeFileFn = debounce((newContent: string) => this.changeFileContent(id, newContent), 500); this.currentDebouncedChangeFnForFile = changeFileFn; @@ -260,18 +289,18 @@ class FilesStore extends SubStore { return; } + runInAction(() => { + this.examples.folders = updatedContent as TFolder[]; + this.examples.eTag = repoInfoResp.headers.etag; + }); + const foldersToSync = repoInfoResp.data.filter((item) => FOLDERS.includes(item.name)); const updatedContent = await syncContent(this.examples.folders, foldersToSync); // Todo: This is hardcoded tests need to refactor them out to github repo updatedContent.push(this.tests as TFolder); - runInAction(() => { - this.examples.folders = updatedContent as TFolder[]; - this.examples.eTag = repoInfoResp.headers.etag; - }); - - async function syncContent(oldContent: (TSampleFile | TFolder)[], remoteInfo: TGithubDataItem[]): Promise<(TSampleFile | TFolder)[]> { + async function syncContent(oldContent: (TSampleFile | TFolder)[], remoteInfo: TGithubDataItem[]): Promise<(TSampleFile | TFolder)[]> { let resultContent: (TSampleFile | TFolder)[] = []; for (let remoteItem of remoteInfo) { @@ -286,7 +315,10 @@ class FilesStore extends SubStore { const content = await axios.get(remoteItem.download_url).then(r => r.data); const ext = remoteItem.name.split('.')[remoteItem.name.split('.').length - 1] as FILE_TYPE; let info; - if (ext === 'ride') info = await rideLanguageService.provideInfo(content); + if (ext === 'ride') { + const files = await dbPromise.then(db => db.getAll('files')); + info = await rideLanguageService.provideInfo(content, undefined, undefined, files.filter(f => f.type === FILE_TYPE.RIDE) as unknown as Record); + } if (ext === 'js') info = await getJSFileInfo(content); if (['ride', 'js', 'md'].includes(ext)) { resultContent.push({ @@ -312,7 +344,12 @@ class FilesStore extends SubStore { } return resultContent; - } + }; + + runInAction(() => { + this.examples.folders = updatedContent as TFolder[]; + this.examples.eTag = repoInfoResp.headers.etag; + }); } @action @@ -351,7 +388,6 @@ class FilesStore extends SubStore { case 'update': const file = this.fileById(data.id); if (file) { - console.log(data); file.content = data.content; const model = this.rootStore.tabsStore.models[data.id]; if (model) { @@ -375,7 +411,7 @@ class FilesStore extends SubStore { case 'create': dbPromise.then(db => db.get('files', data.id)) .then(file => { - if (file) runInAction(() => this.files.push(fileObs(file))); + if (file) runInAction(() => this.files.push(this.fileObs(file))); }); break; default: @@ -387,7 +423,7 @@ class FilesStore extends SubStore { private syncFilesWithDb = async (): Promise => { this.files.forEach(f => f.dispose && f.dispose()); const files = await dbPromise.then(db => db.getAll('files') - .then(files => this.files = files.map(file => fileObs(file, db)))); + .then(files => this.files = files.map(file => this.fileObs(file, db)))); runInAction(() => this.files = files); }; } diff --git a/src/stores/MigrationStore.ts b/src/stores/MigrationStore.ts index 00f04942..dc3e9207 100644 --- a/src/stores/MigrationStore.ts +++ b/src/stores/MigrationStore.ts @@ -4,13 +4,13 @@ import { Bus, WindowAdapter } from '@waves/waves-browser-bus'; import { action, observable } from 'mobx'; import styles from '@src/layout/styles.less'; import { IImportedData } from '@stores/SettingsStore'; -import { depricatedHostSecure, activeHostSecure, activeHosts } from '@utils/hosts'; +import { depricatedHostSecure, activeHostSecure } from '@utils/hosts'; const isSafari = !!navigator.userAgent.match(/Version\/[\d\.]+.*Safari/); const computeOrigins = (isStagenetMigration: boolean) => { return isStagenetMigration - ? [depricatedHostSecure, activeHosts.stagenet.secure] + ? [depricatedHostSecure, activeHostSecure] : [depricatedHostSecure, activeHostSecure] } diff --git a/src/stores/NewsStore.ts b/src/stores/NewsStore.ts index 625ea89b..dc82d09e 100644 --- a/src/stores/NewsStore.ts +++ b/src/stores/NewsStore.ts @@ -46,7 +46,7 @@ class NewsStore extends SubStore { @action private async updateNews() { - const newsFileUrl = `https://raw.githubusercontent.com/wavesplatform/waves-ide/master/src/json-data/news.json?rand=${uuid()}`; + const newsFileUrl = `https://raw.githubusercontent.com/wavesplatform/waves-ide/stagenet/src/json-data/news.json?rand=${uuid()}`; try { const newsRes = await axios.get(newsFileUrl); diff --git a/src/stores/SettingsStore.ts b/src/stores/SettingsStore.ts index a0bdf1dd..1e366279 100644 --- a/src/stores/SettingsStore.ts +++ b/src/stores/SettingsStore.ts @@ -9,13 +9,13 @@ import { TFile } from '@stores/File'; import { IAccount, IAccountGroup } from '@stores/AccountsStore'; import { getNetworkByte } from '@utils'; import { validateNodeUrl } from '@utils/validators'; -import { activeHostSecure } from '@utils/hosts' +import { activeHostSecure } from '@utils/hosts'; type NodeParams = { chainId: string url: string system?: boolean - faucet?: string + faucet?: string } export interface IImportedData { @@ -26,9 +26,9 @@ export interface IImportedData { class SettingsStore extends SubStore { systemNodes: Node[] = [ - // new Node({...NETWORKS.STAGENET, system: true}), - new Node({...NETWORKS.TESTNET, system: true}), - new Node({...NETWORKS.MAINNET, system: true}) + new Node({...NETWORKS.STAGENET, system: true}), + // new Node({...NETWORKS.MAINNET, system: true}), + // new Node({...NETWORKS.TESTNET, system: true}) ]; @observable nodeTimeout = 60000; @@ -36,6 +36,8 @@ class SettingsStore extends SubStore { @observable defaultAdditionalFee = 0; @observable theme: 'light' | 'dark' = 'light'; @observable customNodes: Node[] = []; + @observable isCompaction: boolean = false; + @observable isRemoveUnusedCode: boolean = false; @observable activeNodeIndex = 0; @@ -46,7 +48,7 @@ class SettingsStore extends SubStore { if (initState != null) { initState.customNodes.forEach((node: NodeParams) => { - this.addNode(node); + this.addNode(node); }); this.activeNodeIndex = initState.activeNodeIndex; @@ -54,6 +56,8 @@ class SettingsStore extends SubStore { this.defaultAdditionalFee = initState.defaultAdditionalFee || 0; this.testTimeout = initState.testTimeout; this.theme = initState.theme || 'light'; + this.isCompaction = initState.isCompaction; + this.isRemoveUnusedCode = initState.isRemoveUnusedCode; } } @@ -81,7 +85,7 @@ class SettingsStore extends SubStore { ? new URL(this.defaultNode.url).host : this.defaultNode.url; - return node.url.includes(defaultNodeUrl) + return node.url.includes(defaultNodeUrl); }); } @@ -89,7 +93,7 @@ class SettingsStore extends SubStore { get nodeRequestOptions(): RequestInit { return { credentials: this.isNodePool ? 'include' : 'same-origin' - } + }; } @@ -123,20 +127,20 @@ class SettingsStore extends SubStore { @action addNode(node: NodeParams) { - const newNode = new Node(node) + const newNode = new Node(node); this.customNodes.push(newNode); } @action deleteNode(i: number) { - this.customNodes.splice(i - 2, 1); + this.customNodes.splice(i - 1, 1); if (this.activeNodeIndex >= i) this.activeNodeIndex -= 1; } @action updateNode(value: string, i: number, field: 'url' | 'chainId') { - this.customNodes[i - 2][field] = value; + this.customNodes[i - 1][field] = value; } @action @@ -153,6 +157,16 @@ class SettingsStore extends SubStore { } } + @action + toggleIsCompaction() { + this.isCompaction = !this.isCompaction; + } + + @action + toggleIsRemoveUnusedCode() { + this.isRemoveUnusedCode = !this.isRemoveUnusedCode; + } + @action toggleTheme() { this.theme = this.theme === 'light' ? 'dark' : 'light'; @@ -203,60 +217,33 @@ class SettingsStore extends SubStore { nodeTimeout: this.nodeTimeout, defaultAdditionalFee: this.defaultAdditionalFee, testTimeout: this.testTimeout, - theme: this.theme + theme: this.theme, + isCompaction: this.isCompaction, + isRemoveUnusedCode: this.isRemoveUnusedCode, }); } class Node { - @observable chainId: string = NETWORKS.TESTNET.chainId - @observable url: string = NETWORKS.TESTNET.url - @observable system: boolean = false - @observable faucet?: string = NETWORKS.TESTNET.faucet - @observable isValidNodeUrl: boolean = true - @observable isValidChainId: boolean = true - - nodeUrlCheckDisposer: Lambda; - chainIdCheckDisposer: Lambda; + @observable chainId: string = NETWORKS.TESTNET.chainId; + @observable url: string = NETWORKS.TESTNET.url; + @observable system: boolean = false; + @observable faucet?: string = NETWORKS.TESTNET.faucet; + @observable isValidNodeUrl: boolean = true; + @observable isValidChainId: boolean = true; constructor(params: NodeParams) { - this.chainId = params.chainId - this.url = params.url - this.system = !!params.system + this.chainId = params.chainId; + this.url = params.url; + this.system = !!params.system; - this.nodeUrlCheckDisposer = reaction( - () => this.url, + reaction(() => this.url, async (url) => { + this.chainId = await getNetworkByte(this.url) || ''; const isValidNodeUrl = await validateNodeUrl(url); - runInAction(() => this.isValidNodeUrl = isValidNodeUrl); - }, - { fireImmediately: true } - ) - - this.chainIdCheckDisposer = reaction( - () => [this.chainId, this.url], - async ([chainId]) => { - const code = chainId.charCodeAt(0); - - if (code > 0 && code < 255 && !isNaN(code) && chainId.length === 1) { - runInAction(() => this.isValidChainId = true) - } else { - return runInAction(() => this.isValidChainId = false) - } - - const networkByte = await getNetworkByte(this.url); - - if (networkByte && networkByte === chainId) { - runInAction(() => this.isValidChainId = true) - } else { - runInAction(() => this.isValidChainId = false) - } - - return; - }, - { fireImmediately: true } - ) + runInAction(() => this.isValidNodeUrl = isValidNodeUrl); + }, {fireImmediately: true}); } @computed @@ -264,13 +251,9 @@ class Node { try { const nodeUrl = new URL(this.url); - if (activeHostSecure.includes(window.origin) && nodeUrl.protocol !== 'https:') { - return false - } else { - return true - } + return !(activeHostSecure.includes(window.origin) && nodeUrl.protocol !== 'https:'); } catch (error) { - return false + return false; } } @@ -279,15 +262,15 @@ class Node { try { const nodeUrl = new URL(this.url); - return true + return true; } catch (error) { - return false + return false; } } @computed get isValid() { - return this.isValidUrlFormat && this.isSecure && this.isValidNodeUrl && this.isValidChainId + return this.isValidUrlFormat && this.isSecure && this.isValidNodeUrl && this.isValidChainId; } } diff --git a/src/stores/SignerStore.ts b/src/stores/SignerStore.ts index d8e3c32c..ffc75f59 100644 --- a/src/stores/SignerStore.ts +++ b/src/stores/SignerStore.ts @@ -2,7 +2,7 @@ import { action, computed, observable } from 'mobx'; import RootStore from '@stores/RootStore'; import SubStore from '@stores/SubStore'; -import { issue, setAssetScript, setScript } from '@waves/waves-transactions'; +import { issue, setAssetScript, setScript, invokeExpression } from '@waves/waves-transactions'; import { FILE_TYPE } from '@stores'; class SignerStore extends SubStore { @@ -56,6 +56,26 @@ class SignerStore extends SubStore { return JSON.stringify(tx, null, 2); } + get expressionTemplate(): string | null { + const {settingsStore, filesStore} = this.rootStore; + const file = filesStore.currentFile; + if (!file || file.type !== FILE_TYPE.RIDE || 'error' in file.info.compilation) return null; + + const chainId = settingsStore!.defaultNode!.chainId; + const base64 = file.info.compilation.base64; + + if (!base64) return null + + const tx = invokeExpression({ + expression: 'base64:' + base64, + chainId: chainId, + senderPublicKey: 'DT5bC1S6XfpH7s4hcQQkLj897xnnXQPNgYbohX7zZKcr' // Dummy senderPk Only to create tx + }); + delete tx.senderPublicKey; + delete tx.id; + return JSON.stringify(tx, null, 2); + } + get issueTemplate(): string | null { const {settingsStore, filesStore} = this.rootStore; const file = filesStore.currentFile; diff --git a/src/testSamples.ts b/src/testSamples.ts index 4595a8c7..f40c0d78 100644 --- a/src/testSamples.ts +++ b/src/testSamples.ts @@ -11,7 +11,7 @@ export const testSamples: { 1. 'describe', 'it' from mocha. https://mochajs.org/ 2. 'expect' from chai. https://www.chaijs.com/ 3. List of all env functions can be found here: - https://wavesplatform.github.io/js-test-env/modules/globalenv.html + https://wavesplatform.github.io/js-test-env/globals.html These functions use current account and current node as defaults */ diff --git a/src/utils/exchange.signer.ts b/src/utils/exchange.signer.ts index 3665cd8b..faae74bb 100644 --- a/src/utils/exchange.signer.ts +++ b/src/utils/exchange.signer.ts @@ -1,6 +1,6 @@ import { TTx } from '@waves/waves-transactions'; -import Signer from '@waves/signer'; -import Provider from '@waves.exchange/provider-web'; +import { Signer } from '@waves/signer'; +import { ProviderWeb } from '@waves.exchange/provider-web'; import { range } from './range'; import { NETWORKS } from '@src/constants'; @@ -9,10 +9,9 @@ export async function signViaExchange(tx: TTx, NODE_URL: string, proofN = 0) { const clientOrigin = clientOriginMap[NODE_URL]; if (!clientOrigin) throw 'Unfortunately, Exchange does not support this network at this time.'; - await signer.setProvider(new Provider(clientOrigin)); + await signer.setProvider(new ProviderWeb(clientOrigin)); if (tx.type !== 4 && tx.type !== 7 && tx.type !== 11 && tx.type !== 15 && tx.type !== 16) { - // if (tx.type === 13) { const signedTx = await signer.batch([{...tx, proofs: []} as any]).sign() as any; if (signedTx && 'proofs' in signedTx && signedTx.proofs.length > 0) { const signature = signedTx.proofs[0]; @@ -23,7 +22,6 @@ export async function signViaExchange(tx: TTx, NODE_URL: string, proofN = 0) { newProofs[proofN] = signature; newProofs = newProofs.map(proof => proof == null ? '' : proof); const result = {...signedTx, ...tx, proofs: newProofs}; - console.log(result); return result as any; } diff --git a/src/utils/localStore.ts b/src/utils/localStore.ts index ea37313c..050741b2 100644 --- a/src/utils/localStore.ts +++ b/src/utils/localStore.ts @@ -1,7 +1,15 @@ - export const loadState = (): any | undefined => { try { const state = JSON.parse(localStorage.getItem('store') as string); + const accountGroups = state.accountsStore.accountGroups; + const emptyChainId = ''; + if (accountGroups[emptyChainId]) { + if (accountGroups[emptyChainId].accounts.length) { + state.accountsStore.accountGroups['T'].accounts.push(...accountGroups[emptyChainId].accounts); + delete state.accountsStore.accountGroups['']; + } else delete state.accountsStore.accountGroups['']; + localStorage.setItem('store', JSON.stringify(state)) + } return state || undefined; } catch (error) { diff --git a/src/utils/waveskeeper.ts b/src/utils/waveskeeper.ts index b9cd4c99..b3895a87 100644 --- a/src/utils/waveskeeper.ts +++ b/src/utils/waveskeeper.ts @@ -47,7 +47,7 @@ function convert(tx: TTx) { } if (tx.type === 3) { - result.precision = (tx as any).precision == null ? 8 : (tx as any).precision; + result.precision = (tx as any).precision == null ? 0 : (tx as any).precision; } return { type: tx.type, diff --git a/tsconfig.json b/tsconfig.json index c55dfc2f..784dcbba 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -25,7 +25,7 @@ "noEmitHelpers": true, "jsx": "react", "lib": ["dom", "es2016", "es2017"], - "types": ["./node_modules/@waves/waveskeeper-types", "./node_modules/@types/long"], + "types": ["./node_modules/@waves/waveskeeper-types", "./node_modules/@types/long", "node"], "target": "es5", "downlevelIteration": true, "module": "commonjs",