diff --git a/.drone.yml b/.drone.yml
index 1a4a62c654..d6e723a7d8 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -43,4 +43,53 @@ trigger:
- master
- testnet
event:
- - push
\ No newline at end of file
+ - push
+
+---
+
+kind: pipeline
+type: docker
+name: kit_v2_sandbox_deployment
+
+steps:
+- name: slack_noti_job_start
+ image: plugins/slack
+ settings:
+ channel: deployment
+ webhook:
+ from_secret: slack_webhook
+ template: "<{{build.link}}|HollaEx v2 Sandbox Deployment> - #{{build.number}} started on by {{build.author}}"
+
+- name: partymaker_version_tag
+ image: alpine
+ commands:
+ - echo "$(cat version)-sandbox" > .tags
+ - echo "Current version tag is :" && cat .tags
+
+- name: request_hollacloud_to_run_upgrade
+ image: bitholla/devops-tools:drone_hollacloud-201007
+ environment:
+ HOLLAEX_EMAIL:
+ from_secret: hollaex_email
+ HOLLAEX_PASSWORD:
+ from_secret: hollaex_password
+ settings:
+ exchange_id: 176
+ exchange_name: "Sandbox HollaEx"
+
+- name: slack_noti_job_end
+ image: plugins/slack
+ settings:
+ channel: deployment
+ webhook:
+ from_secret: slack_webhook
+ when:
+ status: [success, failure]
+
+trigger:
+ branch:
+ - 2.0
+ event:
+ - push
+
+
\ No newline at end of file
diff --git a/.hollaex b/.hollaex
index b93f926f87..c3a730e492 100644
--- a/.hollaex
+++ b/.hollaex
@@ -1 +1 @@
-Initialized by using hollaex-cli v1.6.0
+ENVIRONMENT_HOLLAEX_KIT_NETWORK=mainnet
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
index 9893c1b9fb..9fc8aee39e 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,16 +1,22 @@
-FROM bitholla/hollaex-core:1.23.1
+FROM node:10.15.3-stretch-slim
-COPY ./mail /app/mail
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends git python build-essential && \
+ rm -rf /var/lib/apt/lists/* && \
+ npm install pm2@3.2.7 sequelize-cli@5.4.0 mocha -g --loglevel=error
-COPY ./plugins /app/plugins
+ENV NODE_ENV=production
-COPY ./db/migrations /app/db/migrations
+COPY ./server /app
-COPY ./db/seeders /app/db/seeders
+WORKDIR /app
-COPY ./db/models /app/db/models
-
-RUN npm install -g nodemon --loglevel=error && \
- cd plugins && npm install --loglevel=error && \
- for d in ./*/ ; do (cd "$d" && npm install --loglevel=error); done && \
+RUN npm install --loglevel=error && \
+ pm2 update && \
cd /app/mail && npm install --loglevel=error
+
+EXPOSE 10010
+
+EXPOSE 10080
+
+ENTRYPOINT ["/entrypoint.sh"]
diff --git a/README.md b/README.md
index 9197cabeca..299554d0cf 100644
--- a/README.md
+++ b/README.md
@@ -1,24 +1,27 @@
# HollaEx Kit [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-green.svg)](https://github.com/facebook/create-react-app/pulls)
-HollaEx Kit is a full exchange launcher kit for building and running an exchange platfrom where you can list and trade any digital assets for your users.
-
-HollaEx Kit has 3 main components:
-- HollaEx Core: HollaEx Core is a [docker image](https://cloud.docker.com/u/bitholla/repository/docker/bitholla/hollaex-core) which includes trading matching engine, real-time data stream, user management and general RESTful API management.
-- HollaEx Web: Front-end Web application for user interface
-- HollaEx CLI: Command Line Interface for interacting and deploying your exchange.
+HollaEx Kit is an open source crypto exchange software that can be utilized to onboard your users and traders in order to run your white label exchange. In order to run the HollaEx Kit, you need to run HollaEx Server as the back-end and Web as your front-end user interface. HollaEx Kit automatically then connects to HollaEx Network where you have access to markets and liquidity for different digital assets.
## Get Started
-HollaEx Kit provides simple (but powerful) CLI tool to help exchange operators setup and operate their exchange. Get started by install HollaEx CLI and following the [documentation](https://docs.bitholla.com) to start your own exchange.
-
+HollaEx Kit provides simple (but powerful) CLI tool to help exchange operators setup and operate the exchange. Get started by install HollaEx CLI and following the [documentation](https://docs.bitholla.com) to start your own exchange.
```
git clone https://github.com/bitholla/hollaex-kit.git
bash install.sh
```
-
Read more on our [Docs](https://docs.bitholla.com/hollaex-kit/get-started)!
+## Developers
+
+Checkout Web for the front-end UI/UX modifications.
+
+Check out Server for back-end and server side operations and endpoints.
+
+Check out Plugins for developing seamless and flexible custom services that can be added to the HollaEx Kit.
+
+Check out HollaEx CLI (Command Line Interface) for interacting and deploying your exchange.
+
## Community
Join us on the [Forum](https://forum.bitholla.com) and feel free to raise any topic and ask questions from our active community.
diff --git a/db/migrations/20170718084400-create-order.js b/db/migrations/20170718084400-create-order.js
deleted file mode 100644
index 9b76d6c774..0000000000
--- a/db/migrations/20170718084400-create-order.js
+++ /dev/null
@@ -1,57 +0,0 @@
-'use strict';
-
-module.exports = {
- up: (queryInterface, Sequelize) => {
- return queryInterface.createTable(
- 'Orders',
- {
- id: {
- allowNull: false,
- unique: true,
- primaryKey: true,
- type: Sequelize.UUID
- },
- created_by: {
- type: Sequelize.INTEGER,
- onDelete: 'CASCADE',
- allowNull: false,
- references: {
- model: 'Users',
- key: 'id'
- }
- },
- side: {
- type: Sequelize.ENUM('buy', 'sell'),
- allowNull: false
- },
- type: {
- type: Sequelize.ENUM('market', 'limit'),
- allowNull: false
- },
- size: {
- type: Sequelize.BIGINT,
- allowNull: false
- },
- price: {
- type: Sequelize.INTEGER,
- allowNull: false
- },
- created_at: {
- allowNull: false,
- type: Sequelize.DATE,
- defaultValue: Sequelize.literal('NOW()')
- },
- updated_at: {
- allowNull: false,
- type: Sequelize.DATE,
- defaultValue: Sequelize.literal('NOW()')
- }
- },
- {
- timestamps: true,
- underscored: true
- }
- );
- },
- down: (queryInterface, Sequelize) => queryInterface.dropTable('Orders')
-};
diff --git a/db/migrations/20170718131400-create-trade.js b/db/migrations/20170718131400-create-trade.js
deleted file mode 100644
index c89c57e7fd..0000000000
--- a/db/migrations/20170718131400-create-trade.js
+++ /dev/null
@@ -1,55 +0,0 @@
-'use strict';
-
-module.exports = {
- up: (queryInterface, Sequelize) => {
- return queryInterface.createTable(
- 'Trades',
- {
- id: {
- allowNull: false,
- autoIncrement: true,
- primaryKey: true,
- type: Sequelize.INTEGER
- },
- maker_id: {
- type: Sequelize.INTEGER,
- allowNull: false,
- references: {
- model: 'Users',
- key: 'id'
- }
- },
- taker_id: {
- type: Sequelize.INTEGER,
- allowNull: false,
- references: {
- model: 'Users',
- key: 'id'
- }
- },
- side: {
- type: Sequelize.ENUM('buy', 'sell'),
- allowNull: false
- },
- size: {
- type: Sequelize.BIGINT,
- allowNull: false
- },
- price: {
- type: Sequelize.INTEGER,
- allowNull: false
- },
- timestamp: {
- defaultValue: Sequelize.literal('NOW()'),
- allowNull: false,
- type: Sequelize.DATE
- }
- },
- {
- timestamps: false,
- underscored: true
- }
- );
- },
- down: (queryInterface, Sequelize) => queryInterface.dropTable('Trades')
-};
\ No newline at end of file
diff --git a/db/migrations/20170718150000-create-balance.js b/db/migrations/20170718150000-create-balance.js
deleted file mode 100644
index 61c833c774..0000000000
--- a/db/migrations/20170718150000-create-balance.js
+++ /dev/null
@@ -1,54 +0,0 @@
-'use strict';
-
-const { DataTypes } = require('sequelize');
-const { BALANCE_KEYS } = require('../../constants');
-
-const balances = {};
-BALANCE_KEYS.forEach(balance => {
- balances[balance] = {
- type: DataTypes.DOUBLE,
- allowNull: false,
- defaultValue: 0
- };
-});
-
-module.exports = {
- up: (queryInterface, Sequelize) => {
- return queryInterface.createTable(
- 'Balances',
- {
- id: {
- allowNull: false,
- autoIncrement: true,
- primaryKey: true,
- type: Sequelize.INTEGER
- },
- user_id: {
- type: Sequelize.INTEGER,
- onDelete: 'CASCADE',
- allowNull: false,
- unique: true,
- references: {
- model: 'Users',
- key: 'id'
- }
- },
- created_at: {
- allowNull: false,
- type: Sequelize.DATE,
- defaultValue: Sequelize.literal('NOW()')
- },
- updated_at: {
- allowNull: false,
- type: Sequelize.DATE,
- defaultValue: Sequelize.literal('NOW()')
- }
- },
- {
- timestamps: true,
- underscored: true
- }
- );
- },
- down: (queryInterface, Sequelize) => queryInterface.dropTable('Balances')
-};
diff --git a/db/migrations/20170720075000-create-deposit.js b/db/migrations/20170720075000-create-deposit.js
deleted file mode 100644
index 8b93779259..0000000000
--- a/db/migrations/20170720075000-create-deposit.js
+++ /dev/null
@@ -1,60 +0,0 @@
-'use strict';
-
-module.exports = {
- up: (queryInterface, Sequelize) => {
- return queryInterface.createTable(
- 'Deposits',
- {
- id: {
- allowNull: false,
- autoIncrement: true,
- primaryKey: true,
- type: Sequelize.INTEGER
- },
- user_id: {
- type: Sequelize.INTEGER,
- onDelete: 'CASCADE',
- allowNull: false,
- references: {
- model: 'Users',
- key: 'id'
- }
- },
- address: {
- type: Sequelize.STRING,
- defaultValue: ''
- },
- transaction_id: {
- type: Sequelize.STRING,
- allowNull: false
- },
- status: {
- type: Sequelize.BOOLEAN,
- defaultValue: false
- },
- amount: {
- type: Sequelize.DOUBLE,
- allowNull: false
- },
- type: {
- type: Sequelize.STRING,
- allowNull: false
- },
- currency: {
- type: Sequelize.STRING,
- allowNull: false
- },
- created_at: {
- allowNull: false,
- type: Sequelize.DATE,
- defaultValue: Sequelize.literal('NOW()')
- }
- },
- {
- timestamps: true,
- underscored: true
- }
- );
- },
- down: (queryInterface, Sequelize) => queryInterface.dropTable('Deposits')
-};
\ No newline at end of file
diff --git a/db/migrations/20170801082800-add-maker-fee-trade.js b/db/migrations/20170801082800-add-maker-fee-trade.js
deleted file mode 100644
index 3b751df6bb..0000000000
--- a/db/migrations/20170801082800-add-maker-fee-trade.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-
-const TABLE = 'Trades';
-const COLUMN = 'maker_fee';
-
-module.exports = {
- up: (queryInterface, Sequelize) =>
- queryInterface.addColumn(TABLE, COLUMN, {
- type: Sequelize.FLOAT,
- defaultValue: 0
- }),
- down: (queryInterface, Sequelize) =>
- queryInterface.removeColumn(TABLE, COLUMN)
-};
diff --git a/db/migrations/20170801082900-add-trader-fee-trade.js b/db/migrations/20170801082900-add-trader-fee-trade.js
deleted file mode 100644
index 3f6bb78358..0000000000
--- a/db/migrations/20170801082900-add-trader-fee-trade.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-
-const TABLE = 'Trades';
-const COLUMN = 'taker_fee';
-
-module.exports = {
- up: (queryInterface, Sequelize) =>
- queryInterface.addColumn(TABLE, COLUMN, {
- type: Sequelize.FLOAT,
- defaultValue: 0
- }),
- down: (queryInterface, Sequelize) =>
- queryInterface.removeColumn(TABLE, COLUMN)
-};
\ No newline at end of file
diff --git a/db/migrations/20170808074600-change-size-order.js b/db/migrations/20170808074600-change-size-order.js
deleted file mode 100644
index 2c9f4734b1..0000000000
--- a/db/migrations/20170808074600-change-size-order.js
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-
-const TABLE = 'Orders';
-const COLUMN = 'size';
-
-module.exports = {
- up: (queryInterface, Sequelize) =>
- queryInterface.changeColumn(TABLE, COLUMN, {
- type: Sequelize.DOUBLE,
- defaultValue: 0,
- allowNull: false
- }),
- down: (queryInterface, Sequelize) =>
- queryInterface.changeColumn(TABLE, COLUMN, {
- type: Sequelize.BIGINT,
- defaultValue: 0,
- allowNull: false
- })
-};
\ No newline at end of file
diff --git a/db/migrations/20170808074900-change-size-trade.js b/db/migrations/20170808074900-change-size-trade.js
deleted file mode 100644
index a511a8d7bc..0000000000
--- a/db/migrations/20170808074900-change-size-trade.js
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-
-const TABLE = 'Trades';
-const COLUMN = 'size';
-
-module.exports = {
- up: (queryInterface, Sequelize) =>
- queryInterface.changeColumn(TABLE, COLUMN, {
- type: Sequelize.DOUBLE,
- defaultValue: 0,
- allowNull: false
- }),
- down: (queryInterface, Sequelize) =>
- queryInterface.changeColumn(TABLE, COLUMN, {
- type: Sequelize.BIGINT,
- defaultValue: 0,
- allowNull: false
- })
-};
\ No newline at end of file
diff --git a/db/migrations/20170828080000-add-symbol-trades.js b/db/migrations/20170828080000-add-symbol-trades.js
deleted file mode 100644
index 9249bc128d..0000000000
--- a/db/migrations/20170828080000-add-symbol-trades.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict';
-
-const TABLE = 'Trades';
-const COLUMN = 'symbol';
-
-module.exports = {
- up: (queryInterface, Sequelize) =>
- queryInterface.addColumn(TABLE, COLUMN, {
- type: Sequelize.STRING,
- defaultValue: 'btc',
- allowNull: false
- }),
- down: (queryInterface, Sequelize) =>
- queryInterface.removeColumn(TABLE, COLUMN)
-};
\ No newline at end of file
diff --git a/db/migrations/20170828080200-add-order_filled.js b/db/migrations/20170828080200-add-order_filled.js
deleted file mode 100644
index 98167a7ef8..0000000000
--- a/db/migrations/20170828080200-add-order_filled.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-
-const TABLE = 'Orders';
-const COLUMN = 'filled';
-
-module.exports = {
- up: (queryInterface, Sequelize) =>
- queryInterface.addColumn(TABLE, COLUMN, {
- type: Sequelize.DOUBLE,
- defaultValue: 0
- }),
- down: (queryInterface, Sequelize) =>
- queryInterface.removeColumn(TABLE, COLUMN)
-};
diff --git a/db/migrations/20171033154500-add-quick-trade.js b/db/migrations/20171033154500-add-quick-trade.js
deleted file mode 100644
index c07eb8960d..0000000000
--- a/db/migrations/20171033154500-add-quick-trade.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-
-const TABLE = 'Trades';
-const COLUMN = 'quick';
-
-module.exports = {
- up: (queryInterface, Sequelize) =>
- queryInterface.addColumn(TABLE, COLUMN, {
- type: Sequelize.BOOLEAN,
- defaultValue: false
- }),
- down: (queryInterface, Sequelize) =>
- queryInterface.removeColumn(TABLE, COLUMN)
-};
\ No newline at end of file
diff --git a/db/migrations/20171118145000-create-limits.js b/db/migrations/20171118145000-create-limits.js
deleted file mode 100644
index df61477da5..0000000000
--- a/db/migrations/20171118145000-create-limits.js
+++ /dev/null
@@ -1,66 +0,0 @@
-'use strict';
-
-const { CURRENCIES } = require('../../constants');
-const { DataTypes } = require('sequelize');
-const TABLE = 'Limits';
-
-const items = {};
-CURRENCIES.forEach(currency => {
- items[`${currency}_deposit_daily`] = {
- allowNull: false,
- type: DataTypes.DOUBLE,
- defaultValue: 0
- };
- items[`${currency}_withdraw_daily`] = {
- allowNull: false,
- type: DataTypes.DOUBLE,
- defaultValue: 0
- };
-});
-
-
-module.exports = {
- up: (queryInterface, Sequelize) => {
- return queryInterface.createTable(
- TABLE,
- {
- id: {
- allowNull: false,
- autoIncrement: true,
- primaryKey: true,
- type: Sequelize.INTEGER
- },
- verification_level: {
- allowNull: false,
- type: Sequelize.INTEGER
- },
- ... items,
- taker_fee: {
- allowNull: false,
- type: Sequelize.DOUBLE,
- defaultValue: 0
- },
- maker_fee: {
- allowNull: false,
- type: Sequelize.DOUBLE,
- defaultValue: 0
- },
- created_at: {
- type: Sequelize.DATE,
- defaultValue: Sequelize.literal('NOW()'),
- allowNull: false
- },
- updated_at: {
- type: Sequelize.DATE,
- defaultValue: Sequelize.literal('NOW()'),
- allowNull: false
- }
- },
- {
- timestamps: true,
- underscored: true
- }
- );
- },
- down: (queryInterface, Sequelize) => queryInterface.dropTable(TABLE)
-};
\ No newline at end of file
diff --git a/db/migrations/20171226121700-add-name_verified-user.js b/db/migrations/20171226121700-add-name_verified-user.js
deleted file mode 100644
index 4d08de1663..0000000000
--- a/db/migrations/20171226121700-add-name_verified-user.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-
-const TABLE = 'Users';
-const COLUMN = 'name_verified';
-
-module.exports = {
- up: (queryInterface, Sequelize) =>
- queryInterface.addColumn(TABLE, COLUMN, {
- type: Sequelize.BOOLEAN,
- defaultValue: false
- }),
- down: (queryInterface, Sequelize) =>
- queryInterface.removeColumn(TABLE, COLUMN)
-};
\ No newline at end of file
diff --git a/db/migrations/20180102073200-add-dismiss-deposit.js b/db/migrations/20180102073200-add-dismiss-deposit.js
deleted file mode 100644
index 8557c05d09..0000000000
--- a/db/migrations/20180102073200-add-dismiss-deposit.js
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-const TABLE = 'Deposits';
-const COLUMN = 'dismissed';
-
-module.exports = {
- up: (queryInterface, Sequelize) =>
- queryInterface.addColumn(TABLE, COLUMN, {
- type: Sequelize.BOOLEAN,
- defaultValue: false
- }),
- down: (queryInterface, Sequelize) =>
- queryInterface.removeColumn(TABLE, COLUMN)
-};
\ No newline at end of file
diff --git a/db/migrations/20180119182700-add-is_support-user.js b/db/migrations/20180119182700-add-is_support-user.js
deleted file mode 100644
index 3fde1df111..0000000000
--- a/db/migrations/20180119182700-add-is_support-user.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-
-const TABLE = 'Users';
-const COLUMN = 'is_support';
-
-module.exports = {
- up: (queryInterface, Sequelize) =>
- queryInterface.addColumn(TABLE, COLUMN, {
- type: Sequelize.BOOLEAN,
- defaultValue: false
- }),
- down: (queryInterface, Sequelize) =>
- queryInterface.removeColumn(TABLE, COLUMN)
-};
\ No newline at end of file
diff --git a/db/migrations/20180131100200-add-rejected-deposit.js b/db/migrations/20180131100200-add-rejected-deposit.js
deleted file mode 100644
index ba93fe2457..0000000000
--- a/db/migrations/20180131100200-add-rejected-deposit.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-
-const TABLE = 'Deposits';
-const COLUMN = 'rejected';
-
-module.exports = {
- up: (queryInterface, Sequelize) =>
- queryInterface.addColumn(TABLE, COLUMN, {
- type: Sequelize.BOOLEAN,
- defaultValue: false
- }),
- down: (queryInterface, Sequelize) =>
- queryInterface.removeColumn(TABLE, COLUMN)
-};
\ No newline at end of file
diff --git a/db/migrations/20180131100500-add-updated_at-deposit.js b/db/migrations/20180131100500-add-updated_at-deposit.js
deleted file mode 100644
index 85f656f776..0000000000
--- a/db/migrations/20180131100500-add-updated_at-deposit.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict';
-
-const TABLE = 'Deposits';
-const COLUMN = 'updated_at';
-
-module.exports = {
- up: (queryInterface, Sequelize) =>
- queryInterface.addColumn(TABLE, COLUMN, {
- allowNull: false,
- type: Sequelize.DATE,
- defaultValue: Sequelize.literal('NOW()')
- }),
- down: (queryInterface, Sequelize) =>
- queryInterface.removeColumn(TABLE, COLUMN)
-};
\ No newline at end of file
diff --git a/db/migrations/20180219101200-add-constraint-deposits.js b/db/migrations/20180219101200-add-constraint-deposits.js
deleted file mode 100644
index 8b39d2ad99..0000000000
--- a/db/migrations/20180219101200-add-constraint-deposits.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict';
-
-const TABLE = 'Deposits';
-const CONSTRAINT_NAME = 'unique_deposit';
-
-module.exports = {
- up: (queryInterface, Sequelize) =>
- queryInterface.sequelize.query(
- `ALTER TABLE "${TABLE}" ADD CONSTRAINT ${CONSTRAINT_NAME} UNIQUE (address, transaction_id, type);`
- ),
- down: (queryInterface, Sequelize) =>
- queryInterface.sequelize.query(
- `ALTER TABLE "${TABLE}" DROP CONSTRAINT ${CONSTRAINT_NAME};`
- )
-};
diff --git a/db/migrations/20180322182900-add-is_supervisor-user.js b/db/migrations/20180322182900-add-is_supervisor-user.js
deleted file mode 100644
index 172ac63287..0000000000
--- a/db/migrations/20180322182900-add-is_supervisor-user.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-
-const TABLE = 'Users';
-const COLUMN = 'is_supervisor';
-
-module.exports = {
- up: (queryInterface, Sequelize) =>
- queryInterface.addColumn(TABLE, COLUMN, {
- type: Sequelize.BOOLEAN,
- defaultValue: false
- }),
- down: (queryInterface, Sequelize) =>
- queryInterface.removeColumn(TABLE, COLUMN)
-};
\ No newline at end of file
diff --git a/db/migrations/20180605115715-add-maker_fees-pairs.js b/db/migrations/20180605115715-add-maker_fees-pairs.js
deleted file mode 100644
index 0e8bbaef3f..0000000000
--- a/db/migrations/20180605115715-add-maker_fees-pairs.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-
-const TABLE = 'Pairs';
-const COLUMN = 'maker_fees';
-
-module.exports = {
- up: (queryInterface, Sequelize) =>
- queryInterface.addColumn(TABLE, COLUMN, {
- allowNull: false,
- type: Sequelize.JSONB,
- defaultValue: {
- '1': 0.25,
- '2': 0.2,
- '3': 0.15,
- '4': 0.05,
- '5': 0,
- '6': 0
- }
- }),
- down: (queryInterface, Sequelize) =>
- queryInterface.removeColumn(TABLE, COLUMN)
-};
diff --git a/db/migrations/20180605115725-add-taker_fees-pairs.js b/db/migrations/20180605115725-add-taker_fees-pairs.js
deleted file mode 100644
index bd8110f8a4..0000000000
--- a/db/migrations/20180605115725-add-taker_fees-pairs.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict';
-
-const TABLE = 'Pairs';
-const COLUMN = 'taker_fees';
-
-module.exports = {
- up: (queryInterface, Sequelize) =>
- queryInterface.addColumn(TABLE, COLUMN, {
- allowNull: false,
- type: Sequelize.JSONB,
- defaultValue: { '1': 0.5, '2': 0.3, '3': 0.2, '4': 0.2, '5': 0, '6': 0 }
- }),
- down: (queryInterface, Sequelize) =>
- queryInterface.removeColumn(TABLE, COLUMN)
-};
diff --git a/db/migrations/20180708122942-change-trades-price-type.js b/db/migrations/20180708122942-change-trades-price-type.js
deleted file mode 100644
index cb95412571..0000000000
--- a/db/migrations/20180708122942-change-trades-price-type.js
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-
-const TABLE = 'Trades';
-const COLUMN = 'price';
-
-module.exports = {
- up: (queryInterface, Sequelize) =>
- queryInterface.sequelize.query(
- `ALTER TABLE public."${TABLE}" ALTER COLUMN price TYPE float8 USING price::float8;
- ALTER TABLE public."${TABLE}" ALTER COLUMN price SET NOT NULL;
- ALTER TABLE public."${TABLE}" ALTER COLUMN price DROP DEFAULT;`
- ),
- down: (queryInterface, Sequelize) =>
- queryInterface.sequelize.query(
- `ALTER TABLE public."${TABLE}" ALTER COLUMN price TYPE int4 USING price::int4;
- ALTER TABLE public."${TABLE}" ALTER COLUMN price SET NOT NULL;
- ALTER TABLE public."${TABLE}" ALTER COLUMN price DROP DEFAULT;`
- )
-};
\ No newline at end of file
diff --git a/db/migrations/20180708122949-change-orders-price-type.js b/db/migrations/20180708122949-change-orders-price-type.js
deleted file mode 100644
index 7f17a5b374..0000000000
--- a/db/migrations/20180708122949-change-orders-price-type.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-const TABLE = 'Orders';
-const COLUMN = 'price';
-
-module.exports = {
- up: (queryInterface, Sequelize) =>
- queryInterface.sequelize.query(
- `ALTER TABLE public."${TABLE}" ALTER COLUMN price TYPE float8 USING price::float8;
- ALTER TABLE public."${TABLE}" ALTER COLUMN price SET NOT NULL;
- ALTER TABLE public."${TABLE}" ALTER COLUMN price DROP DEFAULT;`
- ),
- down: (queryInterface, Sequelize) =>
- queryInterface.sequelize.query(
- `ALTER TABLE public."${TABLE}" ALTER COLUMN price TYPE int4 USING price::int4;
- ALTER TABLE public."${TABLE}" ALTER COLUMN price SET NOT NULL;
- ALTER TABLE public."${TABLE}" ALTER COLUMN price DROP DEFAULT;`
- )
-};
\ No newline at end of file
diff --git a/db/migrations/20190105175738-add-kyc-role.js b/db/migrations/20190105175738-add-kyc-role.js
deleted file mode 100644
index 3ef7f7ed17..0000000000
--- a/db/migrations/20190105175738-add-kyc-role.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-
-const TABLE = 'Users';
-const COLUMN = 'is_kyc';
-
-module.exports = {
- up: (queryInterface, Sequelize) => queryInterface.addColumn(
- TABLE,
- COLUMN,
- {
- type: Sequelize.BOOLEAN,
- defaultValue: false,
- }
- ),
- down: (queryInterface) => queryInterface.removeColumn(TABLE, COLUMN),
-};
diff --git a/db/migrations/20190609152258-add-pair-activation.js b/db/migrations/20190609152258-add-pair-activation.js
deleted file mode 100644
index f8c3655f23..0000000000
--- a/db/migrations/20190609152258-add-pair-activation.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-
-const TABLE = 'Pairs';
-const COLUMN = 'active';
-
-module.exports = {
- up: (queryInterface, Sequelize) => {
- return queryInterface
- .addColumn(TABLE, COLUMN, {
- type: Sequelize.BOOLEAN,
- allowNull: false,
- defaultValue: true
- });
- },
- down: (queryInterface) => {
- return queryInterface.removeColumn(TABLE, COLUMN);
- }
-};
\ No newline at end of file
diff --git a/db/migrations/20190609152543-create-coin.js b/db/migrations/20190609152543-create-coin.js
deleted file mode 100644
index db11e10a02..0000000000
--- a/db/migrations/20190609152543-create-coin.js
+++ /dev/null
@@ -1,73 +0,0 @@
-'use strict';
-
-module.exports = {
- up: (queryInterface, Sequelize) => {
- return queryInterface.createTable(
- 'Coins',
- {
- id: {
- allowNull: false,
- autoIncrement: true,
- primaryKey: true,
- type: Sequelize.INTEGER
- },
- fullname: {
- type: Sequelize.STRING,
- allowNull: false
- },
- symbol: {
- type: Sequelize.STRING,
- allowNull: false,
- unique: true
- },
- active: {
- type: Sequelize.BOOLEAN,
- allowNull: false,
- defaultValue: false
- },
- allow_deposit: {
- type: Sequelize.BOOLEAN,
- allowNull: false,
- defaultValue: false,
- },
- allow_withdrawal: {
- type: Sequelize.BOOLEAN,
- allowNull: false,
- defaultValue: false,
- },
- withdrawal_fee: {
- type: Sequelize.DOUBLE,
- defaultValue: 0,
- allowNull: false
- },
- min: {
- type: Sequelize.DOUBLE,
- allowNull: false
- },
- max: {
- type: Sequelize.DOUBLE,
- allowNull: false
- },
- increment_unit: {
- type: Sequelize.DOUBLE,
- allowNull: false
- },
- created_at: {
- allowNull: false,
- type: Sequelize.DATE,
- defaultValue: Sequelize.literal('NOW()')
- },
- updated_at: {
- allowNull: false,
- type: Sequelize.DATE,
- defaultValue: Sequelize.literal('NOW()')
- }
- },
- {
- timestamps: true,
- underscored: true
- }
- );
- },
- down: (queryInterface) => queryInterface.dropTable('Coins')
-};
\ No newline at end of file
diff --git a/db/migrations/20190626022621-add-pair-fields.js b/db/migrations/20190626022621-add-pair-fields.js
deleted file mode 100644
index e75d08a7b4..0000000000
--- a/db/migrations/20190626022621-add-pair-fields.js
+++ /dev/null
@@ -1,57 +0,0 @@
-'use strict';
-
-const TABLE = 'Pairs';
-const COLUMN1 = 'min_size';
-const COLUMN2 = 'max_size';
-const COLUMN3 = 'min_price';
-const COLUMN4 = 'max_price';
-const COLUMN5 = 'increment_size';
-const COLUMN6 = 'increment_price';
-
-module.exports = {
- up: (queryInterface, Sequelize) => {
- return queryInterface
- .addColumn(TABLE, COLUMN1, {
- type: Sequelize.DOUBLE,
- allowNull: true
- })
- .then(() => {
- return queryInterface.addColumn(TABLE, COLUMN2, {
- type: Sequelize.DOUBLE,
- allowNull: true
- });
- })
- .then(() => {
- return queryInterface.addColumn(TABLE, COLUMN3, {
- type: Sequelize.DOUBLE,
- allowNull: true
- });
- })
- .then(() => {
- return queryInterface.addColumn(TABLE, COLUMN4, {
- type: Sequelize.DOUBLE,
- allowNull: true
- });
- })
- .then(() => {
- return queryInterface.addColumn(TABLE, COLUMN5, {
- type: Sequelize.DOUBLE,
- allowNull: true
- });
- })
- .then(() => {
- return queryInterface.addColumn(TABLE, COLUMN6, {
- type: Sequelize.DOUBLE,
- allowNull: true
- });
- });
- },
- down: (queryInterface) => {
- return queryInterface.removeColumn(TABLE, COLUMN1)
- .then(() => queryInterface.removeColumn(TABLE, COLUMN2))
- .then(() => queryInterface.removeColumn(TABLE, COLUMN3))
- .then(() => queryInterface.removeColumn(TABLE, COLUMN4))
- .then(() => queryInterface.removeColumn(TABLE, COLUMN5))
- .then(() => queryInterface.removeColumn(TABLE, COLUMN6));
- }
-};
\ No newline at end of file
diff --git a/db/migrations/20190703084759-add-deposit-withdrawal-limit-coin.js b/db/migrations/20190703084759-add-deposit-withdrawal-limit-coin.js
deleted file mode 100644
index c9db5f033e..0000000000
--- a/db/migrations/20190703084759-add-deposit-withdrawal-limit-coin.js
+++ /dev/null
@@ -1,28 +0,0 @@
-'use strict';
-
-const TABLE = 'Coins';
-const COLUMN1 = 'deposit_limits';
-const COLUMN2 = 'withdrawal_limits';
-
-module.exports = {
- up: (queryInterface, Sequelize) => {
- return queryInterface
- .addColumn(TABLE, COLUMN1, {
- type: Sequelize.JSONB,
- allowNull: false,
- defaultValue: {}
- })
- .then(() => {
- return queryInterface.addColumn(TABLE, COLUMN2, {
- type: Sequelize.JSONB,
- allowNull: false,
- defaultValue: {}
- });
- });
- },
- down: (queryInterface) => {
- return queryInterface
- .removeColumn(TABLE, COLUMN1)
- .then(() => queryInterface.removeColumn(TABLE, COLUMN2));
- }
-};
\ No newline at end of file
diff --git a/db/migrations/20190703084942-remove-limits.js b/db/migrations/20190703084942-remove-limits.js
deleted file mode 100644
index 57fde7f38e..0000000000
--- a/db/migrations/20190703084942-remove-limits.js
+++ /dev/null
@@ -1,66 +0,0 @@
-'use strict';
-
-const { CURRENCIES } = require('../../constants');
-const { DataTypes } = require('sequelize');
-const TABLE = 'Limits';
-
-const items = {};
-CURRENCIES.forEach(currency => {
- items[`${currency}_deposit_daily`] = {
- allowNull: false,
- type: DataTypes.DOUBLE,
- defaultValue: 0
- };
- items[`${currency}_withdraw_daily`] = {
- allowNull: false,
- type: DataTypes.DOUBLE,
- defaultValue: 0
- };
-});
-
-
-module.exports = {
- up: (queryInterface) => queryInterface.dropTable(TABLE),
- down: (queryInterface, Sequelize) => {
- return queryInterface.createTable(
- TABLE,
- {
- id: {
- allowNull: false,
- autoIncrement: true,
- primaryKey: true,
- type: Sequelize.INTEGER
- },
- verification_level: {
- allowNull: false,
- type: Sequelize.INTEGER
- },
- ... items,
- taker_fee: {
- allowNull: false,
- type: Sequelize.DOUBLE,
- defaultValue: 0
- },
- maker_fee: {
- allowNull: false,
- type: Sequelize.DOUBLE,
- defaultValue: 0
- },
- created_at: {
- type: Sequelize.DATE,
- defaultValue: Sequelize.literal('NOW()'),
- allowNull: false
- },
- updated_at: {
- type: Sequelize.DATE,
- defaultValue: Sequelize.literal('NOW()'),
- allowNull: false
- }
- },
- {
- timestamps: true,
- underscored: true
- }
- );
- }
-};
\ No newline at end of file
diff --git a/db/migrations/20190830144536-remove-affiliation-percentage.js b/db/migrations/20190830144536-remove-affiliation-percentage.js
deleted file mode 100644
index 2dea8c758c..0000000000
--- a/db/migrations/20190830144536-remove-affiliation-percentage.js
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-
-const TABLE = 'Affiliations';
-const COLUMN = 'percentage';
-
-module.exports = {
- up: (queryInterface) => {
- return queryInterface
- .removeColumn(TABLE, COLUMN);
- },
- down: (queryInterface, Sequelize) => {
- return queryInterface
- .addColumn(TABLE, COLUMN, {
- type: Sequelize.INTEGER,
- allowNull: false,
- defaultValue: 10
- });
- }
-};
\ No newline at end of file
diff --git a/db/migrations/20190928151833-add-status-url.js b/db/migrations/20190928151833-add-status-url.js
deleted file mode 100644
index b77c9922a7..0000000000
--- a/db/migrations/20190928151833-add-status-url.js
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-
-const TABLE = 'Statuses';
-const COLUMN = 'url';
-
-module.exports = {
- up: (queryInterface, Sequelize) => {
- return queryInterface
- .addColumn(TABLE, COLUMN, {
- type: Sequelize.STRING,
- allowNull: true,
- defaultValue: 'https://hollaex.com'
- });
- },
- down: (queryInterface) => {
- return queryInterface
- .removeColumn(TABLE, COLUMN);
- }
-};
\ No newline at end of file
diff --git a/db/migrations/20200206091938-add-status-constants.js b/db/migrations/20200206091938-add-status-constants.js
deleted file mode 100644
index 853db1115f..0000000000
--- a/db/migrations/20200206091938-add-status-constants.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-
-const TABLE = 'Statuses';
-const COLUMN = 'constants';
-
-module.exports = {
- up: (queryInterface, Sequelize) => {
- return queryInterface
- .addColumn(TABLE, COLUMN, {
- type: Sequelize.JSONB,
- defaultValue: {},
- });
- },
- down: (queryInterface) => {
- return queryInterface
- .removeColumn(TABLE, COLUMN);
- }
-};
\ No newline at end of file
diff --git a/db/migrations/20200303044931-add-tech-role.js b/db/migrations/20200303044931-add-tech-role.js
deleted file mode 100644
index f9d2f2d28d..0000000000
--- a/db/migrations/20200303044931-add-tech-role.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-
-const TABLE = 'Users';
-const COLUMN = 'is_tech';
-
-module.exports = {
- up: (queryInterface, Sequelize) => queryInterface.addColumn(
- TABLE,
- COLUMN,
- {
- type: Sequelize.BOOLEAN,
- defaultValue: false,
- }
- ),
- down: (queryInterface) => queryInterface.removeColumn(TABLE, COLUMN),
-};
diff --git a/db/migrations/20200402042047-add-deposits-flags.js b/db/migrations/20200402042047-add-deposits-flags.js
deleted file mode 100644
index d8cfbf02a2..0000000000
--- a/db/migrations/20200402042047-add-deposits-flags.js
+++ /dev/null
@@ -1,25 +0,0 @@
-'use strict';
-
-const TABLE = 'Deposits';
-const COLUMN1 = 'processing';
-const COLUMN2 = 'waiting';
-
-module.exports = {
- up: (queryInterface, Sequelize) => {
- return queryInterface
- .addColumn(TABLE, COLUMN1, {
- type: Sequelize.BOOLEAN,
- defaultValue: false
- })
- .then(() => {
- return queryInterface.addColumn(TABLE, COLUMN2, {
- type: Sequelize.BOOLEAN,
- defaultValue: false
- });
- });
- },
- down: (queryInterface) => {
- return queryInterface.removeColumn(TABLE, COLUMN1)
- .then(() => queryInterface.removeColumn(TABLE, COLUMN2));
- }
-};
\ No newline at end of file
diff --git a/db/migrations/20200412021629-add-user-customfee.js b/db/migrations/20200412021629-add-user-customfee.js
deleted file mode 100644
index f9a8064566..0000000000
--- a/db/migrations/20200412021629-add-user-customfee.js
+++ /dev/null
@@ -1,16 +0,0 @@
-'use strict';
-
-const TABLE = 'Users';
-const COLUMN = 'custom_fee';
-
-module.exports = {
- up: (queryInterface, Sequelize) => queryInterface.addColumn(
- TABLE,
- COLUMN,
- {
- type: Sequelize.BOOLEAN,
- defaultValue: false,
- }
- ),
- down: (queryInterface) => queryInterface.removeColumn(TABLE, COLUMN),
-};
diff --git a/db/migrations/20200416041535-create-fees.js b/db/migrations/20200416041535-create-fees.js
deleted file mode 100644
index 0dbd72aad4..0000000000
--- a/db/migrations/20200416041535-create-fees.js
+++ /dev/null
@@ -1,48 +0,0 @@
-'use strict';
-
-module.exports = {
- up: (queryInterface, Sequelize) => {
- return queryInterface.createTable(
- 'Fees',
- {
- id: {
- allowNull: false,
- autoIncrement: true,
- primaryKey: true,
- type: Sequelize.INTEGER
- },
- user_id: {
- type: Sequelize.INTEGER,
- onDelete: 'CASCADE',
- allowNull: false,
- references: {
- model: 'Users',
- key: 'id'
- }
- },
- transaction_id: {
- type: Sequelize.STRING,
- allowNull: false
- },
- amount: {
- type: Sequelize.DOUBLE,
- allowNull: false
- },
- currency: {
- type: Sequelize.STRING,
- allowNull: false
- },
- timestamp: {
- type: Sequelize.DATE,
- allowNull: false,
- defaultValue: Sequelize.literal('NOW()')
- }
- },
- {
- timestamps: true,
- underscored: true
- }
- );
- },
- down: (queryInterface) => queryInterface.dropTable('Fees')
-};
\ No newline at end of file
diff --git a/db/migrations/20200416064920-insert-first-fee.js b/db/migrations/20200416064920-insert-first-fee.js
deleted file mode 100644
index bef40cb9bf..0000000000
--- a/db/migrations/20200416064920-insert-first-fee.js
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-
-const TABLE = 'Fees';
-
-module.exports = {
- up: (queryInterface) => {
- return queryInterface.sequelize.query(
- `
- INSERT INTO "${TABLE}" (user_id, transaction_id, amount, currency)
- Select 1, 'init', 0, 'init' Where exists (SELECT * FROM "Users")
- ;`
- );
- },
- down: () => {
- return new Promise((resolve) => {
- resolve();
- });
- }
-};
\ No newline at end of file
diff --git a/db/migrations/20200518080849-add-user-affiliation_rate-discount.js b/db/migrations/20200518080849-add-user-affiliation_rate-discount.js
deleted file mode 100644
index da1656a5bb..0000000000
--- a/db/migrations/20200518080849-add-user-affiliation_rate-discount.js
+++ /dev/null
@@ -1,32 +0,0 @@
-'use strict';
-
-const TABLE = 'Users';
-const COLUMN1 = 'affiliation_rate';
-const COLUMN2 = 'discount';
-
-module.exports = {
- up: (queryInterface, Sequelize) => {
- return queryInterface.addColumn(
- TABLE,
- COLUMN1,
- {
- type: Sequelize.DOUBLE,
- defaultValue: 0,
- })
- .then(() => {
- return queryInterface.addColumn(
- TABLE,
- COLUMN2,
- {
- type: Sequelize.DOUBLE,
- defaultValue: 0,
- });
- });
- },
- down: (queryInterface) => {
- return queryInterface.removeColumn(TABLE, COLUMN1)
- .then(() => {
- return queryInterface.removeColumn(TABLE, COLUMN2);
- });
- },
-};
diff --git a/db/models/announcement.js b/db/models/announcement.js
deleted file mode 100644
index 245b3ca7f7..0000000000
--- a/db/models/announcement.js
+++ /dev/null
@@ -1,40 +0,0 @@
-module.exports = function(sequelize, DataTypes) {
- const Announcement = sequelize.define(
- 'Announcement',
- {
- id: {
- allowNull: false,
- autoIncrement: true,
- primaryKey: true,
- type: DataTypes.INTEGER
- },
- created_by: {
- type: DataTypes.INTEGER,
- onDelete: 'CASCADE',
- allowNull: false,
- references: {
- model: 'Users',
- key: 'id'
- }
- },
- title: {
- type: DataTypes.STRING,
- allowNull: false
- },
- message: {
- type: DataTypes.TEXT,
- allowNull: false
- },
- type: {
- type: DataTypes.STRING,
- allowNull: false,
- defaultValue: 'info'
- }
- },
- {
- timestamps: true,
- underscored: true
- }
- );
- return Announcement;
-};
diff --git a/db/models/balance.js b/db/models/balance.js
deleted file mode 100644
index 43193cad2d..0000000000
--- a/db/models/balance.js
+++ /dev/null
@@ -1,21 +0,0 @@
-'use strict';
-const { BALANCE_KEYS } = require('../../constants');
-const { generateBalanceFields } = require('../../utils');
-
-module.exports = function(sequelize, DataTypes) {
- const Balance = sequelize.define(
- 'Balance',
- generateBalanceFields(DataTypes, BALANCE_KEYS),
- {
- underscored: true
- }
- );
-
- Balance.associate = (models) => {
- Balance.belongsTo(models.User, {
- foreignKey: 'user_id'
- });
- };
-
- return Balance;
-};
diff --git a/db/models/coin.js b/db/models/coin.js
deleted file mode 100644
index fefbab6836..0000000000
--- a/db/models/coin.js
+++ /dev/null
@@ -1,80 +0,0 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
- const Coin = sequelize.define(
- 'Coin',
- {
- id: {
- allowNull: false,
- autoIncrement: true,
- primaryKey: true,
- type: DataTypes.INTEGER
- },
- fullname: {
- type: DataTypes.STRING,
- allowNull: false
- },
- symbol: {
- type: DataTypes.STRING,
- allowNull: false
- },
- active: {
- type: DataTypes.BOOLEAN,
- allowNull: false,
- defaultValue: false
- },
- allow_deposit: {
- type: DataTypes.BOOLEAN,
- allowNull: false,
- defaultValue: false
- },
- allow_withdrawal: {
- type: DataTypes.BOOLEAN,
- allowNull: false,
- defaultValue: false
- },
- withdrawal_fee: {
- type: DataTypes.DOUBLE,
- defaultValue: 0,
- allowNull: false
- },
- min: {
- type: DataTypes.DOUBLE,
- allowNull: false
- },
- max: {
- type: DataTypes.DOUBLE,
- allowNull: false
- },
- increment_unit: {
- type: DataTypes.DOUBLE,
- allowNull: false
- },
- deposit_limits: {
- type: DataTypes.JSONB,
- allowNull: false,
- defaultValue: {}
- },
- withdrawal_limits: {
- type: DataTypes.JSONB,
- allowNull: false,
- defaultValue: {}
- },
- created_at: {
- allowNull: false,
- type: DataTypes.DATE,
- defaultValue: sequelize.literal('NOW()')
- },
- updated_at: {
- allowNull: false,
- type: DataTypes.DATE,
- defaultValue: sequelize.literal('NOW()')
- }
- },
- {
- timestamps: true,
- underscored: true
- }
- );
- return Coin;
-};
diff --git a/db/models/deposit.js b/db/models/deposit.js
deleted file mode 100644
index 5d357c2d94..0000000000
--- a/db/models/deposit.js
+++ /dev/null
@@ -1,69 +0,0 @@
-'use strict';
-const { CURRENCIES } = require('../../constants');
-
-module.exports = function(sequelize, DataTypes) {
- const Deposit = sequelize.define(
- 'Deposit',
- {
- amount: {
- type: DataTypes.DOUBLE,
- allowNull: false
- },
- fee: {
- type: DataTypes.DOUBLE,
- defaultValue: 0
- },
- address: {
- type: DataTypes.STRING,
- defaultValue: ''
- },
- transaction_id: {
- type: DataTypes.STRING,
- allowNull: false
- },
- status: {
- type: DataTypes.BOOLEAN,
- defaultValue: false
- },
- dismissed: {
- type: DataTypes.BOOLEAN,
- defaultValue: false
- },
- rejected: {
- type: DataTypes.BOOLEAN,
- defaultValue: false
- },
- processing: {
- type: DataTypes.BOOLEAN,
- defaultValue: false
- },
- waiting: {
- type: DataTypes.BOOLEAN,
- defaultValue: false
- },
- description: {
- type: DataTypes.STRING,
- defaultValue: ''
- },
- type: {
- type: DataTypes.ENUM('deposit', 'withdrawal'),
- allowNull: false
- },
- currency: {
- type: DataTypes.ENUM(...CURRENCIES),
- allowNull: false
- }
- },
- {
- underscored: true
- }
- );
-
- Deposit.associate = (models) => {
- Deposit.belongsTo(models.User, {
- foreignKey: 'user_id'
- });
- };
-
- return Deposit;
-};
diff --git a/db/models/fee.js b/db/models/fee.js
deleted file mode 100644
index 7eaf014474..0000000000
--- a/db/models/fee.js
+++ /dev/null
@@ -1,39 +0,0 @@
-'use strict';
-
-const { CURRENCIES } = require('../../constants');
-
-module.exports = function(sequelize, DataTypes) {
- const Fee = sequelize.define(
- 'Fee',
- {
- transaction_id: {
- type: DataTypes.STRING,
- allowNull: false
- },
- amount: {
- type: DataTypes.DOUBLE,
- allowNull: false
- },
- currency: {
- type: DataTypes.ENUM(...CURRENCIES),
- allowNull: false
- },
- timestamp: {
- type: DataTypes.DATE,
- defaultValue: DataTypes.NOW
- }
- },
- {
- timestamps: false,
- underscored: true
- }
- );
-
- Fee.associate = (models) => {
- Fee.belongsTo(models.User, {
- foreignKey: 'user_id'
- });
- };
-
- return Fee;
-};
diff --git a/db/models/order.js b/db/models/order.js
deleted file mode 100644
index f7f32d8a57..0000000000
--- a/db/models/order.js
+++ /dev/null
@@ -1,51 +0,0 @@
-'use strict';
-module.exports = function(sequelize, DataTypes) {
- const Order = sequelize.define(
- 'Order',
- {
- id: {
- type: DataTypes.UUID,
- allowNull: false,
- unique: true,
- primaryKey: true
- },
- side: {
- type: DataTypes.ENUM('buy', 'sell'),
- allowNull: false
- },
- symbol: {
- type: DataTypes.STRING,
- allowNull: false
- },
- type: {
- type: DataTypes.ENUM('market', 'limit'),
- allowNull: false
- },
- size: {
- type: DataTypes.DOUBLE,
- allowNull: false
- },
- filled: {
- type: DataTypes.DOUBLE,
- defaultValue: 0
- },
- price: {
- type: DataTypes.DOUBLE,
- allowNull: false
- }
- },
- {
- underscored: true
- }
- );
-
- Order.associate = (models) => {
- Order.belongsTo(models.User, {
- onDelete: 'CASCADE',
- foreignKey: 'created_by',
- targetKey: 'id'
- });
- };
-
- return Order;
-};
diff --git a/db/models/pair.js b/db/models/pair.js
deleted file mode 100644
index 4ea0f8326c..0000000000
--- a/db/models/pair.js
+++ /dev/null
@@ -1,68 +0,0 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
- const Pair = sequelize.define(
- 'Pair',
- {
- name: {
- type: DataTypes.STRING,
- unique: true,
- allowNull: false
- },
- pair_base: {
- type: DataTypes.STRING,
- allowNull: false
- },
- pair_2: {
- type: DataTypes.STRING,
- allowNull: false
- },
- taker_fees: {
- type: DataTypes.JSONB,
- allowNull: false,
- defaultValue: {}
- },
- maker_fees: {
- type: DataTypes.JSONB,
- allowNull: false,
- defaultValue: {}
- },
- min_size: {
- type: DataTypes.DOUBLE,
- allowNull: false
- },
- max_size: {
- type: DataTypes.DOUBLE,
- allowNull: false
- },
- min_price: {
- type: DataTypes.DOUBLE,
- allowNull: false
- },
- max_price: {
- type: DataTypes.DOUBLE,
- allowNull: false
- },
- increment_size: {
- type: DataTypes.DOUBLE,
- allowNull: false
- },
- increment_price: {
- type: DataTypes.DOUBLE,
- allowNull: false
- },
- active: {
- type: DataTypes.BOOLEAN,
- allowNull: false,
- defaultValue: true
- }
- },
- {
- underscored: true
- }
- );
-
- Pair.associate = (models) => {};
-
- return Pair;
-};
diff --git a/db/models/trade.js b/db/models/trade.js
deleted file mode 100644
index df8b3b17c5..0000000000
--- a/db/models/trade.js
+++ /dev/null
@@ -1,56 +0,0 @@
-'use strict';
-module.exports = function(sequelize, DataTypes) {
- const Trade = sequelize.define(
- 'Trade',
- {
- side: {
- type: DataTypes.ENUM('buy', 'sell'),
- allowNull: false
- },
- symbol: {
- type: DataTypes.STRING,
- allowNull: false
- },
- size: {
- type: DataTypes.DOUBLE,
- allowNull: false
- },
- price: {
- type: DataTypes.DOUBLE,
- allowNull: false
- },
- maker_fee: {
- type: DataTypes.FLOAT,
- defaultValue: 0
- },
- taker_fee: {
- type: DataTypes.FLOAT,
- defaultValue: 0
- },
- timestamp: {
- defaultValue: DataTypes.NOW,
- allowNull: false,
- type: DataTypes.DATE
- },
- quick: {
- type: DataTypes.BOOLEAN,
- defaultValue: false
- }
- },
- {
- timestamps: false,
- underscored: true
- }
- );
-
- Trade.associate = (models) => {
- Trade.belongsTo(models.User, {
- foreignKey: 'maker_id'
- });
- Trade.belongsTo(models.User, {
- foreignKey: 'taker_id'
- });
- };
-
- return Trade;
-};
diff --git a/db/seeders/20171103163000-add-user.js b/db/seeders/20171103163000-add-user.js
deleted file mode 100644
index f2a3ee157d..0000000000
--- a/db/seeders/20171103163000-add-user.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-
-let {
- ACCOUNTS
-} = require('../../constants');
-const { generateUserObject } = require('../seedsHelper');
-const { uniqBy, remove } = require('lodash');
-
-ACCOUNTS = remove(ACCOUNTS, (account) => {
- return !!account.email;
-});
-ACCOUNTS = uniqBy(ACCOUNTS, 'email');
-
-const data = ACCOUNTS.map(generateUserObject);
-
-const TABLE = 'Users';
-
-module.exports = {
- up: (queryInterface) => {
- return queryInterface
- .bulkInsert(TABLE, data, {});
- },
- down: (queryInterface) => {
- return queryInterface.bulkDelete(TABLE);
- }
-};
diff --git a/db/seeders/20190825120350-add-status.js b/db/seeders/20190825120350-add-status.js
deleted file mode 100644
index d16743cd9f..0000000000
--- a/db/seeders/20190825120350-add-status.js
+++ /dev/null
@@ -1,157 +0,0 @@
-'use strict';
-
-const {
- API_NAME,
- API_HOST,
- LOGO_PATH,
- LOGO_BLACK_PATH,
- EMAILS_TIMEZONE,
- VALID_LANGUAGES,
- NEW_USER_DEFAULT_LANGUAGE,
- SENDER_EMAIL,
- DEFAULT_THEME,
- NEW_USER_IS_ACTIVATED,
- SMTP_SERVER,
- SMTP_PORT,
- SMTP_USER,
- SMTP_PASSWORD,
- PLUGINS,
- SEND_EMAIL_TO_SUPPORT,
- ALLOWED_DOMAINS,
- ID_DOCS_BUCKET,
- VAULT_NAME,
- CAPTCHA_SECRET_KEY,
- S3_WRITE_ACCESSKEYID,
- S3_WRITE_SECRETACCESSKEY,
- S3_READ_ACCESSKEYID,
- S3_READ_SECRETACCESSKEY,
- SNS_ACCESSKEYID,
- SNS_REGION,
- SNS_SECRETACCESSKEY,
- VAULT_KEY,
- VAULT_SECRET,
- ZENDESK_HOST,
- ZENDESK_KEY,
- FRESHDESK_HOST,
- FRESHDESK_KEY,
- FRESHDESK_AUTH,
- ADMIN_EMAIL,
- USER_LEVEL_NUMBER,
- CAPTCHA_SITE_KEY,
- ADMIN_WHITELIST_IP
-} = process.env;
-
-const TABLE = 'Statuses';
-const status = [{
- name: API_NAME || '',
- initialized: true,
- constants: JSON.stringify({
- api_name: API_NAME || '',
- description: '',
- color: {},
- title: '',
- links: {
- twitter: '',
- instagram: '',
- telegram: '',
- facebook: '',
- linkedin: '',
- github: '',
- contact: '',
- helpdesk: '',
- terms: '',
- privacy: '',
- api: API_HOST || '',
- whitepaper: '',
- website: '',
- information: '',
- },
- logo_path: LOGO_PATH,
- logo_black_path: LOGO_BLACK_PATH,
- valid_languages: VALID_LANGUAGES || (NEW_USER_DEFAULT_LANGUAGE ? NEW_USER_DEFAULT_LANGUAGE.split(',') : 'en'),
- user_level_number: USER_LEVEL_NUMBER || 4,
- new_user_is_activated: (NEW_USER_IS_ACTIVATED && NEW_USER_IS_ACTIVATED === 'true') || false,
- broker_enabled: true,
- captcha: {
- site_key: CAPTCHA_SITE_KEY
- },
- accounts: {
- admin: ADMIN_EMAIL || ''
- },
- defaults: {
- language: NEW_USER_DEFAULT_LANGUAGE || 'en',
- theme: DEFAULT_THEME || 'white'
- },
- emails: {
- timezone: EMAILS_TIMEZONE || '',
- send_email_to_support: (SEND_EMAIL_TO_SUPPORT && SEND_EMAIL_TO_SUPPORT === 'true') || false,
- sender: SENDER_EMAIL || ''
- },
- plugins: {
- enabled: PLUGINS || '',
- configuration: {}
- },
- secrets: {
- allowed_domains: ALLOWED_DOMAINS ? ALLOWED_DOMAINS.split(',') : [],
- admin_whitelist: ADMIN_WHITELIST_IP ? ADMIN_WHITELIST_IP.split(',') : [],
- broker: {
- quick_trade_rate: 0.03,
- quick_trade_expiration_time: 20,
- trade_master_account_id: 2
- },
- security: {
- token_time: '24h',
- withdrawal_token_expiry: 300000
- },
- captcha: {
- secret_key: CAPTCHA_SECRET_KEY
- },
- smtp: {
- server: SMTP_SERVER || '',
- port: SMTP_PORT || 587,
- user: SMTP_USER,
- password: SMTP_PASSWORD
- },
- vault: {
- name: VAULT_NAME || '',
- key: VAULT_KEY,
- secret: VAULT_SECRET,
- connected_coins: []
- },
- plugins: {
- s3: {
- id_docs_bucket: ID_DOCS_BUCKET || '',
- key: {
- write: S3_WRITE_ACCESSKEYID || '',
- read: S3_READ_ACCESSKEYID || ''
- },
- secret: {
- write: S3_WRITE_SECRETACCESSKEY,
- read: S3_READ_SECRETACCESSKEY
- }
- },
- sns: {
- region: SNS_REGION || '',
- key: SNS_ACCESSKEYID || '',
- secret: SNS_SECRETACCESSKEY || ''
- },
- freshdesk: {
- host: FRESHDESK_HOST || '',
- key: FRESHDESK_KEY || '',
- auth: FRESHDESK_AUTH || ''
- },
- zendesk: {
- host: ZENDESK_HOST || '',
- key: ZENDESK_KEY || ''
- }
- }
- }
- })
-}];
-
-module.exports = {
- up: (queryInterface) => queryInterface.bulkInsert(TABLE, status, {}),
- down: (queryInterface) => {
- return queryInterface.bulkDelete(TABLE);
- }
-};
\ No newline at end of file
diff --git a/db/seeders/20200418102924-add-initial-fee.js b/db/seeders/20200418102924-add-initial-fee.js
deleted file mode 100644
index aa8bf82569..0000000000
--- a/db/seeders/20200418102924-add-initial-fee.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-const TABLE = 'Fees';
-
-const data = [{
- user_id: 1,
- transaction_id: 'init',
- amount: 0,
- currency: 'init'
-}];
-
-module.exports = {
- up: (queryInterface) => {
- return queryInterface
- .bulkInsert(TABLE, data, {});
- },
- down: (queryInterface) => {
- return queryInterface.bulkDelete(TABLE);
- }
-};
diff --git a/install.sh b/install.sh
index 75633a9ec6..d69dc18ea7 100644
--- a/install.sh
+++ b/install.sh
@@ -1,7 +1,12 @@
#!/bin/bash
+# Parameter support to specify version of the CLI to install.
+export HOLLAEX_INSTALLER_VERSION_TARGET=${1:-"2.0.0"}
+
echo "Pulling HollaEx CLI from Github..."
-curl -L https://raw.githubusercontent.com/bitholla/hollaex-cli/master/install.sh | bash
+curl -s https://raw.githubusercontent.com/bitholla/hollaex-cli/master/install.sh > cli_installer.sh && \
+ bash cli_installer.sh ${HOLLAEX_INSTALLER_VERSION_TARGET} \
+ rm cli_installer.sh
# Dependencies installer for Debian (Ubuntu) based Linux.
if command apt-get -v > /dev/null 2>&1; then
@@ -210,6 +215,9 @@ elif command yum --version > /dev/null 2>&1; then
fi
+ systemctl start docker
+ systemctl enable docker
+
else
printf "\n\033[91mFailed to install Docker.\033[39m\n"
diff --git a/package-lock.json b/package-lock.json
deleted file mode 100644
index 48e341a095..0000000000
--- a/package-lock.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "lockfileVersion": 1
-}
diff --git a/plugins/README.md b/plugins/README.md
deleted file mode 100644
index e9ebef1529..0000000000
--- a/plugins/README.md
+++ /dev/null
@@ -1 +0,0 @@
-# Plugins for HollaEx Kit
\ No newline at end of file
diff --git a/plugins/announcement/helpers.js b/plugins/announcement/helpers.js
deleted file mode 100644
index 0ac1f2b79c..0000000000
--- a/plugins/announcement/helpers.js
+++ /dev/null
@@ -1,47 +0,0 @@
-'use strict';
-
-const { Announcement } = require('../../db/models');
-const { convertSequelizeCountAndRows } = require('../helpers/common');
-
-const postAnnouncement = (created_by, title, message, type) => {
- return Announcement.create({
- created_by,
- title,
- message,
- type
- });
-};
-
-const deleteAnnouncement = (id) => {
- return Announcement.destroy({ where: { id } });
-};
-
-const findAnnouncement = (id) => {
- return Announcement.findOne({ where: { id }});
-};
-
-const getAnnouncements = (pagination = {}, timeframe, ordering) => {
- const order = [];
- if (!ordering) {
- order.push(['created_at', 'desc']);
- } else {
- order.push(ordering);
- }
- let query = {
- order,
- attributes: {
- exclude: ['created_by']
- },
- ...pagination
- };
- if (timeframe) query.where.created_at = timeframe;
- return Announcement.findAndCountAll(query)
- .then(convertSequelizeCountAndRows);
-};
-
-module.exports = {
- postAnnouncement,
- deleteAnnouncement,
- findAnnouncement,
- getAnnouncements
-};
\ No newline at end of file
diff --git a/plugins/announcement/index.js b/plugins/announcement/index.js
deleted file mode 100644
index 81b2cd4ded..0000000000
--- a/plugins/announcement/index.js
+++ /dev/null
@@ -1,187 +0,0 @@
-'use strict';
-
-const app = require('../index');
-const { verifyToken, checkScopes } = require('../helpers/auth');
-const { postAnnouncement, deleteAnnouncement, getAnnouncements, findAnnouncement } = require('./helpers');
-const bodyParser = require('body-parser');
-const { logger, getPagination, getTimeframe, getOrdering, updatePluginConstant, maskSecrets } = require('../helpers/common');
-const { WRONG_TITLE, WRONG_MESSAGE, WRONG_TYPE, WRONG_ID } = require('./messages');
-const { WRONG_LIMIT, WRONG_PAGE, WRONG_ORDER_BY, WRONG_ORDER, NOT_AUTHORIZED } = require('../helpers/messages');
-const { GET_SECRETS } = require('../../constants');
-
-app.get('/plugins/announcement/constant', verifyToken, (req, res) => {
- const endpointScopes = ['admin', 'tech'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'GET /plugins/announcement/constant auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('GET /plugins/announcement/constant error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- try {
- res.json(maskSecrets('announcement', GET_SECRETS().plugins.announcement) || {});
- } catch (err) {
- res.status(400).json({ message: err.message });
- }
-});
-
-app.put('/plugins/announcement/constant', [verifyToken, bodyParser.json()], (req, res) => {
- const endpointScopes = ['admin', 'tech'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'PUT /plugins/announcement/constant auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('PUT /plugins/announcement/constant error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- if (req.body.length === 0) {
- logger.error('PUT /plugins/announcement/constant error', 'Must provide key to update');
- return res.status(400).json({ message: 'Must provide key to update' });
- }
-
- logger.info(
- 'PUT /plugins/announcement/constant body',
- req.body
- );
-
- updatePluginConstant('announcement', req.body)
- .then((data) => {
- res.json(data);
- })
- .catch((err) => {
- res.status(400).json({ message: err.message });
- });
-});
-
-app.post('/plugins/announcement', [verifyToken, bodyParser.json()], (req, res) => {
- const endpointScopes = ['admin'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'POST /plugins/announcement auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('POST /plugins/announcement error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- let { title, message, type } = req.body;
-
- if (!title || typeof title !== 'string') {
- logger.error('POST /plugins/announcement error', WRONG_TITLE);
- return res.status(400).json({ message: WRONG_TITLE });
- } else if (!message || typeof message !== 'string') {
- logger.error('POST /plugins/announcement error', WRONG_MESSAGE);
- return res.status(400).json({ message: WRONG_MESSAGE });
- } else if (type && typeof type !== 'string') {
- logger.error('POST /plugins/announcement error', WRONG_TYPE);
- return res.status(400).json({ message: WRONG_TYPE });
- }
-
- if (!type) type = 'info';
-
- logger.info(
- 'POST /plugins/announcement announcement',
- title,
- type
- );
-
- postAnnouncement(req.auth.sub.id, title, message, type)
- .then((announcement) => {
- logger.debug('POST /plugins/announcement success ID: ', announcement.dataValues.id);
- res.json(announcement);
- })
- .catch((error) => {
- logger.error('POST /plugins/announcement error', error.message);
- res.status(error.status || 400).json({ message: error.message });
- });
-});
-
-app.delete('/plugins/announcement', verifyToken, (req, res) => {
- const endpointScopes = ['admin'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'DELETE /plugins/announcement auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('DELETE /plugins/announcement error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- const id = parseInt(req.query.id);
-
- if (!id) {
- logger.error('DELETE /plugins/announcement error', WRONG_ID);
- return res.status(400).json({ message: WRONG_ID });
- }
-
- findAnnouncement(id)
- .then((announcement) => {
- if (!announcement) {
- throw new Error(`Announcement with id ${id} not found`);
- } else {
- return deleteAnnouncement(id);
- }
- })
- .then(() => {
- logger.debug('DELETE /plugins/announcement success ID: ', id);
- res.json({ message: `Announcement ${id} successfully deleted` });
- })
- .catch((error) => {
- logger.error('DELETE /plugins/announcement error', error.message);
- res.status(error.status || 400).json({ message: error.message });
- });
-});
-
-app.get('/plugins/announcements', (req, res) => {
- const { limit, page, order_by, order, start_date, end_date } = req.query;
-
- if (limit && !parseInt(limit)) {
- logger.error('GET /plugins/announcements error', WRONG_LIMIT);
- return res.status(400).json({ message: WRONG_LIMIT });
- } else if (page && !parseInt(page)) {
- logger.error('GET /plugins/announcements error', WRONG_PAGE);
- return res.status(400).json({ message: WRONG_PAGE });
- } else if (order_by && order_by.includes(' ')) {
- logger.error('GET /plugins/announcements error', WRONG_ORDER_BY);
- return res.status(400).json({ message: WRONG_ORDER_BY });
- } else if (order && (order !== 'asc' || order!== 'desc')) {
- logger.error('GET /plugins/announcements error', WRONG_ORDER);
- return res.status(400).json({ message: WRONG_ORDER });
- }
-
- logger.info(
- 'GET /plugins/announcements',
- limit,
- page,
- order_by,
- order,
- start_date,
- end_date
- );
-
- getAnnouncements(getPagination(limit, page), getTimeframe(start_date, end_date), getOrdering(order_by, order))
- .then((announcements) => {
- logger.debug('GET /plugins/annoucements');
- return res.json(announcements);
- })
- .catch((error) => {
- logger.error('GET /plugins/announcements error', error.message);
- res.status(error.status || 400).json({ message: error.message });
- });
-});
\ No newline at end of file
diff --git a/plugins/announcement/messages.js b/plugins/announcement/messages.js
deleted file mode 100644
index 4b0028e3db..0000000000
--- a/plugins/announcement/messages.js
+++ /dev/null
@@ -1,6 +0,0 @@
-'use strict';
-
-exports.WRONG_TITLE = 'Value \'title\' is required and must be a string';
-exports.WRONG_MESSAGE = 'Value \'message\' is required and must be a string';
-exports.WRONG_TYPE = 'Value \'type\' must be a string';
-exports.WRONG_ID = 'Value \'id\' is required and must be an integer';
diff --git a/plugins/announcement/package.json b/plugins/announcement/package.json
deleted file mode 100644
index 4f9dbf0cea..0000000000
--- a/plugins/announcement/package.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "announcement",
- "version": "0.1.0",
- "dependencies": {}
-}
diff --git a/plugins/bank/helpers.js b/plugins/bank/helpers.js
deleted file mode 100644
index 931af06e67..0000000000
--- a/plugins/bank/helpers.js
+++ /dev/null
@@ -1,100 +0,0 @@
-'use strict';
-
-const crypto = require('crypto');
-const { pick, each } = require('lodash');
-const { VERIFY_STATUS } = require('../constants');
-const { USER_NOT_FOUND, MAX_BANKS_EXCEEDED } = require('./messages');
-
-const addBankAccount = (bank_account = {}) => (user, options = {}) => {
- if (!user) {
- throw new Error(USER_NOT_FOUND);
- } else if (user.dataValues.bank_account.length >= 3) {
- throw new Error(MAX_BANKS_EXCEEDED);
- }
-
- bank_account = pick(
- bank_account,
- 'bank_name',
- 'card_number',
- 'account_number'
- );
-
- bank_account.id = crypto.randomBytes(10).toString('hex');
- bank_account.status = VERIFY_STATUS.PENDING;
-
- let newBank = user.dataValues.bank_account;
- newBank.push(bank_account);
-
- return user.update(
- { bank_account: newBank },
- {
- fields: ['bank_account'],
- ...options
- }
- );
-};
-
-const adminAddUserBanks = (bank_accounts = []) => (user, options = {}) => {
- if (!user) {
- throw new Error(USER_NOT_FOUND);
- } else if (bank_accounts.length > 3) {
- throw new Error (MAX_BANKS_EXCEEDED);
- }
-
- each(bank_accounts, (bank) => {
- bank.id = crypto.randomBytes(10).toString('hex');
- bank.status = VERIFY_STATUS.COMPLETED;
- bank = pick(
- bank,
- 'id',
- 'status',
- 'bank_name',
- 'card_number',
- 'account_number'
- )
- });
-
- return user.update(
- { bank_account: bank_accounts },
- {
- fields: ['bank_account'],
- ...options
- }
- );
-};
-
-const approveBankAccount = (id = 0) => (user, options = {}) => {
- const banks = user.dataValues.bank_account.map((bank) => {
- if (bank.id === id) {
- bank.status = VERIFY_STATUS.COMPLETED;
- }
- return bank;
- });
-
- return user.update(
- { bank_account: banks },
- {
- fields: ['bank_account'],
- ...options
- }
- );
-};
-
-const rejectBankAccount = (id = 0) => (user, options = {}) => {
- const newBanks = user.bank_account.filter((bank) => bank.id !== id);
-
- return user.update(
- { bank_account: newBanks },
- {
- fields: ['bank_account'],
- ...options
- }
- );
-};
-
-module.exports = {
- addBankAccount,
- approveBankAccount,
- adminAddUserBanks,
- rejectBankAccount,
-};
\ No newline at end of file
diff --git a/plugins/bank/index.js b/plugins/bank/index.js
deleted file mode 100644
index 405398f8ff..0000000000
--- a/plugins/bank/index.js
+++ /dev/null
@@ -1,240 +0,0 @@
-'use strict';
-
-const app = require('../index');
-const { verifyToken, checkScopes } = require('../helpers/auth');
-const { findUser, getUserValuesById, getUserValuesByEmail } = require('../helpers/user');
-const { addBankAccount, adminAddUserBanks, approveBankAccount, rejectBankAccount } = require('./helpers');
-const { USER_NOT_FOUND, DEFAULT_REJECTION_NOTE } = require('./messages');
-const bodyParser = require('body-parser');
-const { logger, updatePluginConstant, maskSecrets } = require('../helpers/common');
-const { NOT_AUTHORIZED } = require('../helpers/messages');
-const { sendEmail } = require('../../mail');
-const { MAILTYPE } = require('../../mail/strings');
-const { GET_SECRETS } = require('../../constants');
-
-app.get('/plugins/bank/constant', verifyToken, (req, res) => {
- const endpointScopes = ['admin', 'tech'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'GET /plugins/bank/constant auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('GET /plugins/bank/constant error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- try {
- res.json(maskSecrets('bank', GET_SECRETS().plugins.bank) || {});
- } catch (err) {
- res.status(400).json({ message: err.message });
- }
-});
-
-app.put('/plugins/bank/constant', [verifyToken, bodyParser.json()], (req, res) => {
- const endpointScopes = ['admin', 'tech'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'PUT /plugins/bank/constant auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('PUT /plugins/bank/constant error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- if (req.body.length === 0) {
- logger.error('PUT /plugins/bank/constant error', 'Must provide key to update');
- return res.status(400).json({ message: 'Must provide key to update' });
- }
-
- logger.info(
- 'PUT /plugins/bank/constant body',
- req.body
- );
-
- updatePluginConstant('bank', req.body)
- .then((data) => {
- res.json(data);
- })
- .catch((err) => {
- res.status(400).json({ message: err.message });
- });
-});
-
-app.post('/plugins/bank/user', [verifyToken, bodyParser.json()], (req, res) => {
- const endpointScopes = ['user'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'POST /bank/user auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('POST /plugins/bank/user error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- const email = req.auth.sub.email;
- const bank_account = req.body;
-
- logger.info(
- 'POST /bank/user bank',
- email,
- bank_account
- );
-
- findUser({
- where: { email }
- })
- .then(addBankAccount(bank_account))
- .then(() => getUserValuesByEmail(email))
- .then((user) => res.json(user['bank_account']))
- .catch((error) => {
- logger.error('POST /bank/user error', error.message);
- res.status(error.status || 400).json({ message: error.message })
- })
-});
-
-app.post('/plugins/bank/admin', [verifyToken, bodyParser.json()], (req, res) => {
- const endpointScopes = ['admin', 'supervisor', 'support', 'kyc'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'POST /bank/admin auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('POST /plugins/bank/admin error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- const { bank_account } = req.body;
- const id = req.query.user_id;
-
- logger.info(
- 'POST /bank/admin bank',
- id,
- bank_account
- );
-
- findUser({
- where: {
- id
- }
- })
- .then(adminAddUserBanks(bank_account))
- .then(() => getUserValuesById(id))
- .then((user) => res.json(user['bank_account']))
- .catch((error) => {
- logger.error('POST /bank/admin error', error.message);
- res.status(error.status || 400).json({ message: error.message })
- });
-});
-
-app.post('/plugins/bank/verify', [verifyToken, bodyParser.json()], (req, res) => {
- const endpointScopes = ['admin', 'supervisor', 'support', 'kyc'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'POST /bank/verify auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('POST /plugins/bank/verify error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- const { user_id, bank_id } = req.body;
-
- logger.verbose(
- 'POST /bank/verify body',
- req.body
- );
-
- findUser({
- where: {
- id: user_id
- },
- attributes: ['id', 'bank_account']
- })
- .then((user) => {
- if (!user) throw new Error(USER_NOT_FOUND);
- return approveBankAccount(bank_id)(user);
- })
- .then((user) => {
- const data = {};
- data.bank_account = user.bank_account;
- logger.debug(
- 'POST /bank/verify data',
- data
- );
- res.json(data);
- })
- .catch((err) => {
- logger.error('POST /bank/verify error', err.message);
- res.status(err.status || 400).json({ message: err.message });
- });
-});
-
-app.post('/plugins/bank/revoke', [verifyToken, bodyParser.json()], (req, res) => {
- const endpointScopes = ['admin', 'supervisor', 'support', 'kyc'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'POST /bank/revoke auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('POST /plugins/bank/revoke error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- const { user_id, bank_id } = req.body;
- let { message } = req.body || DEFAULT_REJECTION_NOTE;
-
- logger.verbose(
- 'POST /bank/revoke body',
- req.body
- );
-
- findUser({
- where: {
- id: user_id
- },
- attributes: ['id', 'email', 'bank_account', 'settings']
- })
- .then((user) => {
- if (!user) throw new Error(USER_NOT_FOUND);
- return rejectBankAccount(bank_id)(user);
- })
- .then((user) => {
- const { email, bank_account } = user.dataValues;
- const emailData = { type: 'bank', message };
- const data = {};
- data.bank_account = bank_account;
- sendEmail(
- MAILTYPE.USER_VERIFICATION_REJECT,
- email,
- emailData,
- user.settings
- );
- logger.debug(
- 'POST /bank/revoke data',
- data
- );
- res.json(data);
- })
- .catch((err) => {
- logger.error('POST /bank/revoke error', err.message);
- res.status(err.status || 400).json({ message: err.message });
- });
-});
\ No newline at end of file
diff --git a/plugins/bank/messages.js b/plugins/bank/messages.js
deleted file mode 100644
index 617b2458a1..0000000000
--- a/plugins/bank/messages.js
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-exports.USER_NOT_FOUND = 'User not found';
-exports.MAX_BANKS_EXCEEDED = 'User can have a maximum of three banks';
-exports.DEFAULT_REJECTION_NOTE = 'Unspecified';
diff --git a/plugins/bank/package-lock.json b/plugins/bank/package-lock.json
deleted file mode 100644
index d3cc06ec0c..0000000000
--- a/plugins/bank/package-lock.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "bank",
- "version": "0.1.0",
- "lockfileVersion": 1
-}
diff --git a/plugins/bank/package.json b/plugins/bank/package.json
deleted file mode 100644
index 9fe17a37c3..0000000000
--- a/plugins/bank/package.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "bank",
- "version": "0.1.0",
- "dependencies": {}
-}
diff --git a/plugins/chat/index.js b/plugins/chat/index.js
deleted file mode 100644
index 837f152133..0000000000
--- a/plugins/chat/index.js
+++ /dev/null
@@ -1,62 +0,0 @@
-'use strict';
-
-const app = require('../index');
-const { verifyToken, checkScopes } = require('../helpers/auth');
-const { GET_SECRETS } = require('../../constants');
-const { logger, updatePluginConstant, maskSecrets } = require('../helpers/common');
-const { NOT_AUTHORIZED } = require('../helpers/messages');
-const bodyParser = require('body-parser');
-
-app.get('/plugins/chat/constant', verifyToken, (req, res) => {
- const endpointScopes = ['admin', 'tech'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'GET /plugins/chat/constant auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('GET /plugins/chat/constant error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- try {
- res.json(maskSecrets('chat', GET_SECRETS().plugins.chat) || {});
- } catch (err) {
- res.status(400).json({ message: err.message });
- }
-});
-
-app.put('/plugins/chat/constant', [verifyToken, bodyParser.json()], (req, res) => {
- const endpointScopes = ['admin', 'tech'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'PUT /plugins/chat/constant auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('PUT /plugins/chat/constant error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- if (req.body.length === 0) {
- logger.error('PUT /plugins/chat/constant error', 'Must provide key to update');
- return res.status(400).json({ message: 'Must provide key to update' });
- }
-
- logger.info(
- 'PUT /plugins/chat/constant body',
- req.body
- );
-
- updatePluginConstant('chat', req.body)
- .then((data) => {
- res.json(data);
- })
- .catch((err) => {
- res.status(400).json({ message: err.message });
- });
-});
diff --git a/plugins/constants.js b/plugins/constants.js
deleted file mode 100644
index 96340a1ac0..0000000000
--- a/plugins/constants.js
+++ /dev/null
@@ -1,64 +0,0 @@
-'use strict';
-
-exports.PLUGIN_PORT = process.env.PLUGIN_PORT || 10011;
-
-// List of available plugins
-exports.AVAILABLE_PLUGINS = [
- 'announcement',
- 'bank',
- 'chat',
- 'freshdesk',
- 'kyc',
- 'sms',
- 'vault',
- // 'xht_fee',
- 'zendesk'
-];
-
-// SMS_CONSTANTS
-exports.SMS_CODE_KEY = 'user:sms';
-exports.SMS_CODE_EXPIRATION_TIME = 6 * 60; // seconds -> 6 min
-
-// KYC_BANK_CONSTANTS
-exports.ID_FIELDS = [
- 'type',
- 'number',
- 'issued_date',
- 'expiration_date',
- 'status'
-];
-exports.USER_FIELD_ADMIN_LOG = [
- 'full_name',
- 'email',
- 'dob',
- 'gender',
- 'nationality',
- 'phone_number',
- 'address',
- 'id_data',
- 'bank_account',
- 'settings',
- 'username'
-];
-exports.ADDRESS_FIELDS = ['city', 'address', 'country', 'postal_code'];
-exports.VERIFY_STATUS = {
- EMPTY: 0,
- PENDING: 1,
- REJECTED: 2,
- COMPLETED: 3
-};
-
-exports.ERC_TOKENS = [
- 'eth',
- 'xht',
- 'usdt',
- 'dai',
- 'mkr',
- 'tusd',
- 'usdc',
- 'leo',
- 'xaut',
- 'busd'
-];
-
-exports.VAULT_ENDPOINT = 'https://api.vault.bitholla.com/v1';
\ No newline at end of file
diff --git a/plugins/freshdesk/index.js b/plugins/freshdesk/index.js
deleted file mode 100644
index a8504f4d2d..0000000000
--- a/plugins/freshdesk/index.js
+++ /dev/null
@@ -1,62 +0,0 @@
-'use strict';
-
-const app = require('../index');
-const { verifyToken, checkScopes } = require('../helpers/auth');
-const { GET_SECRETS } = require('../../constants');
-const { logger, updatePluginConstant, maskSecrets } = require('../helpers/common');
-const { NOT_AUTHORIZED } = require('../helpers/messages');
-const bodyParser = require('body-parser');
-
-app.get('/plugins/freshdesk/constant', verifyToken, (req, res) => {
- const endpointScopes = ['admin', 'tech'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'GET /plugins/freshdesk/constant auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('GET /plugins/freshdesk/constant error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- try {
- res.json(maskSecrets('freshdesk', GET_SECRETS().plugins.freshdesk) || {});
- } catch (err) {
- res.status(400).json({ message: err.message });
- }
-});
-
-app.put('/plugins/freshdesk/constant', [verifyToken, bodyParser.json()], (req, res) => {
- const endpointScopes = ['admin', 'tech'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'PUT /plugins/chat/constant auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('PUT /plugins/freshdesk/constant error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- if (req.body.length === 0) {
- logger.error('PUT /plugins/freshdesk/constant error', 'Must provide key to update');
- return res.status(400).json({ message: 'Must provide key to update' });
- }
-
- logger.info(
- 'PUT /plugins/freshdesk/constant body',
- req.body
- );
-
- updatePluginConstant('freshdesk', req.body)
- .then((data) => {
- res.json(data);
- })
- .catch((err) => {
- res.status(400).json({ message: err.message });
- });
-});
diff --git a/plugins/freshdesk/package-lock.json b/plugins/freshdesk/package-lock.json
deleted file mode 100644
index 43230fa983..0000000000
--- a/plugins/freshdesk/package-lock.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "freshdesk",
- "version": "0.1.0",
- "lockfileVersion": 1
-}
diff --git a/plugins/freshdesk/package.json b/plugins/freshdesk/package.json
deleted file mode 100644
index e6352971fa..0000000000
--- a/plugins/freshdesk/package.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "freshdesk",
- "version": "0.1.0",
- "dependencies": {}
-}
diff --git a/plugins/helpers/audit.js b/plugins/helpers/audit.js
deleted file mode 100644
index 93c7f00521..0000000000
--- a/plugins/helpers/audit.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-
-const { Audit } = require('../../db/models');
-
-/**
- * Create an audit.
- * @param {string} admin_id - Admin id.
- * @param {string} event - Event being audited.
- * @param {string} description - Description of event.
- * @param {string} ip - IP address.
- * @param {string} domain - Domain.
- * @return {promise} - Promise with new audit.
-*/
-const createAudit = (admin_id, event, description, ip, domain) => {
- return Audit.create({
- admin_id,
- event,
- description,
- ip,
- domain
- });
-};
-
-module.exports = {
- createAudit
-};
\ No newline at end of file
diff --git a/plugins/helpers/auth.js b/plugins/helpers/auth.js
deleted file mode 100644
index 5a5c136602..0000000000
--- a/plugins/helpers/auth.js
+++ /dev/null
@@ -1,61 +0,0 @@
-'use strict';
-
-const jwt = require('jsonwebtoken');
-const { SECRET, ISSUER, GET_FROZEN_USERS } = require('../../constants');
-const { intersection } = require('lodash');
-const { ACCESS_DENIED, TOKEN_EXPIRED, INVALID_TOKEN, MISSING_HEADER, DEACTIVATED_USER } = require('./messages');
-
-/**
- * Middleware function used for verifying tokens being passed by client in Authorization header. Format: Bearer
-*/
-const verifyToken = (req, res, next) => {
- const sendError = (msg) => {
- return req.res.status(403).json({ message: ACCESS_DENIED(msg) });
- };
-
- const token = req.headers['authorization'];
-
- if (token && token.indexOf('Bearer ') === 0) {
- let tokenString = token.split(' ')[1];
-
- jwt.verify(tokenString, SECRET, (verificationError, decodedToken) => {
- if (!verificationError && decodedToken) {
-
- const issuerMatch = decodedToken.iss == ISSUER;
-
- if (!issuerMatch) {
- return sendError(TOKEN_EXPIRED);
- }
-
- if (GET_FROZEN_USERS()[decodedToken.sub.id]) {
- return sendError(DEACTIVATED_USER);
- } else {
- req.auth = decodedToken;
- return next();
- }
- } else {
- return sendError(INVALID_TOKEN);
- }
- });
- } else {
- return sendError(MISSING_HEADER);
- }
-};
-
-/**
- * Function that checks to see if user's scope is valid for the endpoint. Will throw Error if user doesn't have valid scope.
- * @param {array} endpointScopes - Authorized scopes for the endpoint.
- * @param {array} userScopes - Scopes of the user.
-*/
-const checkScopes = (endpointScopes, userScopes) => {
- if (intersection(endpointScopes, userScopes).length === 0) {
- return false;
- } else {
- return true;
- }
-};
-
-module.exports = {
- verifyToken,
- checkScopes
-};
\ No newline at end of file
diff --git a/plugins/helpers/common.js b/plugins/helpers/common.js
deleted file mode 100644
index dc1cd7264e..0000000000
--- a/plugins/helpers/common.js
+++ /dev/null
@@ -1,241 +0,0 @@
-'use strict';
-
-const { Status, Deposit } = require('../../db/models');
-const { CONSTANTS_KEYS, INIT_CHANNEL, SECRETS_KEYS, SECRET_MASK } = require('../../constants');
-const { publisher } = require('../../db/pubsub');
-const { omit, each } = require('lodash');
-const flatten = require('flat');
-
-// Winston logger
-const logger = require('../../config/logger').loggerPlugin;
-
-const joinConstants = (statusConstants = {}, newConstants = {}, role) => {
- const joinedConstants = {
- secrets: {}
- };
- CONSTANTS_KEYS.forEach((key) => {
- if (key === 'secrets' && newConstants[key]) {
- SECRETS_KEYS.forEach((secretKey) => {
- if (newConstants[key][secretKey]) {
- if (!Array.isArray(statusConstants[key][secretKey]) && typeof statusConstants[key][secretKey] === 'object') {
- if (Object.values(newConstants[key][secretKey]).includes(SECRET_MASK)) {
- throw new Error('Masked value given');
- }
- joinedConstants[key][secretKey] = { ...statusConstants[key][secretKey], ...newConstants[key][secretKey] };
- } else {
- if (newConstants[key][secretKey] === SECRET_MASK) {
- throw new Error('Masked value given');
- }
- joinedConstants[key][secretKey] = newConstants[key][secretKey];
- }
- } else {
- joinedConstants[key][secretKey] = statusConstants[key][secretKey];
- }
- });
- }
- else if (newConstants[key]) {
- if (role === 'tech' && key === 'emails' && newConstants[key] && newConstants[key].send_email_to_support !== statusConstants[key].send_email_to_support) {
- throw new Error('Tech users cannot update the value of send_email_copy');
- }
- if (!Array.isArray(statusConstants[key]) && typeof statusConstants[key] === 'object') {
- joinedConstants[key] = { ...statusConstants[key], ...newConstants[key] };
- } else {
- joinedConstants[key] = newConstants[key];
- }
- } else {
- joinedConstants[key] = statusConstants[key];
- }
- });
- return joinedConstants;
-};
-
-const updateConstants = (constants) => {
- return Status.findOne({
- attributes: ['id', 'constants']
- })
- .then((status) => {
- if (Object.keys(constants).length > 0) {
- constants = joinConstants(status.dataValues.constants, constants);
- }
- return status.update({ constants }, {
- fields: [
- 'constants'
- ],
- returning: true
- });
- })
- .then((data) => {
- const secrets = data.constants.secrets;
- data.constants = omit(data.constants, 'secrets');
- publisher.publish(
- INIT_CHANNEL,
- JSON.stringify({
- type: 'constants', data: { constants: data.constants, secrets }
- })
- );
- return { ...data.constants, secrets };
- });
-};
-
-const isUrl = (url) => {
- const pattern = /^(^|\s)((https?:\/\/)?[\w-]+(\.[\w-]+)+\.?(:\d+)?(\/\S*)?)$/;
- return pattern.test(url);
-};
-
-const sleep = (ms) => {
- return new Promise((resolve) => setTimeout(resolve, ms));
-};
-
-const getPagination = (limit = 50, page = 1) => {
- let _limit = 50;
- let _page = 1;
- logger.debug('helpers/common/getPagination', _limit, _page);
- if (limit) {
- if (limit > 50) {
- _limit = 50;
- } else if (limit <= 0) {
- _limit = 1;
- } else {
- _limit = limit;
- }
- }
-
- if (page && page >= 0) {
- _page = page;
- }
- logger.debug('helpers/common/getPagination', _limit, _page);
- return {
- limit: _limit,
- offset: _limit * (_page - 1)
- };
-};
-
-const convertSequelizeCountAndRows = (data) => {
- return {
- count: data.count,
- data: data.rows.map((row) => {
- const item = Object.assign({}, row.dataValues);
- // delete item.id;
- return item;
- })
- };
-};
-
-const getTimeframe = (start_date = undefined, end_date = undefined) => {
- logger.debug(
- 'helpers/common/getTimeframe',
- 'stat_date: ',
- start_date,
- 'end_date: ',
- end_date
- );
- let timestamp = {};
- if (start_date) timestamp['$gte'] = start_date;
- if (end_date) timestamp['$lte'] = end_date;
- if (Object.entries(timestamp).length === 0) return undefined;
- return timestamp;
-};
-
-const getOrdering = (order_by = undefined, order = undefined) => {
- logger.debug(
- 'helpers/common/getOrdering',
- 'order_by: ',
- order_by,
- 'order: ',
- order
- );
- if (!order_by) {
- return undefined;
- } else {
- return [order_by, order || 'desc'];
- }
-};
-
-const updatePluginConstant = (plugin, newValues) => {
- return Status.findOne({
- attributes: ['id', 'constants']
- })
- .then((status) => {
- const constants = status.dataValues.constants;
- if (!Array.isArray(newValues) && typeof newValues === 'object') {
- const flattenedValues = flatten(newValues);
- if (Object.values(flattenedValues).includes(SECRET_MASK)) {
- throw new Error('Masked value given');
- }
- }
-
- if (plugin === 'vault') {
- constants.secrets.vault = { ...constants.secrets.vault, ...newValues };
- return status.update({ constants }, {
- fields: [
- 'constants'
- ],
- returning: true
- });
- } else {
- constants.secrets.plugins[plugin] = { ...constants.secrets.plugins[plugin], ...newValues };
- return status.update({ constants }, {
- fields: [
- 'constants'
- ],
- returning: true
- });
- }
- })
- .then((data) => {
- const secrets = data.constants.secrets;
- data.constants = omit(data.constants, 'secrets');
- publisher.publish(
- INIT_CHANNEL,
- JSON.stringify({
- type: 'constants', data: { constants: data.constants, secrets }
- })
- );
- return maskSecrets(plugin, plugin === 'vault' ? secrets.vault : secrets.plugins[plugin]);
- });
-};
-
-const maskSecrets = (plugin, secrets) => {
- secrets = JSON.parse(JSON.stringify(secrets));
- each(secrets, (secret, secretKey) => {
- if (plugin === 's3' && secretKey === 'secret') {
- secrets[secretKey] = {
- write: SECRET_MASK,
- read: SECRET_MASK
- };
- } else if ((plugin === 'zendesk' || plugin === 'freshdesk') && secretKey === 'key') {
- secrets[secretKey] = SECRET_MASK;
- } else if (secretKey === 'secret' || secretKey === 'auth') {
- secrets[secretKey] = SECRET_MASK;
- }
- });
- return secrets;
-};
-
-const createDeposit = (user_id, transaction_id, address, status, currency, type, amount, fee = 0, description = '', options = {}) => {
- return Deposit.create({
- user_id,
- transaction_id,
- address,
- status,
- currency,
- type,
- amount,
- fee,
- description
- }, options);
-};
-
-module.exports = {
- logger,
- updateConstants,
- isUrl,
- sleep,
- getPagination,
- getOrdering,
- getTimeframe,
- convertSequelizeCountAndRows,
- updatePluginConstant,
- maskSecrets,
- createDeposit
-};
\ No newline at end of file
diff --git a/plugins/helpers/messages.js b/plugins/helpers/messages.js
deleted file mode 100644
index 361e5c31a2..0000000000
--- a/plugins/helpers/messages.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict';
-
-exports.ACCESS_DENIED = (msg) => `Access denied: ${msg}`;
-exports.NOT_AUTHORIZED = 'You are not authorized to access this endpoint';
-exports.TOKEN_EXPIRED = 'Token is expired';
-exports.INVALID_TOKEN = 'Token is invalid';
-exports.MISSING_HEADER = 'Authorization header is missing';
-exports.DEACTIVATED_USER = 'This account is deactivated';
-exports.WRONG_LIMIT = 'Value \'limit\' must be an integer';
-exports.WRONG_PAGE = 'Value \'page\' must be an integer';
-exports.WRONG_ORDER_BY = 'Value \'order_by\' cannot include whitespaces';
-exports.WRONG_ORDER = 'Value \'order\' must be one of: [\'asc\', \'desc\']';
diff --git a/plugins/helpers/user.js b/plugins/helpers/user.js
deleted file mode 100644
index 552d7834de..0000000000
--- a/plugins/helpers/user.js
+++ /dev/null
@@ -1,151 +0,0 @@
-'use strict';
-
-const { User, Pair, VerificationImage, Balance } = require('../../db/models');
-const { all } = require('bluebird');
-
-/**
- * Checks database for user with params.
- * @param {object} params - sequelize param object.
- * @return {promise} - Promise with found user.
-*/
-const findUser = (params = {}) => {
- return User.findOne(params);
-};
-
-/**
- * Gives trading fees for user.
- * @param {number} verification_level - Verification level of the user.
- * @return {promise} - Promise with user trading fees.
-*/
-const findUserPairFees = (verification_level = 0) => {
- return Pair.findAll({
- attributes: ['name', 'maker_fees', 'taker_fees']
- }).then((data) => {
- const userData = {};
- data.forEach(({ name, maker_fees, taker_fees }) => {
- userData[name] = {
- maker_fee: maker_fees[verification_level] || 0,
- taker_fee: taker_fees[verification_level] || 0
- };
- });
- return userData;
- });
-};
-
-/**
- * Function to find a user by the email, it will exclude the password.
- * @param {string} email - User email.
- * @param {array} include - Keys of fields for the query.
- * @return {promise} - Promise with the user. If the dob of the user is not set, function will not return it.
-*/
-const getUserValuesByEmail = (email, include) => {
- return findUser({
- where: { email: email.toLowerCase() },
- attributes: include || {
- exclude: ['password', 'is_admin', 'is_support', 'is_supervisor', 'is_kyc']
- },
- include: [
- {
- model: Balance,
- as: 'balance',
- attributes: {
- exclude: ['id', 'user_id', 'created_at']
- }
- },
- {
- model: VerificationImage,
- as: 'images',
- attributes: ['id']
- }
- ]
- })
- .then((data) => {
- return all([
- data.dataValues,
- findUserPairFees(data.verification_level)
- ]);
- })
- .then(([userData, fees]) => {
- return {
- ...userData,
- fees
- };
- })
- .then(cleanUserFromDb);
-};
-
-/**
- * Function to find a user by the id, it will exclude the password.
- * @param {string} id - User id.
- * @param {array} include - Keys of fields for the query.
- * @return {promise} - Promise with the user. If the dob of the user is not set, function will not return it.
-*/
-const getUserValuesById = (id, include) => {
- return findUser({
- where: { id },
- attributes: include || {
- exclude: ['password', 'is_admin', 'is_support', 'is_supervisor', 'is_kyc']
- },
- include: [
- {
- model: Balance,
- as: 'balance',
- attributes: {
- exclude: ['id', 'user_id', 'created_at']
- }
- },
- {
- model: VerificationImage,
- as: 'images',
- attributes: ['id']
- }
- ]
- })
- .then((data) => {
- return all([
- data.dataValues,
- findUserPairFees(data.verification_level)
- ]);
- })
- .then(([userData, fees]) => {
- return {
- ...userData,
- fees
- };
- })
- .then(cleanUserFromDb);
-};
-
-/**
- * Function that remove values before send the user to the response.
- * @param {object} user - User data from DB.
- * @return {object} - User data values.
-*/
-const cleanUserFromDb = (user) => {
- const userData = {
- ...user
- };
-
- if (user.balance) {
- userData.balance = user.balance.dataValues;
- }
-
- if (userData.id_data) {
- if (!userData.id_data.issued_date) {
- delete userData.id_data.issued_date;
- }
- if (!userData.id_data.expiration_date) {
- delete userData.id_data.expiration_date;
- }
- }
- if (!userData.dob) {
- delete userData.dob;
- }
- return userData;
-};
-
-module.exports = {
- findUser,
- getUserValuesByEmail,
- getUserValuesById
-};
\ No newline at end of file
diff --git a/plugins/index.js b/plugins/index.js
deleted file mode 100644
index 16c56de0b7..0000000000
--- a/plugins/index.js
+++ /dev/null
@@ -1,37 +0,0 @@
-'use strict';
-
-const express = require('express');
-const cors = require('cors');
-const app = express();
-const { PLUGIN_PORT, AVAILABLE_PLUGINS } = require('./constants');
-const { GET_CONFIGURATION } = require('../constants');
-
-const PLUGINS = () => GET_CONFIGURATION().constants.plugins.enabled || process.env.PLUGINS || '';
-
-const PORT = PLUGIN_PORT;
-
-const enabledPlugins = () => PLUGINS().split(',');
-
-app.listen(PORT);
-
-app.use(cors());
-
-app.get('/plugins', (req, res) => {
- res.json({
- enabled: enabledPlugins(),
- available: AVAILABLE_PLUGINS
- });
-});
-
-module.exports = app;
-
-// Require every plugin for now
-AVAILABLE_PLUGINS.forEach((plugin) => {
- if (plugin) {
- try {
- require('./' + plugin);
- } catch (err) {
- console.log(`${plugin} directory does not exist`);
- }
- }
-});
\ No newline at end of file
diff --git a/plugins/kyc/helpers.js b/plugins/kyc/helpers.js
deleted file mode 100644
index bbe698dffa..0000000000
--- a/plugins/kyc/helpers.js
+++ /dev/null
@@ -1,335 +0,0 @@
-'use strict';
-
-const { findUser } = require('../helpers/user');
-const { VerificationImage, sequelize } = require('../../db/models');
-const { ROLES, GET_SECRETS } = require('../../constants');
-const {
- USER_FIELD_ADMIN_LOG,
- ID_FIELDS,
- ADDRESS_FIELDS,
- VERIFY_STATUS
-} = require('../constants');
-const AWS_SE = 'amazonaws.com/';
-const EXPIRES = 300; // seconds
-const { differenceWith, isEqual } = require('lodash');
-const { all } = require('bluebird');
-const { ERROR_CHANGE_USER_INFO, IMAGE_NOT_FOUND } = require('./messages');
-
-const S3_BUCKET_NAME = () => {
- return (GET_SECRETS().plugins.s3.id_docs_bucket).split(':')[0];
-};
-const s3Write = () => require('./s3').write(S3_BUCKET_NAME());
-const s3Read = () => require('./s3').read(S3_BUCKET_NAME());
-
-const multer = require('multer');
-const upload = multer();
-const multerMiddleware = upload.fields([
- { name: 'front', maxCount: 1 },
- { name: 'back', maxCount: 1 },
- { name: 'proof_of_residency', maxCount: 1 }
-])
-
-const validMimeType = (type = '') => {
- return type.indexOf('image/') === 0;
-};
-
-const getType = (type = '') => {
- return type.replace('image/', '');
-};
-
-const uploadFile = (name, file) => {
- return new Promise((resolve, reject) => {
- const params = {
- Bucket: S3_BUCKET_NAME(),
- Key: name,
- Body: file.buffer,
- ContentType: file.mimetype,
- ACL: 'authenticated-read'
- };
- s3Write().upload(params, (err, data) => {
- if (err) {
- reject(err);
- }
- resolve(data);
- });
- });
-};
-
-const getImagesData = (user_id, type = undefined) => {
- return VerificationImage.findOne({
- where: { user_id },
- order: [['created_at', 'DESC']],
- attributes: ['front', 'back', 'proof_of_residency']
- }).then((verificationImages) => {
- if (!verificationImages) {
- if (type === 'admin') {
- return { front: undefined, back: undefined, proof_of_residency: undefined };
- }
- throw new Error(IMAGE_NOT_FOUND);
- }
- return verificationImages.dataValues;
- });
-};
-
-const approveDocuments = (user) => {
- return updateUserData(
- {
- id_data: { ...user.id_data, status: VERIFY_STATUS.COMPLETED, note: '' }
- },
- ROLES.SUPPORT
- )(user, { returning: true }).then((user) => {
- return user;
- });
-};
-
-const revokeDocuments = (user, message = '') => {
- return sequelize
- .transaction((transaction) => {
- return all([
- VerificationImage.destroy({
- where: { user_id: user.id },
- transaction
- }),
- updateUserData(
- {
- id_data: {
- ...user.id_data,
- status: VERIFY_STATUS.REJECTED,
- note: message
- }
- },
- ROLES.SUPPORT
- )(user, { transaction, returning: true })
- ]);
- })
- .then(([destroyed, user]) => {
- return user;
- });
-};
-
-const findUserImages = (where) => {
- return findUser({ where, attributes: ['id', 'id_data'] })
- .then((user) => {
- return Promise.all([
- user.dataValues,
- getImagesData(user.id).then(getLinks)
- ]);
- })
- .then(([user, links]) => {
- return { user, data: links };
- });
-};
-
-const getLinks = ({ front, back, proof_of_residency }) => {
- const data = {
- front: front ? getPublicLink(front) : '',
- back: back ? getPublicLink(back) : '',
- proof_of_residency: proof_of_residency
- ? getPublicLink(proof_of_residency)
- : ''
- };
- return data;
-};
-
-const getKeyFromLink = (link) => {
- const indexOfService = link.indexOf(AWS_SE);
- if (indexOfService > 0) {
- return link.substring(indexOfService + AWS_SE.length);
- }
- // if not amazon.com link, return same link
- return link;
-};
-
-const getPublicLink = (privateLink) => {
- const Key = getKeyFromLink(privateLink);
- const params = {
- Bucket: S3_BUCKET_NAME(),
- Key: getKeyFromLink(privateLink),
- Expires: EXPIRES
- };
-
- return s3Read().getSignedUrl('getObject', params);
-};
-
-const updateUserPhoneNumber = (user, phone_number, options = {}) => {
- return user.update(
- { phone_number },
- { fields: ['phone_number'], ...options }
- );
-};
-
-const bankComparison = (bank1, bank2, description) => {
- let difference = [];
- let note = '';
- if (bank1.length === bank2.length) {
- note = 'bank info updated';
- difference = differenceWith(bank1, bank2, isEqual);
- } else if (bank1.length > bank2.length) {
- note = 'bank removed';
- difference = differenceWith(bank1, bank2, isEqual);
- } else if (bank1.length < bank2.length) {
- note = 'bank added';
- difference = differenceWith(bank2, bank1, isEqual);
- }
-
- // bank data is changed
- if (difference.length > 0) {
- description.note = note;
- description.new.bank_account = bank2;
- description.old.bank_account = bank1;
- }
- return description;
-};
-
-const userUpdateLog = (user_id, prevData = {}, newData = {}) => {
- let description = {
- user_id,
- note: `Change in user ${user_id} information`,
- old: {},
- new: {}
- };
- for (const key in newData) {
- if (USER_FIELD_ADMIN_LOG.includes(key)) {
- let prevRecord = prevData[key] || 'empty';
- let newRecord = newData[key] || 'empty';
- if (key === 'bank_account') {
- description = bankComparison(
- prevData.bank_account,
- newData.bank_account,
- description
- );
- } else if (key === 'id_data') {
- ID_FIELDS.forEach((field) => {
- if (newRecord[field] != prevRecord[field]) {
- description.old[field] = prevRecord[field];
- description.new[field] = newRecord[field];
- }
- });
- } else if (key === 'address') {
- ADDRESS_FIELDS.forEach((field) => {
- if (prevRecord[field] != newRecord[field]) {
- description.old[field] = prevRecord[field];
- description.new[field] = newRecord[field];
- }
- });
- } else {
- if (prevRecord.toString() != newRecord.toString()) {
- description.old[key] = prevRecord;
- description.new[key] = newRecord;
- }
- }
- }
- }
- return description;
-};
-
-const updateUserData = (
- { id_data = {}, bank_account, ...rest },
- role = ROLES.USER
-) => (user, options = {}) => {
- const updateData = {
- ...rest
- };
- if (Object.keys(id_data).length > 0) {
- if (role === ROLES.USER) {
- if (user.dataValues.status === VERIFY_STATUS.COMPLETED) {
- throw new Error(ERROR_CHANGE_USER_INFO);
- } else {
- updateData['id_data'] = id_data;
- updateData.id_data.status = VERIFY_STATUS.PENDING;
- }
- } else {
- updateData['id_data'] = id_data;
- }
- }
- if (
- updateData.full_name ||
- updateData.gender ||
- updateData.dob ||
- updateData.address ||
- updateData.nationality
- ) {
- if (user.dataValues.id_data === VERIFY_STATUS.COMPLETED) {
- throw new Error(ERROR_CHANGE_USER_INFO);
- }
- }
- // User is not allowed to update his phone number through this. User has to verify phone number through a whole different process
- if (updateData.phone_number && role === ROLES.USER) {
- throw new Error(ERROR_CHANGE_USER_INFO);
- }
- return user.update(updateData, {
- fields: [
- 'full_name',
- 'gender',
- 'nationality',
- 'dob',
- 'address',
- 'phone_number',
- 'id_data'
- ],
- ...options
- });
-};
-
-const storeFilesDataOnDb = (
- user_id,
- data,
- front = '',
- back = '',
- proof_of_residency = ''
-) => {
- return sequelize.transaction((transaction) => {
- const options = { transaction };
- return VerificationImage.findOrCreate(
- {
- where: { user_id },
- defaults: {
- user_id,
- front,
- back,
- proof_of_residency
- },
- options
- }
- )
- .then(([image, created]) => {
- if(!created) {
- return image.update({
- front,
- back,
- proof_of_residency
- }, { options } );
- } else {
- return image;
- }
- })
- .then((image) => {
- return findUser({
- where: { id: user_id },
- attributes: ['id', 'id_data'],
- transaction
- });
- })
- .then((user) => {
- return updateUserData(data, 'user')(user, {
- ...options,
- returning: true
- });
- });
- });
-};
-
-module.exports = {
- validMimeType,
- uploadFile,
- updateUserData,
- getImagesData,
- findUserImages,
- storeFilesDataOnDb,
- getType,
- updateUserPhoneNumber,
- multerMiddleware,
- userUpdateLog,
- approveDocuments,
- revokeDocuments
-};
\ No newline at end of file
diff --git a/plugins/kyc/index.js b/plugins/kyc/index.js
deleted file mode 100644
index 7e52feca9a..0000000000
--- a/plugins/kyc/index.js
+++ /dev/null
@@ -1,611 +0,0 @@
-'use strict';
-
-const app = require('../index');
-const { verifyToken, checkScopes } = require('../helpers/auth');
-const { findUser, getUserValuesByEmail } = require('../helpers/user');
-const { createAudit } = require('../helpers/audit');
-const { sendEmail } = require('../../mail');
-const { MAILTYPE } = require('../../mail/strings');
-const {
- multerMiddleware,
- validMimeType,
- uploadFile,
- getImagesData,
- findUserImages,
- storeFilesDataOnDb,
- updateUserData,
- getType,
- updateUserPhoneNumber,
- userUpdateLog,
- approveDocuments,
- revokeDocuments
-} = require('./helpers');
-const { SMS_INVALID_PHONE, DEFAULT_REJECTION_NOTE, ID_EMAIL_REQUIRED, PENDING_APPROVAL_DENY } = require('./messages');
-const bodyParser = require('body-parser');
-const PhoneNumber = require('awesome-phonenumber');
-const { sequelize } = require('../../db/models');
-const { cloneDeep, omit } = require('lodash');
-const { ROLES } = require('../../constants');
-const { all } = require('bluebird');
-const { logger, updatePluginConstant, maskSecrets } = require('../helpers/common');
-const { NOT_AUTHORIZED } = require('../helpers/messages');
-const { GET_SECRETS } = require('../../constants');
-
-app.get('/plugins/kyc/constant', verifyToken, (req, res) => {
- const endpointScopes = ['admin', 'tech'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'GET /plugins/kyc/constant auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('GET /plugins/kyc/constant error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- try {
- res.json(maskSecrets('s3', GET_SECRETS().plugins.s3) || {});
- } catch (err) {
- res.status(400).json({ message: err.message });
- }
-});
-
-app.put('/plugins/kyc/constant', [verifyToken, bodyParser.json()], (req, res) => {
- const endpointScopes = ['admin', 'tech'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'PUT /plugins/kyc/constant auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('PUT /plugins/kyc/constant error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- if (req.body.length === 0) {
- logger.error('PUT /plugins/kyc/constant error', 'Must provide key to update');
- return res.status(400).json({ message: 'Must provide key to update' });
- }
-
- logger.info(
- 'PUT /plugins/kyc/constant body',
- req.body
- );
-
- updatePluginConstant('s3', req.body)
- .then((data) => {
- res.json(data);
- })
- .catch((err) => {
- res.status(400).json({ message: err.message });
- });
-});
-
-app.put('/plugins/kyc/user', [verifyToken, bodyParser.json()], (req, res) => {
- const endpointScopes = ['user'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'PUT /plugins/kyc/user',
- req.body
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('PUT /plugins/kyc/user error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- const email = req.auth.sub.email;
- const editUser = req.body;
-
- findUser({
- where: { email },
- attributes: {
- exclude: [
- 'password',
- 'created_at',
- 'updated_at',
- 'email',
- 'balance',
- 'crypto_wallet',
- 'verification_level',
- 'otp_enabled',
- 'is_admin',
- 'is_supervisor',
- 'is_support',
- 'is_kyc',
- 'is_tech',
- 'flagged',
- 'affiliation_code'
- ]
- }
- })
- .then(updateUserData(editUser, ROLES.USER))
- .then(() => getUserValuesByEmail(email))
- .then((user) => res.json(user))
- .catch((error) => {
- logger.error('PUT /plugins/kyc/user', error);
- res.status(error.status || 400).json({ message: error.message });
- });
-});
-
-app.put('/plugins/kyc/admin', [verifyToken, bodyParser.json()], (req, res) => {
- const endpointScopes = ['admin', 'supervisor', 'support'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'PUT /plugins/kyc/admin',
- req.auth
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('PUT /plugins/kyc/admin error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- const ip = req.headers['x-real-ip'];
- const domain = req.headers['x-real-origin'];
- const admin_id = req.auth.sub.id;
- const id = req.query.user_id;
- const data = req.body;
-
- const REMOVE_PROPS = [
- 'id_data',
- 'bank_account',
- 'crypto_wallet',
- 'verification_level',
- 'otp_enabled',
- 'activated',
- 'username',
- 'settings'
- ];
-
- REMOVE_PROPS.forEach((key) => {
- if (data.hasOwnProperty(key)) {
- delete data[key];
- }
- })
-
- let phoneNumber;
- if (data.phone_number) {
- phoneNumber = new PhoneNumber(data.phone_number);
- if (data.phone_number && !phoneNumber.isValid()) {
- logger.error(
- 'PUT /plugins/kyc/admin not a valid phone number',
- data.phone_number
- );
- return res.status(400).json({ message: SMS_INVALID_PHONE });
- }
- }
-
- sequelize
- .transaction((transaction) => {
- const options = { transaction, returning: true };
- let prevUserData = {}; // for audit
- return findUser({ where: { id } })
- .then((user) => {
- prevUserData = cloneDeep(user.dataValues);
- logger.verbose(
- 'PUT /plugins/kyc/admin user',
- prevUserData
- );
- return updateUserData(data, ROLES.SUPPORT)(user, options);
- })
- .then((user) => {
- logger.debug(
- 'PUT /plugins/kyc/admin user then',
- user.dataValues,
- user.previous('bank_account')
- );
- if (data.phone_number) {
- return updateUserPhoneNumber(
- user,
- phoneNumber.getNumber(),
- options
- );
- }
- return user;
- })
- .then((user) => {
- logger.verbose(
- 'PUT /plugins/kyc/admin user then then',
- prevUserData.dataValues,
- user
- );
- const description = userUpdateLog(
- user.id,
- prevUserData,
- user.dataValues
- );
- return all([
- user,
- createAudit(admin_id, 'userUpdate', description, ip, domain)
- ]);
- });
- })
- .then(([user, audit]) => {
- logger.info(
- 'PUT /plugins/kyc/admin user_end audit',
- user.dataValues,
- audit
- );
- user = omit(user.dataValues, [
- 'password',
- 'is_admin',
- 'is_support',
- 'is_kyc',
- 'is_supervisor'
- ]);
- res.json(user);
- })
- .catch((err) => {
- logger.error(
- 'PUT /plugins/kyc/admin catch',
- err.messsage
- )
- res.status(err.status || 400).json({ message: err.message });
- });
-});
-
-app.post('/plugins/kyc/user/upload', [verifyToken, multerMiddleware], (req, res) => {
- const endpointScopes = ['user'];
- const scopes = req.auth.scopes;
-
- logger.verbose('POST /plugins/kyc/user/upload auth', req.auth.sub);
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('POST /plugins/kyc/user/upload error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- const { id, email } = req.auth.sub;
- let { front, back, proof_of_residency } = req.files;
- if (front) front = front[0];
- if (back) back = back[0];
- if (proof_of_residency) proof_of_residency = proof_of_residency[0];
- const { ...otherData } = req.body;
-
- let invalidType = '';
- if (!validMimeType(front.mimetype)) {
- invalidType = 'front';
- } else if (back && !validMimeType(back.mimetype)) {
- invalidType = 'back';
- } else if (
- proof_of_residency &&
- !validMimeType(proof_of_residency.mimetype)
- ) {
- invalidType = 'proof_of_residency';
- }
- if (invalidType) {
- return res.status(400).json({ message: `Invalid type: ${invalidType} field.` });
- }
-
- const data = { id_data: {} };
-
- Object.entries(otherData).forEach(([key, field]) => {
- if (field) {
- if (
- key === 'type' ||
- key === 'number' ||
- key === 'issued_date' ||
- key === 'expiration_date'
- ) {
- data.id_data[key] = field;
- }
- }
- });
-
- const ts = Date.now();
- findUser({
- where: {
- id
- },
- attributes: [
- 'id',
- 'id_data'
- ]
- })
- .then((user) => {
- let { status } = user.dataValues.id_data || 0;
- if (status === 3) {
- throw new Error(PENDING_APPROVAL_DENY);
- }
- return Promise.all([
- uploadFile(
- `${id}/${ts}-front.${getType(front.mimetype)}`,
- front
- ),
- back
- ? uploadFile(
- `${id}/${ts}-back.${getType(back.mimetype)}`,
- back
- )
- : undefined,
- proof_of_residency
- ? uploadFile(
- `${id}/${ts}-proof_of_residency.${getType(
- proof_of_residency.mimetype
- )}`,
- proof_of_residency
- )
- : undefined
- ]);
- })
- .then((results) => {
- logger.verbose('POST /plugins/kyc/user/upload results', results);
- return storeFilesDataOnDb(
- id,
- data,
- results[0].Location,
- results[1] ? results[1].Location : '',
- results[2] ? results[2].Location: ''
- );
- })
- .then(() => {
- sendEmail(MAILTYPE.USER_VERIFICATION, email, {}, {});
- res.json({ message: 'Success' });
- })
- .catch((err) => {
- logger.error('POST /plugins/kyc/user/upload error', err);
- res.status(400).json({ message: err.message });
- });
-});
-
-app.post('/plugins/kyc/admin/upload', [verifyToken, multerMiddleware], (req, res) => {
- const endpointScopes = ['admin', 'supervisor'];
- const scopes = req.auth.scopes;
-
- logger.verbose('POST /plugins/kyc/admin/upload auth', req.auth.sub);
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('POST /plugins/kyc/admin/upload error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- let { front, back, proof_of_residency } = req.files;
- if (front) front = front[0];
- if (back) back = back[0];
- if (proof_of_residency) proof_of_residency = proof_of_residency[0];
- const { ...otherData } = req.body;
- const user_id = req.query.user_id;
-
- logger.verbose(
- 'POST /plugins/kyc/admin/upload user_id',
- user_id
- )
-
- if (
- !front &&
- !back &&
- !proof_of_residency &&
- Object.keys(otherData).length === 0
- ) {
- return res.status(400).json({ message: 'Missing fields' });
- }
-
- let invalidType = '';
- if (front && !validMimeType(front.mimetype)) {
- invalidType = 'front';
- } else if (back && !validMimeType(back.mimetype)) {
- invalidType = 'back';
- } else if (
- proof_of_residency &&
- !validMimeType(proof_of_residency.mimetype)
- ) {
- invalidType = 'proof_of_residency';
- }
- if (invalidType) {
- return res
- .status(400)
- .json({ message: `Invalid type ${invalidType} field.` });
- }
-
- const data = { id_data: { provided: true }};
-
- Object.entries(otherData).forEach(([key, field]) => {
- if (field) {
- if (
- key === 'type' ||
- key === 'number' ||
- key === 'issued_date' ||
- key === 'expiration_date'
- ) {
- data.id_data[key] = field;
- }
- }
- });
-
- const ts = Date.now();
-
- findUser({ where: { id: user_id }, attributes: ['id']})
- .then((user) => getImagesData(user.id, 'admin'))
- .then((data) => {
- return Promise.all([
- front
- ? uploadFile(
- `${user_id}/${ts}-front.${getType(front.mimetype)}`,
- front
- )
- : { Location: data.front },
- back
- ? uploadFile(
- `${user_id}/${ts}-back.${getType(back.mimetype)}`,
- back
- )
- : { Location: data.back },
- proof_of_residency
- ? uploadFile(
- `${user_id}/${ts}-proof_of_residency.${getType(
- proof_of_residency.mimetype
- )}`,
- proof_of_residency
- )
- : { Location: data.proof_of_residency }
- ]);
- })
- .then((results) => {
- return storeFilesDataOnDb(
- user_id,
- data,
- results[0] ? results[0].Location : '',
- results[1] ? results[1].Location : '',
- results[2] ? results[2].Location : ''
- );
- })
- .then((user) => {
- return findUserImages({ id: user_id });
- })
- .then((data) => {
- logger.debug('POST /plugins/kyc/admin/upload data', data);
- res.json({ message: 'Success', data });
- })
- .catch((err) => {
- console.log(err);
- logger.error('POST /plugins/kyc/admin/upload err', err.message);
- res.status(400).json({ message: err.message });
- });
-});
-
-app.get('/plugins/kyc/id', verifyToken, (req, res) => {
- const endpointScopes = ['admin', 'supervisor', 'support', 'kyc'];
- const scopes = req.auth.scopes;
-
- logger.verbose('GET /plugins/kyc/id auth', req.auth.sub);
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('GET /plugins/kyc/id error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- const { email, id } = req.query;
- const where = {};
- if (id) {
- where.id = id;
- } else if (email) {
- where.email = email;
- } else {
- return res
- .status(400)
- .json({ message: ID_EMAIL_REQUIRED });
- }
-
- findUserImages(where)
- .then(({ data }) => {
- logger.debug('GET /plugins/kyc/id data', data);
- res.json(data);
- })
- .catch((err) => {
- logger.error('GET /plugins/kyc/id auth', err.message);
- res.status(400).json({ message: err.message });
- });
-});
-
-app.post('/plugins/kyc/id/verify', [verifyToken, bodyParser.json()], (req, res) => {
- const endpointScopes = ['admin', 'supervisor', 'support', 'kyc'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'POST /plugins/kyc/id/verify auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('POST /plugins/kyc/id/verify error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- const { user_id } = req.body;
-
- logger.verbose(
- 'POST /plugins/kyc/id/verify user_id',
- user_id
- );
-
- findUser({
- where: {
- id: user_id
- },
- attributes: ['id', 'id_data']
- })
- .then((user) => {
- return approveDocuments(user);
- })
- .then((user) => {
- const data = {};
- data.id_data = user.id_data;
- logger.debug(
- 'POST /plugins/kyc/id/verify data',
- data
- );
- res.json(data);
- })
- .catch((err) => {
- logger.error(
- 'POST /plugins/kyc/id/verify error',
- err.message
- );
- res.status(err.status || 400).json({ message: err.message });
- });
-});
-
-app.post('/plugins/kyc/id/revoke', [verifyToken, bodyParser.json()], (req, res) => {
- const endpointScopes = ['admin', 'supervisor', 'support', 'kyc'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'POST /plugins/kyc/id/revoke auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('POST /plugins/kyc/id/revoke error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- const { user_id } = req.body;
- const { message } = req.body || DEFAULT_REJECTION_NOTE;
-
- logger.verbose(
- 'POST /plugins/kyc/id/revoke body',
- user_id,
- message
- );
-
- findUser({
- where: {
- id: user_id
- },
- attributes: ['id', 'email', 'id_data', 'settings']
- })
- .then((user) => {
- return revokeDocuments(user, message);
- })
- .then((user) => {
- const { email } = user.dataValues;
- const emailData = { type: 'id', message };
- const data = {};
- data.id_data = user.id_data;
- sendEmail(
- MAILTYPE.USER_VERIFICATION_REJECT,
- email,
- emailData,
- user.settings
- );
- logger.debug(
- 'POST /plugins/kyc/id/revoke data',
- data
- );
- res.json(data);
- })
- .catch((err) => {
- logger.error(
- 'POST /plugins/kyc/id/revple error',
- err.message
- );
- res.status(err.status || 400).json({ message: err.message });
- });
-});
\ No newline at end of file
diff --git a/plugins/kyc/messages.js b/plugins/kyc/messages.js
deleted file mode 100644
index a53d8fd462..0000000000
--- a/plugins/kyc/messages.js
+++ /dev/null
@@ -1,8 +0,0 @@
-'use strict';
-
-exports.SMS_INVALID_PHONE = 'Invalid mobile phone number';
-exports.DEFAULT_REJECTION_NOTE = 'Unspecified';
-exports.ID_EMAIL_REQUIRED = 'Missing parameters. ID and email required';
-exports.PENDING_APPROVAL_DENY = 'You are not allowed to upload a document while its pending or approved';
-exports.ERROR_CHANGE_USER_INFO = 'You are not allowed to change your information';
-exports.IMAGE_NOT_FOUND = 'ID image not found';
\ No newline at end of file
diff --git a/plugins/kyc/package-lock.json b/plugins/kyc/package-lock.json
deleted file mode 100644
index 3aedc9f0db..0000000000
--- a/plugins/kyc/package-lock.json
+++ /dev/null
@@ -1,314 +0,0 @@
-{
- "name": "kyc",
- "version": "0.1.0",
- "lockfileVersion": 1,
- "requires": true,
- "dependencies": {
- "append-field": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
- "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY="
- },
- "awesome-phonenumber": {
- "version": "2.2.5",
- "resolved": "https://registry.npmjs.org/awesome-phonenumber/-/awesome-phonenumber-2.2.5.tgz",
- "integrity": "sha512-CHVEWEtXhaUB4ZGki/MQOlxK9wX+x3rw0/OARxB/srJTBP7b8nZjuE69WKQIUmciYdYGP2qywFPyubewJnFLbQ=="
- },
- "aws-sdk": {
- "version": "2.205.0",
- "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.205.0.tgz",
- "integrity": "sha1-GpNzAlPivgJ6S9OvkkjL2gVz3oA=",
- "requires": {
- "buffer": "4.9.1",
- "events": "^1.1.1",
- "jmespath": "0.15.0",
- "querystring": "0.2.0",
- "sax": "1.2.1",
- "url": "0.10.3",
- "uuid": "3.1.0",
- "xml2js": "0.4.17",
- "xmlbuilder": "4.2.1"
- }
- },
- "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=="
- },
- "buffer": {
- "version": "4.9.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
- "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
- "requires": {
- "base64-js": "^1.0.2",
- "ieee754": "^1.1.4",
- "isarray": "^1.0.0"
- }
- },
- "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=="
- },
- "busboy": {
- "version": "0.2.14",
- "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz",
- "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=",
- "requires": {
- "dicer": "0.2.5",
- "readable-stream": "1.1.x"
- }
- },
- "concat-stream": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
- "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
- "requires": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^2.2.2",
- "typedarray": "^0.0.6"
- },
- "dependencies": {
- "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",
- "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"
- }
- },
- "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"
- }
- }
- }
- },
- "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="
- },
- "dicer": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz",
- "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=",
- "requires": {
- "readable-stream": "1.1.x",
- "streamsearch": "0.1.2"
- }
- },
- "ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
- },
- "events": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
- "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ="
- },
- "ieee754": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
- "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
- },
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
- },
- "jmespath": {
- "version": "0.15.0",
- "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz",
- "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc="
- },
- "lodash": {
- "version": "4.17.19",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
- "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ=="
- },
- "media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
- },
- "mime-db": {
- "version": "1.43.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
- "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ=="
- },
- "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"
- }
- },
- "minimist": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
- "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
- },
- "mkdirp": {
- "version": "0.5.5",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
- "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
- "requires": {
- "minimist": "^1.2.5"
- }
- },
- "multer": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz",
- "integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==",
- "requires": {
- "append-field": "^1.0.0",
- "busboy": "^0.2.11",
- "concat-stream": "^1.5.2",
- "mkdirp": "^0.5.1",
- "object-assign": "^4.1.1",
- "on-finished": "^2.3.0",
- "type-is": "^1.6.4",
- "xtend": "^4.0.0"
- }
- },
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
- },
- "on-finished": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
- "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
- "requires": {
- "ee-first": "1.1.1"
- }
- },
- "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=="
- },
- "punycode": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
- "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
- },
- "querystring": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
- "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA="
- },
- "readable-stream": {
- "version": "1.1.14",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
- "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
- },
- "dependencies": {
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
- }
- }
- },
- "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=="
- },
- "sax": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz",
- "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o="
- },
- "streamsearch": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz",
- "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo="
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
- },
- "type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "requires": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- }
- },
- "typedarray": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
- },
- "url": {
- "version": "0.10.3",
- "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz",
- "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=",
- "requires": {
- "punycode": "1.3.2",
- "querystring": "0.2.0"
- }
- },
- "util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
- },
- "uuid": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
- "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g=="
- },
- "xml2js": {
- "version": "0.4.17",
- "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz",
- "integrity": "sha1-F76T6q4/O3eTWceVtBlwWogX6Gg=",
- "requires": {
- "sax": ">=0.6.0",
- "xmlbuilder": "^4.1.0"
- }
- },
- "xmlbuilder": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz",
- "integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=",
- "requires": {
- "lodash": "^4.0.0"
- }
- },
- "xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
- }
- }
-}
diff --git a/plugins/kyc/package.json b/plugins/kyc/package.json
deleted file mode 100644
index c57c4be570..0000000000
--- a/plugins/kyc/package.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "kyc",
- "version": "0.1.0",
- "dependencies": {
- "aws-sdk": "2.205.0",
- "multer": "1.4.2",
- "awesome-phonenumber": "2.2.5"
- }
-}
diff --git a/plugins/kyc/s3.js b/plugins/kyc/s3.js
deleted file mode 100644
index 44bc7abf9d..0000000000
--- a/plugins/kyc/s3.js
+++ /dev/null
@@ -1,49 +0,0 @@
-'use strict';
-
-const aws = require('aws-sdk');
-const { GET_SECRETS } = require('../../constants');
-
-const generateBuckets = (bucketsString = '') => {
- const bucketsSplit = bucketsString
- .split(',')
- .map((bucketString) => bucketString.split(':'));
- const buckets = {};
-
- bucketsSplit.forEach(([bucketName, bucketRegion]) => {
- buckets[bucketName] = {
- region: bucketRegion,
- signatureVersion: 'v4'
- };
- });
-
- return buckets;
-};
-
-const credentials = () => {
- return {
- write: {
- accessKeyId: GET_SECRETS().plugins.s3.key.write,
- secretAccessKey: GET_SECRETS().plugins.s3.secret.write
- },
- read: {
- accessKeyId: GET_SECRETS().plugins.s3.key.read,
- secretAccessKey: GET_SECRETS().plugins.s3.secret.read
- },
- buckets: generateBuckets(GET_SECRETS().plugins.s3.id_docs_bucket)
- }
-};
-
-const write = (bucketName) => {
- aws.config.update(credentials().write);
- return new aws.S3(credentials().buckets[bucketName]);
-};
-
-const read = (bucketName) => {
- aws.config.update(credentials().read);
- return new aws.S3(credentials().buckets[bucketName]);
-};
-
-module.exports = {
- write,
- read
-};
diff --git a/plugins/package-lock.json b/plugins/package-lock.json
deleted file mode 100644
index 3b4e558389..0000000000
--- a/plugins/package-lock.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "plugins",
- "version": "0.1.0",
- "lockfileVersion": 1,
- "requires": true,
- "dependencies": {
- "cors": {
- "version": "2.8.5",
- "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
- "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
- "requires": {
- "object-assign": "^4",
- "vary": "^1"
- }
- },
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
- },
- "vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
- }
- }
-}
diff --git a/plugins/package.json b/plugins/package.json
deleted file mode 100644
index 7060e34955..0000000000
--- a/plugins/package.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "name": "plugins",
- "version": "0.1.0",
- "dependencies": {
- "cors": "2.8.5"
- }
-}
diff --git a/plugins/sms/helpers.js b/plugins/sms/helpers.js
deleted file mode 100644
index 789fda1e98..0000000000
--- a/plugins/sms/helpers.js
+++ /dev/null
@@ -1,149 +0,0 @@
-'use strict';
-
-const redis = require('../../db/redis').duplicate();
-const otp = require('otp');
-const Promise = require('bluebird');
-const PhoneNumber = require('awesome-phonenumber');
-const {
- SMS_CODE_KEY,
- SMS_CODE_EXPIRATION_TIME
-} = require('../constants');
-const { GET_CONFIGURATION } = require('../../constants');
-const {
- SMS_ERROR,
- SMS_PHONE_DONT_MATCH,
- SMS_CODE_INVALID,
- SMS_CODE_EXPIRED,
- INVALID_PHONE_NUMBER
-} = require('./messages');
-
-const DEFAULT_LANGUAGE = () => GET_CONFIGURATION().constants.defaults.language;
-const OTP_NAME = () => GET_CONFIGURATION().constants.api_name;
-const sns = () => require('./sns')();
-
-const generateUserKey = (user_id) => `${SMS_CODE_KEY}:${user_id}`;
-
-const createSMSCode = () => {
- return generateOtp();
-}
-
-const generateOtp = (secret) => {
- const options = {
- name: OTP_NAME(),
- secret
- };
-
- const totp = otp(options).totp();
- return totp;
-};
-
-const storeSMSCode = (user_id, phone, code) => {
- const userKey = generateUserKey(user_id);
- const data = {
- phone,
- code
- };
-
- return redis.setAsync(
- userKey,
- JSON.stringify(data),
- 'EX',
- SMS_CODE_EXPIRATION_TIME
- );
-};
-
-const checkSMSCode = (user_id, phone, code) => {
- const userKey = generateUserKey(user_id);
- return redis
- .getAsync(userKey)
- .then((data) => {
- if (!data) {
- throw new Error(SMS_CODE_EXPIRED);
- }
- return JSON.parse(data);
- })
- .then((data) => {
- if (data.phone !== phone) {
- throw new Error(SMS_PHONE_DONT_MATCH);
- } else if (data.code !== code) {
- throw new Error(SMS_CODE_INVALID);
- }
- return data;
- });
-};
-
-const deleteSMSCode = (user_id) => {
- const userKey = generateUserKey(user_id);
- return redis.delAsync(userKey);
-};
-
-const sendAwsSMS = (phoneNumber, message) => {
- const params = {
- Message: message,
- MessageStructure: 'string',
- PhoneNumber: phoneNumber
- };
-
- return new Promise((resolve, reject) => {
- sns().publish(params, (err, data) => {
- if (err) {
- const error = new Error(SMS_ERROR);
- error.statusCode = 400;
- return reject(error);
- }
- return resolve(data);
- });
- });
-};
-
-const sendSMS = (number = '', data = {}) => {
- const phoneNumber = new PhoneNumber(number);
-
- if (!phoneNumber.isValid()) {
- return Promise.resolve(INVALID_PHONE_NUMBER);
- } else {
- const message = data.message;
- return sendAwsSMS(phoneNumber.getNumber(), message);
- }
-};
-
-const sendSMSDeposit = (
- type,
- currency,
- phoneNumber,
- amount,
- timestamp,
- language = DEFAULT_LANGUAGE()
-) => {
- const { SMS } = require(`../../mail/strings/${language}`);
- let message;
- if (type === 'deposit' || type === 'withdrawal') {
- message = SMS[type](currency, amount);
- } else {
- throw new Error(`Invalid type ${type}`);
- }
-
- const data = {
- message
- };
- return sendSMS(phoneNumber, data).catch((err) => {
- return;
- });
-};
-
-const updateUserPhoneNumber = (user, phone_number, options = {}) => {
- return user.update(
- { phone_number },
- { fields: ['phone_number'], ...options }
- );
-};
-
-module.exports = {
- createSMSCode,
- storeSMSCode,
- checkSMSCode,
- deleteSMSCode,
- sendSMS,
- sendSMSDeposit,
- updateUserPhoneNumber
-}
\ No newline at end of file
diff --git a/plugins/sms/index.js b/plugins/sms/index.js
deleted file mode 100644
index f9150c5cdf..0000000000
--- a/plugins/sms/index.js
+++ /dev/null
@@ -1,193 +0,0 @@
-'use strict';
-
-const app = require('../index');
-const { verifyToken, checkScopes } = require('../helpers/auth');
-const { findUser } = require('../helpers/user');
-const PhoneNumber = require('awesome-phonenumber');
-const bodyParser = require('body-parser');
-const { createSMSCode, storeSMSCode, checkSMSCode, deleteSMSCode, sendSMS, updateUserPhoneNumber } = require('./helpers');
-const { logger, updatePluginConstant, maskSecrets } = require('../helpers/common');
-const { NOT_AUTHORIZED } = require('../helpers/messages');
-const {
- SMS_INVALID_PHONE,
- SMS_SUCCESS,
- PHONE_VERIFIED
-} = require('./messages');
-const { GET_CONFIGURATION } = require('../../constants');
-const DEFAULT_LANGUAGE = () => GET_CONFIGURATION().constants.defaults.language;
-const SMS = () => require('../../mail/strings').languageFile(DEFAULT_LANGUAGE()).SMS;
-const { GET_SECRETS } = require('../../constants');
-
-app.get('/plugins/sms/constant', verifyToken, (req, res) => {
- const endpointScopes = ['admin', 'tech'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'GET /plugins/sms/constant auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('GET /plugins/sms/constant error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- try {
- res.json(maskSecrets('sns', GET_SECRETS().plugins.sns) || {});
- } catch (err) {
- res.status(400).json({ message: err.message });
- }
-});
-
-app.put('/plugins/sms/constant', [verifyToken, bodyParser.json()], (req, res) => {
- const endpointScopes = ['admin', 'tech'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'PUT /plugins/sms/constant auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('PUT /plugins/sms/constant error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- if (req.body.length === 0) {
- logger.error('PUT /plugins/sms/constant error', 'Must provide key to update');
- return res.status(400).json({ message: 'Must provide key to update' });
- }
-
- logger.info(
- 'PUT /plugins/sms/constant body',
- req.body
- );
-
- updatePluginConstant('sns', req.body)
- .then((data) => {
- res.json(data);
- })
- .catch((err) => {
- res.status(400).json({ message: err.message });
- });
-});
-
-app.get('/plugins/sms/verify', verifyToken, (req, res) => {
- const endpointScopes = ['user'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'GET /sms/verify auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('GET /plugins/sms/verify error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- const phoneNumber = new PhoneNumber(req.query.phone);
- const { id } = req.auth.sub;
-
- if (!phoneNumber.isValid()) {
- logger.error(
- 'GET /sms/verify not valid phone number',
- req.query.phone
- );
- return res.status(400).json({ message: SMS_INVALID_PHONE });
- }
-
- const phone = phoneNumber.getNumber();
- const code = createSMSCode();
-
- logger.verbose(
- 'GET /sms/verify body',
- id,
- req.query.phone,
- code
- );
-
- sendSMS(phone, {
- message: SMS().verificationCode(code)
- })
- .then((data) => {
- return storeSMSCode(id, phone, code);
- })
- .then((data) => {
- logger.debug(
- 'GET /sms/verify data',
- data
- );
- res.json({ message: SMS_SUCCESS });
- })
- .catch((error) => {
- logger.error(
- 'GET /sms/verify error',
- error.message
- );
- return res.status(error.statusCode || 400).json({ message: error.message });
- });
-});
-
-app.post('/plugins/sms/verify', [verifyToken, bodyParser.json()], (req, res) => {
- const endpointScopes = ['user'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'POST /sms/verify auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('POST /plugins/sms/verify error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- const { id } = req.auth.sub;
- const { code } = req.body;
- const phoneNumber = new PhoneNumber(req.body.phone);
-
- if (!phoneNumber.isValid()) {
- logger.error(
- 'POST /sms/verify not valid phone number',
- req.query.phone
- );
- return res.status(400).json({ message: SMS_INVALID_PHONE });
- }
-
- const phone = phoneNumber.getNumber();
-
- logger.verbose(
- 'POST /sms/verify body',
- id,
- req.query.phone,
- code
- );
-
- checkSMSCode(id, phone, code)
- .then((data) => {
- return findUser({
- where: { id }, attributes: ['id', 'phone_number']
- })
- })
- .then((user) => {
- return updateUserPhoneNumber(user, phone);
- })
- .then(() => {
- return deleteSMSCode(id);
- })
- .then((data) => {
- logger.debug(
- 'POST /sms/verify data',
- data
- );
- res.json({ message: PHONE_VERIFIED });
- })
- .catch((error) => {
- logger.error(
- 'POST /sms/verify error',
- error.message
- );
- return res.status(error.statusCode || 400).json({ message: error.message });
- });
-});
\ No newline at end of file
diff --git a/plugins/sms/messages.js b/plugins/sms/messages.js
deleted file mode 100644
index dd9b997238..0000000000
--- a/plugins/sms/messages.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-
-exports.SMS_ERROR = 'Error sending SMS';
-exports.SMS_PHONE_DONT_MATCH = 'The phone number provided is incorrect';
-exports.SMS_CODE_INVALID = 'The code provided is invalid';
-exports.SMS_CODE_EXPIRED = 'The code provided has expired or has been used';
-exports.INVALID_PHONE_NUMBER = 'Invalid phone number';
-exports.SMS_INVALID_PHONE = 'Invalid mobile phone number';
-exports.SMS_SUCCESS = 'SMS has been sent';
-exports.PHONE_VERIFIED = 'Phone number has been verified';
diff --git a/plugins/sms/package-lock.json b/plugins/sms/package-lock.json
deleted file mode 100644
index ef59f6e127..0000000000
--- a/plugins/sms/package-lock.json
+++ /dev/null
@@ -1,115 +0,0 @@
-{
- "name": "sms",
- "version": "0.1.0",
- "lockfileVersion": 1,
- "requires": true,
- "dependencies": {
- "awesome-phonenumber": {
- "version": "2.2.5",
- "resolved": "https://registry.npmjs.org/awesome-phonenumber/-/awesome-phonenumber-2.2.5.tgz",
- "integrity": "sha512-CHVEWEtXhaUB4ZGki/MQOlxK9wX+x3rw0/OARxB/srJTBP7b8nZjuE69WKQIUmciYdYGP2qywFPyubewJnFLbQ=="
- },
- "aws-sdk": {
- "version": "2.205.0",
- "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.205.0.tgz",
- "integrity": "sha1-GpNzAlPivgJ6S9OvkkjL2gVz3oA=",
- "requires": {
- "buffer": "4.9.1",
- "events": "^1.1.1",
- "jmespath": "0.15.0",
- "querystring": "0.2.0",
- "sax": "1.2.1",
- "url": "0.10.3",
- "uuid": "3.1.0",
- "xml2js": "0.4.17",
- "xmlbuilder": "4.2.1"
- }
- },
- "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=="
- },
- "buffer": {
- "version": "4.9.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
- "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
- "requires": {
- "base64-js": "^1.0.2",
- "ieee754": "^1.1.4",
- "isarray": "^1.0.0"
- }
- },
- "events": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
- "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ="
- },
- "ieee754": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
- "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
- },
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
- },
- "jmespath": {
- "version": "0.15.0",
- "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz",
- "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc="
- },
- "lodash": {
- "version": "4.17.19",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
- "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ=="
- },
- "punycode": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
- "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
- },
- "querystring": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
- "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA="
- },
- "sax": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz",
- "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o="
- },
- "url": {
- "version": "0.10.3",
- "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz",
- "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=",
- "requires": {
- "punycode": "1.3.2",
- "querystring": "0.2.0"
- }
- },
- "uuid": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
- "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g=="
- },
- "xml2js": {
- "version": "0.4.17",
- "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz",
- "integrity": "sha1-F76T6q4/O3eTWceVtBlwWogX6Gg=",
- "requires": {
- "sax": ">=0.6.0",
- "xmlbuilder": "^4.1.0"
- }
- },
- "xmlbuilder": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz",
- "integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=",
- "requires": {
- "lodash": "^4.0.0"
- }
- }
- }
-}
diff --git a/plugins/sms/package.json b/plugins/sms/package.json
deleted file mode 100644
index 126ee8c188..0000000000
--- a/plugins/sms/package.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "name": "sms",
- "version": "0.1.0",
- "dependencies": {
- "awesome-phonenumber": "2.43.0",
- "aws-sdk": "2.205.0"
- }
-}
diff --git a/plugins/sms/sns.js b/plugins/sms/sns.js
deleted file mode 100644
index 199cd0394a..0000000000
--- a/plugins/sms/sns.js
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-
-const aws = require('aws-sdk');
-const { GET_SECRETS } = require('../../constants');
-
-const credentials = () => {
- return {
- accessKeyId: GET_SECRETS().plugins.sns.key,
- secretAccessKey: GET_SECRETS().plugins.sns.secret,
- region: GET_SECRETS().plugins.sns.region
- };
-};
-
-const sns = () => {
- aws.config.update(credentials());
- return new aws.SNS();
-};
-
-module.exports = sns;
diff --git a/plugins/vault/crons/checkWithdrawals.js b/plugins/vault/crons/checkWithdrawals.js
deleted file mode 100644
index d1c9b3008a..0000000000
--- a/plugins/vault/crons/checkWithdrawals.js
+++ /dev/null
@@ -1,188 +0,0 @@
-'use strict';
-
-const { Deposit, User, sequelize } = require('../../../db/models');
-const rp = require('request-promise');
-const { each } = require('lodash');
-const { all, delay } = require('bluebird');
-const { GET_CONFIGURATION, GET_SECRETS } = require('../../../constants');
-const { VAULT_ENDPOINT } = require('../../constants');
-const mathjs = require('mathjs');
-const { loggerDeposits } = require('../../../config/logger');
-const VAULT_NAME = () => GET_SECRETS().vault.name;
-const VAULT_KEY = () => GET_SECRETS().vault.key;
-const VAULT_SECRET = () => GET_SECRETS().vault.secret;
-const VAULT_WALLET = (coin) => {
- return `${VAULT_NAME()}-${coin}`;
-};
-const { sendEmail } = require('../../../mail');
-const { MAILTYPE } = require('../../../mail/strings');
-
-const getAmount = (amount, fee) => {
- return mathjs.number(mathjs.subtract(mathjs.fraction(amount), mathjs.fraction(fee)));
-};
-
-const checkWithdrawals = () => {
- return new Promise((resolve, reject) => {
- const vaultCoins = [];
- loggerDeposits.info('/plugins/vault/crons/checkWithdrawals starting');
- each(GET_SECRETS().vault.connected_coins, (coin) => {
- vaultCoins.push({
- currency: coin
- });
- });
- Deposit.findAll({
- where: {
- type: 'withdrawal',
- status: true,
- dismissed: false,
- rejected: false,
- processing: false,
- waiting: true,
- $or: vaultCoins
- },
- include: [
- {
- model: User,
- attributes: ['email', 'settings']
- }
- ]
- })
- .then((withdrawals) => {
- if (withdrawals.length === 0) {
- loggerDeposits.info('/plugins/vault/crons/checkWithdrawals No withdrawals need checking');
- resolve();
- }
- let txids = {};
- each(withdrawals, (withdrawal) => {
- txids[withdrawal.transaction_id]
- ? txids[withdrawal.transaction_id].push(withdrawal)
- : txids[withdrawal.transaction_id] = [withdrawal];
- });
- return all(Object.keys(txids).map((txid, i) => {
- const option = {
- method: 'GET',
- headers: {
- key: VAULT_KEY(),
- secret: VAULT_SECRET()
- },
- qs: {
- txid
- },
- uri: `${VAULT_ENDPOINT}/wallet/${VAULT_WALLET(txids[txid][0].currency)}/transactions`,
- json: true
- };
- return delay(500 * i)
- .then(() => {
- return rp(option);
- })
- .then((tx) => {
- if (tx.data[0]) {
- if (!tx.data[0].is_rejected) {
- loggerDeposits.info('/plugins/vault/crons/checkWithdrawals checkTransaction', `Transaction ${txid} was confirmed`);
- return sequelize.transaction((transaction) => {
- return all(txids[txid].map((withdrawal) => {
- return withdrawal.update(
- {
- waiting: false
- },
- {
- attributes: ['waiting'],
- transaction,
- returning: true
- }
- )
- .then((data) => {
- return {
- success: true,
- status: true,
- data
- };
- });
- }));
- });
- } else {
- loggerDeposits.info('/plugins/vault/crons/checkWithdrawals checkTransaction', `Transaction ${txid} was rejected`);
- return {
- success: true,
- status: false,
- info: {
- type: 'Vault Withdrawal Rejected',
- data: {
- description: 'This Vault withdrawal was rejected on the blockchain. You can double-check this transaction and proceed to confirm or dismiss the withdrawal through your admin panel.',
- transaction_id: txid,
- withdrawals: txids[txid].map((wd) => wd.dataValues)
- }
- }
- };
- }
- } else {
- loggerDeposits.warn('/plugins/vault/crons/checkWithdrawals checkTransaction', `Transaction ${txid} is not found`);
- return {
- success: false,
- info: {
- type: 'Vault Transaction Not Found',
- data: {
- description: 'This withdrawal was not found in Vault.',
- transaction_id: txid,
- withdrawals: txids[txid].map((wd) => wd.dataValues)
- }
- }
- };
- }
- });
- }));
- })
- .then((results) => {
- return all(results.map((result) => {
- if (Array.isArray(result)) {
- return all(result.map((data) => {
- if (data.success === true && data.status === true) {
- return sendEmail(
- MAILTYPE.WITHDRAWAL,
- data.data.User.email,
- {
- amount: getAmount(data.data.amount, data.data.fee),
- transaction_id: data.data.transaction_id,
- fee: data.data.fee,
- status: true,
- currency: data.data.currency,
- address: data.data.address,
- phoneNumber: data.data.User.phone_number
- },
- data.data.User.settings
- );
- } else if (data.success === true && data.status === false) {
- return sendEmail(
- MAILTYPE.ALERT,
- GET_CONFIGURATION().constants.accounts.admin,
- data.info,
- {}
- );
- }
- }));
- } else if (result.success === false) {
- return sendEmail(
- MAILTYPE.ALERT,
- GET_CONFIGURATION().constants.accounts.admin,
- result.info,
- {}
- );
- } else {
- return;
- }
- }));
- })
- .then(() => {
- loggerDeposits.info('/plugins/vault/crons/checkWithdrawals finished');
- resolve();
- })
- .catch((err) => {
- loggerDeposits.error('plugins/vault/cron/checkWithdrawals catch', err.message);
- reject(err);
- });
- });
-};
-
-module.exports = {
- checkWithdrawals
-};
diff --git a/plugins/vault/crons/lockWithdrawals.js b/plugins/vault/crons/lockWithdrawals.js
deleted file mode 100644
index 88385a4102..0000000000
--- a/plugins/vault/crons/lockWithdrawals.js
+++ /dev/null
@@ -1,102 +0,0 @@
-'use strict';
-
-const { Deposit, User } = require('../../../db/models');
-const { all } = require('bluebird');
-const WAValidator = require('multicoin-address-validator');
-const { loggerDeposits } = require('../../../config/logger');
-const { each } = require('lodash');
-const { GET_CONFIGURATION, GET_SECRETS } = require('../../../constants');
-const { sendEmail } = require('../../../mail');
-const { MAILTYPE } = require('../../../mail/strings');
-
-const checkAddress = (address, symbol, network = 'prod') => {
- if (symbol === 'btc' || symbol === 'bch' || symbol === 'xmr') {
- return WAValidator.validate(address, symbol, network);
- } else if (symbol === 'xrp' || symbol === 'xlm') {
- return WAValidator.validate(address.split(':')[0], symbol, network);
- } else {
- return WAValidator.validate(address, 'eth', network);
- }
-};
-
-const lockWithdrawals = () => {
- return new Promise((resolve, reject) => {
- const vaultCoins = [];
- loggerDeposits.info('/plugins/vault/crons/lockWithdrawals starting');
- each(GET_SECRETS().vault.connected_coins, (coin) => {
- if (GET_CONFIGURATION().coins[coin] && GET_CONFIGURATION().coins[coin].allow_withdrawal) {
- vaultCoins.push({
- currency: coin
- });
- }
- });
- Deposit.findAll({
- where: {
- type: 'withdrawal',
- status: false,
- dismissed: false,
- rejected: false,
- processing: false,
- waiting: false,
- $or: vaultCoins
- },
- include: [
- {
- model: User,
- attributes: ['email', 'settings']
- }
- ]
- })
- .then((withdrawals) => {
- if (withdrawals.length === 0) {
- loggerDeposits.info('/plugins/vault/crons/lockWithdrawals', 'No withdrawals need locking');
- resolve();
- }
- loggerDeposits.debug('/plugins/vault/crons/lockWithdrawals', `Locking ${withdrawals.length} withdrawals`);
- return all(withdrawals.map((withdrawal) => {
- if (checkAddress(withdrawal.address, withdrawal.currency)) {
- return withdrawal.update({ processing: true }, { fields: ['processing'], returning: true })
- .then((result) => {
- loggerDeposits.info('/plugins/vault/crons/lockWithdrawals', `Withdrawal with ID ${withdrawal.id} locked`);
- return;
- })
- .catch((err) => {
- loggerDeposits.error('/plugins/vault/crons/lockWithdrawals', `Error occured while locking ${withdrawal.id}: ${err.message}`);
- return;
- });
- } else {
- return withdrawal.update({ rejected: true }, { fields: ['rejected'], returning: true })
- .then((result) => {
- loggerDeposits.warn('/plugins/vault/crons/lockWithdrawals', `Withdrawal with ID ${withdrawal.id} rejected because of an invalid address`);
- return sendEmail(
- MAILTYPE.INVALID_ADDRESS,
- withdrawal.User.email,
- {
- currency: withdrawal.currency,
- amount: withdrawal.amount,
- address: withdrawal.address
- },
- withdrawal.User.settings
- );
- })
- .catch((err) => {
- loggerDeposits.error('/plugins/vault/crons/lockWithdrawals', `Error occured while locking ${withdrawal.id}: ${err.message}`);
- return;
- });
- }
- }));
- })
- .then(() => {
- loggerDeposits.info('/plugins/vault/crons/lockWithdrawals finished');
- resolve();
- })
- .catch((err) => {
- loggerDeposits.error('plugins/vault/crons/lockWithdrawal catch', err.message);
- reject(err);
- });
- });
-};
-
-module.exports = {
- lockWithdrawals
-};
diff --git a/plugins/vault/crons/processWithdrawals.js b/plugins/vault/crons/processWithdrawals.js
deleted file mode 100644
index 292d82d9a1..0000000000
--- a/plugins/vault/crons/processWithdrawals.js
+++ /dev/null
@@ -1,413 +0,0 @@
-'use strict';
-
-const { Deposit, sequelize, User, Sequelize } = require('../../../db/models');
-const rp = require('request-promise');
-const { each } = require('lodash');
-const { all, delay } = require('bluebird');
-const { GET_CONFIGURATION, GET_SECRETS } = require('../../../constants');
-const { ERC_TOKENS, VAULT_ENDPOINT } = require('../../constants');
-const moment = require('moment');
-const { loggerDeposits } = require('../../../config/logger');
-const mathjs = require('mathjs');
-const VAULT_NAME = () => GET_SECRETS().vault.name;
-const VAULT_KEY = () => GET_SECRETS().vault.key;
-const VAULT_SECRET = () => GET_SECRETS().vault.secret;
-const VAULT_WALLET = (coin) => {
- return `${VAULT_NAME()}-${coin}`;
-};
-const { sendEmail } = require('../../../mail');
-const { MAILTYPE } = require('../../../mail/strings');
-
-const getAmount = (amount, fee) => {
- return mathjs.number(mathjs.subtract(mathjs.fraction(amount), mathjs.fraction(fee)));
-};
-
-const isErc = (token) => {
- return ERC_TOKENS.includes(token);
-};
-
-const processWithdrawals = () => {
- return new Promise((resolve, reject) => {
- const vaultCoins = [];
- loggerDeposits.info('/plugins/vault/crons/processWithdrawals starting');
- const currentMinute = parseInt(moment().format('mm'));
- each(GET_SECRETS().vault.connected_coins, (coin) => {
- if (coin === 'xrp' || coin === 'xlm' || isErc(coin)) {
- // XRP style/ERC20 tokens are processed every minute
- vaultCoins.push({
- currency: coin
- });
- } else {
- // Every other coin is processed every 5 minutes
- if (currentMinute % 5 === 0) {
- vaultCoins.push({
- currency: coin
- });
- }
- }
- });
- Deposit.findAll({
- where: {
- type: 'withdrawal',
- status: false,
- dismissed: false,
- rejected: false,
- processing: true,
- waiting: false,
- $or: vaultCoins
- },
- include: [
- {
- model: User,
- attributes: ['email', 'settings', 'phone_number']
- }
- ]
- })
- .then(async (withdrawals) => {
- if (withdrawals.length === 0) {
- loggerDeposits.info('/plugins/vault/crons/processWithdrawals', 'No withdrawals need processing');
- resolve();
- }
- const addresses = [];
- const filteredWithdrawals = [];
-
- // Filter out same address withdrawals for btc and bch
- for (let withdrawal of withdrawals) {
- if (withdrawal.currency === 'btc' || withdrawal.currency === 'bch') {
- if (!addresses.includes(withdrawal.address)) {
- addresses.push(withdrawal.address);
- filteredWithdrawals.push(withdrawal);
- } else {
- continue;
- }
- } else {
- filteredWithdrawals.push(withdrawal);
- }
- }
-
- let transaction = await sequelize.transaction({isolationLevel: Sequelize.Transaction.ISOLATION_LEVELS.SERIALIZABLE});
- const waitingWithdrawals = [];
-
- // Set all withdrawals to waiting
- for (let withdrawal of filteredWithdrawals) {
- try {
- let wd = await withdrawal.update(
- {
- waiting: true
- },
- {
- fields: ['waiting'],
- transaction,
- returning: true
- }
- );
- waitingWithdrawals.push(wd);
- } catch (err) {
- await transaction.rollback();
- reject(err.message);
- throw new Error(err);
- }
- }
- await transaction.commit();
- return waitingWithdrawals;
- })
- .then((withdrawals) => {
- const btcWithdrawals = [];
- const bchWithdrawals = [];
- const options = [];
- each(withdrawals, (withdrawal) => {
- if (withdrawal.currency === 'btc') {
- btcWithdrawals.push(withdrawal);
- } else if (withdrawal.currency === 'bch') {
- bchWithdrawals.push(withdrawal);
- } else {
- const option = {
- data: {
- method: 'POST',
- headers: {
- key: VAULT_KEY(),
- secret: VAULT_SECRET()
- },
- body: {
- data: {
- address: withdrawal.address,
- amount: getAmount(withdrawal.amount, withdrawal.fee)
- }
- },
- uri: `${VAULT_ENDPOINT}/wallet/${VAULT_WALLET(withdrawal.currency)}/withdraw/simple`,
- json: true
- },
- dbWithdrawals: [withdrawal]
- };
- if (withdrawal.currency === 'xrp') {
- const [xrpAddress, xrpTag] = withdrawal.address.split(':');
- option.data.body.data.address = xrpAddress;
- option.data.body.data.meta = { tag: xrpTag };
- } else if (withdrawal.currency === 'xlm') {
- const [xlmAddress, xlmTag] = withdrawal.address.split(':');
- option.data.body.data.address = xlmAddress;
- option.data.body.data.meta = { memo: xlmTag };
- }
- options.push(option);
- }
- });
- if (btcWithdrawals.length !== 0) {
- options.push({
- data: {
- method: 'POST',
- headers: {
- key: VAULT_KEY(),
- secret: VAULT_SECRET()
- },
- body: {
- data: btcWithdrawals.map((withdrawal) => {
- return {
- address: withdrawal.address,
- amount: getAmount(withdrawal.amount, withdrawal.fee)
- };
- })
- },
- uri: `${VAULT_ENDPOINT}/wallet/${VAULT_WALLET('btc')}/withdraw/batch`,
- json: true,
- },
- dbWithdrawals: btcWithdrawals
- });
- }
- if (bchWithdrawals.length !== 0) {
- options.push({
- data: {
- method: 'POST',
- headers: {
- key: VAULT_KEY(),
- secret: VAULT_SECRET()
- },
- body: {
- data: bchWithdrawals.map((withdrawal) => {
- return {
- address: withdrawal.address,
- amount: getAmount(withdrawal.amount, withdrawal.fee)
- };
- })
- },
- uri: `${VAULT_ENDPOINT}/wallet/${VAULT_WALLET('bch')}/withdraw/batch`,
- json: true
- },
- dbWithdrawals: bchWithdrawals
- });
- }
- return all(options.map((option, i) => {
- return delay(2000 * i)
- .then(async () => {
- let transaction = await sequelize.transaction({isolationLevel: Sequelize.Transaction.ISOLATION_LEVELS.SERIALIZABLE});
- const dbWithdrawals = [];
-
- // Set status to true and processing and waiting to false first
- for(let withdrawal of option.dbWithdrawals) {
- try {
- let wd = await withdrawal.update(
- {
- processing: false,
- waiting: false,
- status: true
- },
- {
- fields: ['processing', 'waiting', 'status'],
- transaction,
- returning: true
- }
- );
- dbWithdrawals.push(wd);
- } catch (err) {
- // If error during update, rollback changes
- await transaction.rollback();
- return {
- success: false,
- send: false
- };
- }
- }
- let response;
- try {
- response = await rp(option.data);
- } catch (err) {
- // If request fails, move on to next catch block
- await transaction.rollback();
- throw new Error(err);
- }
- loggerDeposits.info(`/plugins/vault/crons/processWithdrawals ${dbWithdrawals[0].currency} withdrawal successful for withdrawals with id: ${dbWithdrawals.map((wd) => `${wd.id},`)}`);
- await transaction.commit();
- return {
- success: true,
- data: response,
- dbWithdrawals
- };
- })
- .catch(async (err) => {
- loggerDeposits.error('/plugins/vault/crons/processWithdrawals perfromWithdrawal', `${option.dbWithdrawals[0].currency} withdrawal failed: ${err.message}`);
- let transaction = await sequelize.transaction({isolationLevel: Sequelize.Transaction.ISOLATION_LEVELS.SERIALIZABLE});
- const dbWithdrawals = [];
- for (let withdrawal of option.dbWithdrawals) {
- let queryWithdrawal;
-
- // Find withdrawal that failed
- try {
- queryWithdrawal = await Deposit.findOne({
- where: {
- id: withdrawal.dataValues.id
- }
- });
- } catch (err) {
- await transaction.rollback();
- return {
- success: false,
- send: true,
- info: {
- type: 'Failed Withdrawal Waiting State Update Failed',
- data: {
- error: err.message,
- withdrawals: option.dbWithdrawals.map((wd) => wd.dataValues)
- }
- }
- };
- }
-
- // Set processing to false
- try {
- let wd = await queryWithdrawal.update(
- {
- processing: false
- },
- {
- fields: ['processing'],
- transaction,
- returning: true
- }
- );
- dbWithdrawals.push(wd);
- } catch (err) {
- await transaction.rollback();
- return {
- success: false,
- send: true,
- info: {
- type: 'Failed Withdrawal Waiting State Update Failed',
- data: {
- error: err.message,
- withdrawals: option.dbWithdrawals.map((wd) => wd.dataValues)
- }
- }
- };
- }
- }
- await transaction.commit();
- return {
- success: false,
- send: true,
- info: {
- type: 'Vault Withdrawal Failed',
- data: {
- error: err.message,
- withdrawals: dbWithdrawals.map((wd) => wd.dataValues)
- }
- }
- };
- });
- }));
- })
- .then((results) => {
- return all(results.map((result) => {
- if (result.success) {
- return all(result.dbWithdrawals.map((withdrawal) => {
- return withdrawal.update(
- {
- transaction_id: result.data.txid
- },
- {
- fields: ['transaction_id']
- }
- )
- .then((data) => {
- return {
- success: true,
- send: true,
- data: {
- email: withdrawal.User.email,
- amount: getAmount(data.amount, data.fee),
- transaction_id: data.transaction_id,
- fee: data.fee,
- status: true,
- currency: data.currency,
- address: data.address,
- phoneNumber: withdrawal.User.phone_number,
- settings: withdrawal.User.settings
- }
- };
- });
- }))
- .catch((err) => {
- loggerDeposits.error('/plugins/vault/crons/processWithdrawals txid update', `Failed to update successful ${result.dbWithdrawals[0].currency} withdrawal's TXID. ID:${result.dbWithdrawals.map((wd) => wd.id)}, TXID:${result.data.txid}, Error: ${err.message}`);
- return {
- success: false,
- send: true,
- info: {
- type: 'Successful Withdrawal Database TXID Update Failed',
- data: {
- error: err.message,
- transaction_id: result.data.txid,
- withdrawals: result.dbWithdrawals.map((wd) => wd.dataValues)
- }
- }
- };
- });
- } else {
- return result;
- }
- }));
- })
- .then((results) => {
- return all(results.map((result) => {
- if (result.success === false && result.send === true) {
- sendEmail(
- MAILTYPE.ALERT,
- GET_CONFIGURATION().constants.accounts.admin,
- result.info,
- {}
- );
- return;
- } else if (Array.isArray(result)) {
- each(result, (wd) => {
- if (wd.success === true && wd.send === true) {
- sendEmail(
- MAILTYPE.WITHDRAWAL,
- wd.data.email,
- {
- amount: wd.data.amount,
- transaction_id: wd.data.transaction_id,
- fee: wd.data.fee,
- status: true,
- currency: wd.data.currency,
- address: wd.data.address,
- phoneNumber: wd.data.phone_number
- },
- wd.data.settings
- );
- }
- });
- return;
- }
- }));
- })
- .then(() => {
- loggerDeposits.info('/plugins/vault/crons/processWithdrawals finished');
- resolve();
- })
- .catch((err) => {
- loggerDeposits.error('plugins/vault/crons/processWithdrawals catch', err.message);
- reject(err);
- });
- });
-};
-
-module.exports = {
- processWithdrawals
-};
diff --git a/plugins/vault/helpers.js b/plugins/vault/helpers.js
deleted file mode 100644
index 747f249b8d..0000000000
--- a/plugins/vault/helpers.js
+++ /dev/null
@@ -1,178 +0,0 @@
-'use strict';
-
-const { API_HOST, GET_CONFIGURATION, GET_SECRETS } = require('../../constants');
-const { VAULT_ENDPOINT } = require('../constants');
-const rp = require('request-promise');
-const { intersection, union, each } = require('lodash');
-const WEBHOOK_URL = (coin) => `${API_HOST}/v1/deposit/${coin}`;
-const WALLET_NAME = (name, coin) => `${name}-${coin}`;
-const { all, delay } = require('bluebird');
-const { updatePluginConstant, logger, sleep } = require('../helpers/common');
-const cron = require('node-cron');
-const { processWithdrawals } = require('./crons/processWithdrawals');
-const { lockWithdrawals } = require('./crons/lockWithdrawals');
-const { resolve } = require('bluebird');
-// const { checkWithdrawals } = require('./crons/checkWithdrawals');
-
-const withdrawalCron = async () => {
- const enabledPlugins = GET_CONFIGURATION().constants.plugins.enabled;
- try {
- if (enabledPlugins !== undefined && enabledPlugins.indexOf('vault') !== -1) {
- // await checkWithdrawals();
- // await sleep(1000);
- await lockWithdrawals();
- await sleep(5000);
- await processWithdrawals();
- }
- } catch (err) {
- logger.error('plguins/vault/helpers/withdrawalCron catch', err);
- }
-};
-
-const cronTask = cron.schedule('* * * * *', () => {
- withdrawalCron();
-}, {
- timezone: 'Asia/Seoul'
-});
-
-const updateVaultValues = (name, key, secret, connect = true) => {
- logger.debug('/plugins/vault/helpers updateVaultValues');
- if (name === undefined && key === undefined && secret === undefined) {
- return resolve();
- } else {
- return updatePluginConstant('vault', {
- name: name === undefined ? GET_SECRETS().vault.name : name,
- key: key === undefined ? GET_SECRETS().vault.key : key,
- secret: secret === undefined ? GET_SECRETS().vault.secret : secret,
- connected_coins: connect ? GET_SECRETS().vault.connected_coins : []
- });
- }
-};
-
-const crossCheckCoins = (coins) => {
- logger.debug('/plugins/vault/helpers crossCheckCoins', coins);
- const options = {
- method: 'GET',
- uri: `${VAULT_ENDPOINT}/coins`
- };
-
- return rp(options)
- .then((vaultCoins) => {
- vaultCoins = JSON.parse(vaultCoins);
- const exchangeCoins = coins || Object.keys(GET_CONFIGURATION().coins);
- const validCoins = intersection(exchangeCoins, vaultCoins);
-
- if (validCoins.length === 0) {
- throw new Error(`None of these coins are available in vault: ${exchangeCoins}`);
- } else {
- return validCoins;
- }
- });
-};
-
-const createOrUpdateWallets = (coins) => {
- logger.debug('/plugins/vault/helpers createOrUpdateWallets', coins);
- const vaultConfig = GET_SECRETS().vault;
- return all(
- coins.map((coin, i) => {
- const options = {
- method: 'GET',
- headers: {
- key: vaultConfig.key,
- secret: vaultConfig.secret
- },
- qs: {
- name: WALLET_NAME(vaultConfig.name, coin),
- currency: coin
- },
- uri: `${VAULT_ENDPOINT}/user/wallets`,
- json: true
- };
- return delay((i + 1) * 2500)
- .then(() => rp(options))
- .then(({ data }) => all([ data, delay(1000)]))
- .then(([ data ]) => {
- const wallet = data[0];
- if (!wallet) {
- return createVaultWallet(coin, vaultConfig);
- } else {
- return checkWebhook(wallet, vaultConfig);
- }
- })
- .catch((err) => {
- logger.error('/plugins/vault/helpers createOrUpdateWallets', err.message);
- return {
- error: err.message,
- currency: coin
- };
- });
- })
- )
- .then(async (wallets) => {
- const result = {};
- const connectedCoins = [];
- await each(wallets, (wallet) => {
- result[wallet.currency] = wallet;
- if (!wallet.error) connectedCoins.push(wallet.currency);
- });
- await addVaultCoinConnection(connectedCoins, vaultConfig);
- return result;
- });
-};
-
-const createVaultWallet = (coin, vaultConfig) => {
- logger.debug('/plugins/vault/helpers createVaultWallet', coin);
- const options = {
- method: 'POST',
- headers: {
- key: vaultConfig.key,
- secret: vaultConfig.secret
- },
- body: {
- name: WALLET_NAME(vaultConfig.name, coin),
- currency: coin,
- webhook: WEBHOOK_URL(coin),
- type: 'multi'
- },
- uri: `${VAULT_ENDPOINT}/wallet`,
- json: true
- };
- return rp(options);
-};
-
-const checkWebhook = (wallet, vaultConfig) => {
- logger.debug('/plugins/vault/helpers checkWebhook', wallet.name);
- if (wallet.webhook !== WEBHOOK_URL(wallet.currency)) {
- logger.debug('/plugins/vault/helpers checkWebhook update webhook', wallet.name);
- const options = {
- method: 'PUT',
- headers: {
- key: vaultConfig.key,
- secret: vaultConfig.secret
- },
- body: {
- url: WEBHOOK_URL(wallet.currency)
- },
- uri: `${VAULT_ENDPOINT}/wallet/${wallet.name}/webhook`,
- json: true
- };
- return rp(options);
- } else {
- return wallet;
- }
-};
-
-const addVaultCoinConnection = (coins, vaultConfig) => {
- logger.debug('/plugins/vault/helpers addVaultCoinConnection', coins);
- return updatePluginConstant('vault', {
- ...vaultConfig,
- connected_coins: union(vaultConfig.connected_coins, coins)
- });
-};
-
-module.exports = {
- updateVaultValues,
- crossCheckCoins,
- createOrUpdateWallets,
- cronTask
-};
\ No newline at end of file
diff --git a/plugins/vault/index.js b/plugins/vault/index.js
deleted file mode 100644
index 09e74b3f11..0000000000
--- a/plugins/vault/index.js
+++ /dev/null
@@ -1,136 +0,0 @@
-'use strict';
-
-const app = require('../index');
-const { verifyToken, checkScopes } = require('../helpers/auth');
-const bodyParser = require('body-parser');
-const { logger, isUrl, updatePluginConstant, maskSecrets } = require('../helpers/common');
-const { NOT_AUTHORIZED } = require('../helpers/messages');
-const { updateVaultValues, crossCheckCoins, createOrUpdateWallets, cronTask } = require('./helpers');
-const { API_HOST } = require('../../constants');
-const { GET_SECRETS } = require('../../constants');
-
-cronTask.start();
-
-app.get('/plugins/vault/constant', verifyToken, (req, res) => {
- const endpointScopes = ['admin', 'tech'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'GET /plugins/vault/constant auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('GET /plugins/vault/constant error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- try {
- res.json(maskSecrets('vault', GET_SECRETS().vault) || {});
- } catch (err) {
- res.status(400).json({ message: err.message });
- }
-});
-
-app.put('/plugins/vault/constant', [verifyToken, bodyParser.json()], (req, res) => {
- const endpointScopes = ['admin', 'tech'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'PUT /plugins/vault/constant auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('PUT /plugins/vault/constant error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- if (req.body.length === 0) {
- logger.error('PUT /plugins/vault/constant error', 'Must provide key to update');
- return res.status(400).json({ message: 'Must provide key to update' });
- } else if (req.body.connected_coins) {
- logger.error('PUT /plugins/vault/constant error', 'Cannot update connected_coins');
- return res.status(400).json({ message: 'Cannot update connected_coins' });
- }
-
- logger.info(
- 'PUT /plugins/vault/constant body',
- req.body
- );
-
- updatePluginConstant('vault', req.body)
- .then((data) => {
- res.json(data);
- })
- .catch((err) => {
- res.status(400).json({ message: err.message });
- });
-});
-
-app.post('/plugins/vault/connect', [verifyToken, bodyParser.json()], (req, res) => {
- const endpointScopes = ['admin'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'POST /plugins/vault/connect',
- req.auth.email
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('POST /plugins/vault/connect error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- if (!isUrl(API_HOST)) {
- return res.status(400).json({ message: `Server URL ${API_HOST} is not a valid URL` });
- }
-
- const { name, key, secret, coins } = req.body;
-
- updateVaultValues(name, key, secret)
- .then(() => crossCheckCoins(coins))
- .then((validCoins) => createOrUpdateWallets(validCoins))
- .then((wallets) => {
- logger.debug(
- 'POST /plugins/vault/connect new_connected_coins',
- Object.keys(wallets)
- );
- res.json(wallets);
- })
- .catch((err) => {
- logger.error(
- 'POST /plugins/vault/connect catch',
- err.messsage
- );
- res.status(err.status || 400).json({ message: err.message });
- });
-});
-
-app.get('/plugins/vault/disconnect', verifyToken, (req, res) => {
- const endpointScopes = ['admin'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'GET /plugins/vault/disconnect',
- req.auth.email
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('GET /plugins/vault/disconnect error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- updateVaultValues('', '', '', false)
- .then(() => {
- logger.debug('GET /plugins/vault/disconnect successful');
- res.json({ message: 'Vault disconnected' });
- })
- .catch((err) => {
- logger.error(
- 'GET /plugins/vault/disconnect catch',
- err.message
- );
- res.status(err.status || 400).json({ message: err.message });
- });
-});
\ No newline at end of file
diff --git a/plugins/vault/package-lock.json b/plugins/vault/package-lock.json
deleted file mode 100644
index cb55c8df82..0000000000
--- a/plugins/vault/package-lock.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "vault",
- "version": "0.1.0",
- "lockfileVersion": 1
-}
diff --git a/plugins/vault/package.json b/plugins/vault/package.json
deleted file mode 100644
index 4783cae7a7..0000000000
--- a/plugins/vault/package.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "vault",
- "version": "0.1.0",
- "dependencies": {
- "multicoin-address-validator": "0.4.4",
- "node-cron": "2.0.3",
- "mathjs": "3.20.2"
- }
-}
diff --git a/plugins/xht_fee/index.js b/plugins/xht_fee/index.js
deleted file mode 100644
index c65ad7d632..0000000000
--- a/plugins/xht_fee/index.js
+++ /dev/null
@@ -1,121 +0,0 @@
-'use strict';
-
-const app = require('../index');
-const { verifyToken, checkScopes } = require('../helpers/auth');
-const { findUser } = require('../helpers/user');
-const { logger, updatePluginConstant, maskSecrets } = require('../helpers/common');
-const { NOT_AUTHORIZED } = require('../helpers/messages');
-const bodyParser = require('body-parser');
-const { Balance } = require('../../db/models');
-
-const REQUIRED_XHT = 100;
-
-const { GET_SECRETS } = require('../../constants');
-
-app.get('/plugins/xht_fee/constant', verifyToken, (req, res) => {
- const endpointScopes = ['admin', 'tech'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'GET /plugins/xht_fee/constant auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('GET /plugins/xht_fee/constant error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- try {
- res.json(maskSecrets('xht_fee', GET_SECRETS().plugins.xht_fee) || {});
- } catch (err) {
- res.status(400).json({ message: err.message });
- }
-});
-
-app.put('/plugins/xht_fee/constant', [verifyToken, bodyParser.json()], (req, res) => {
- const endpointScopes = ['admin', 'tech'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'PUT /plugins/xht_fee/constant auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('PUT /plugins/xht_fee/constant error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- if (req.body.length === 0) {
- logger.error('PUT /plugins/xht_fee/constant error', 'Must provide key to update');
- return res.status(400).json({ message: 'Must provide key to update' });
- }
-
- logger.info(
- 'PUT /plugins/xht_fee/constant body',
- req.body
- );
-
- updatePluginConstant('xht_fee', req.body)
- .then((data) => {
- res.json(data);
- })
- .catch((err) => {
- res.status(400).json({ message: err.message });
- });
-});
-
-app.get('/plugins/activate-xht-fee', [verifyToken, bodyParser.json()], (req, res) => {
- const endpointScopes = ['user'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'GET /plugins/activate-xht-fee auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('GET /plugins/activate-xht-fee error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- const email = req.auth.sub.email;
- const id = req.auth.sub.id;
-
- logger.verbose(
- 'GET /plugins/activate-xht-fee',
- id,
- email
- );
-
- findUser({
- where: { id },
- include: [
- {
- model: Balance,
- as: 'balance',
- attributes: {
- exclude: ['id', 'user_id', 'created_at']
- }
- }
- ]
- })
- .then((user) => {
- if (user.custom_fee) {
- throw new Error('XHT fee is already activated');
- }
- if (user.balance_xht < REQUIRED_XHT) {
- throw new Error('Require minimum 100 XHT in your wallet for activating this service');
- }
- return user.update({ custom_fee: true }, { fields: ['custom_fee'], returning: true });
-
- })
- .then((user) => {
- return res.json({ message: 'Success'});
- })
- .catch((err) => {
- logger.error('GET /plugins/activate-xht-fee error', err);
- res.status(400).json({ message: err.message });
- });
-});
\ No newline at end of file
diff --git a/plugins/zendesk/index.js b/plugins/zendesk/index.js
deleted file mode 100644
index 81b996548f..0000000000
--- a/plugins/zendesk/index.js
+++ /dev/null
@@ -1,62 +0,0 @@
-'use strict';
-
-const app = require('../index');
-const { verifyToken, checkScopes } = require('../helpers/auth');
-const { GET_SECRETS } = require('../../constants');
-const { logger, updatePluginConstant, maskSecrets } = require('../helpers/common');
-const { NOT_AUTHORIZED } = require('../helpers/messages');
-const bodyParser = require('body-parser');
-
-app.get('/plugins/zendesk/constant', verifyToken, (req, res) => {
- const endpointScopes = ['admin', 'tech'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'GET /plugins/zendesk/constant auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('GET /plugins/zendesk/constant error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- try {
- res.json(maskSecrets('zendesk', GET_SECRETS().plugins.zendesk) || {});
- } catch (err) {
- res.status(400).json({ message: err.message });
- }
-});
-
-app.put('/plugins/zendesk/constant', [verifyToken, bodyParser.json()], (req, res) => {
- const endpointScopes = ['admin', 'tech'];
- const scopes = req.auth.scopes;
-
- logger.verbose(
- 'PUT /plugins/zendesk/constant auth',
- req.auth.sub
- );
-
- if (!checkScopes(endpointScopes, scopes)) {
- logger.error('PUT /plugins/zendesk/constant error', NOT_AUTHORIZED);
- return res.status(400).json({ message: NOT_AUTHORIZED });
- }
-
- if (req.body.length === 0) {
- logger.error('PUT /plugins/zendesk/constant error', 'Must provide key to update');
- return res.status(400).json({ message: 'Must provide key to update' });
- }
-
- logger.info(
- 'PUT /plugins/zendesk/constant body',
- req.body
- );
-
- updatePluginConstant('zendesk', req.body)
- .then((data) => {
- res.json(data);
- })
- .catch((err) => {
- res.status(400).json({ message: err.message });
- });
-});
diff --git a/server/.dockerignore b/server/.dockerignore
new file mode 100644
index 0000000000..ae9c093e20
--- /dev/null
+++ b/server/.dockerignore
@@ -0,0 +1,17 @@
+test
+node_modules
+.git
+README.md
+tools
+!tools/dbs/*.js
+!tools/general/*.js
+!tools/nexe
+Dockerfile
+docker-compose.yml
+index.html
+package-lock.json
+logs
+coverage
+.nyc_output
+.*docker-compose.yaml
+.drone*.yml
diff --git a/server/.eslintrc.json b/server/.eslintrc.json
new file mode 100644
index 0000000000..84befc479e
--- /dev/null
+++ b/server/.eslintrc.json
@@ -0,0 +1,35 @@
+{
+ "env": {
+ "browser": true,
+ "commonjs": true,
+ "es6": true,
+ "node": true,
+ "mocha": true
+ },
+ "extends": "eslint:recommended",
+ "parserOptions": {
+ "ecmaVersion": 9,
+ "sourceType": "module"
+ },
+ "rules": {
+ "indent": [
+ "warn",
+ "tab",
+ {
+ "SwitchCase": 1
+ }
+ ],
+ "linebreak-style": [
+ "warn",
+ "unix"
+ ],
+ "quotes": [
+ "warn",
+ "single"
+ ],
+ "semi": [
+ "warn",
+ "always"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/server/.prettierignore.json b/server/.prettierignore.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/server/.prettierignore.json
@@ -0,0 +1 @@
+{}
diff --git a/server/.prettierrc.json b/server/.prettierrc.json
new file mode 100644
index 0000000000..9d38e0ceec
--- /dev/null
+++ b/server/.prettierrc.json
@@ -0,0 +1,8 @@
+{
+ "tabWidth": 3,
+ "useTabs": true,
+ "semi": true,
+ "singleQuote": true,
+ "bracketSpacing": true,
+ "arrowParens": "always"
+}
diff --git a/server/.sequelizerc b/server/.sequelizerc
new file mode 100644
index 0000000000..6be97a1256
--- /dev/null
+++ b/server/.sequelizerc
@@ -0,0 +1,8 @@
+const path = require('path');
+
+module.exports = {
+ 'config': path.resolve('config', 'db.js'),
+ 'migrations-path': path.resolve('db', 'migrations'),
+ 'models-path': path.resolve('db', 'models'),
+ 'seeders-path': path.resolve('db', 'seeders'),
+};
diff --git a/server/README.md b/server/README.md
new file mode 100644
index 0000000000..ea5b674043
--- /dev/null
+++ b/server/README.md
@@ -0,0 +1,8 @@
+# Server
+HollaEx Kit has a built in server based on express + swagger and provides API and Websocket communication for HollaEx Web or any other clients.
+
+API
+
+Websocket
+
+Plugins
diff --git a/server/api/controllers/admin.js b/server/api/controllers/admin.js
new file mode 100644
index 0000000000..7c9bf7d46a
--- /dev/null
+++ b/server/api/controllers/admin.js
@@ -0,0 +1,700 @@
+'use strict';
+
+const { loggerAdmin } = require('../../config/logger');
+const toolsLib = require('hollaex-tools-lib');
+const { cloneDeep } = require('lodash');
+const { all } = require('bluebird');
+const { USER_NOT_FOUND } = require('../../messages');
+
+const getAdminKit = (req, res) => {
+ loggerAdmin.verbose(req.uuid, 'controllers/admin/getAdminKit', req.auth.sub);
+ try {
+ const data = cloneDeep({
+ kit: toolsLib.getKitConfig(),
+ secrets: toolsLib.getKitSecrets()
+ });
+
+ // Mask certain secrets
+ data.secrets = toolsLib.maskSecrets(data.secrets);
+ return res.json(data);
+ } catch (err) {
+ loggerAdmin.error(req.uuid, 'controllers/admin/getAdminKit', err.message);
+ return res.status(400).json({ message: err.message });
+ }
+};
+
+const putNetworkCredentials = (req, res) => {
+ loggerAdmin.verbose(req.uuid, 'controllers/admin/putNetworkCredentials auth', req.auth.sub);
+
+ const { api_key, api_secret } = req.swagger.params.data.value;
+
+ toolsLib.updateNetworkKeySecret(api_key, api_secret)
+ .then(() => {
+ return res.json({ message: 'Success' });
+ })
+ .catch((err) => {
+ loggerAdmin.error(req.uuid, 'controllers/admin/putNetworkCredentials', err.message);
+ return res.status(400).json({ message: err.message });
+ });
+};
+
+const createInitialAdmin = (req, res) => {
+ const { email, password } = req.swagger.params.data.value;
+
+ loggerAdmin.info(req.uuid, 'controllers/admin/createInitialAdmin email', email);
+
+ all([
+ toolsLib.database.findOne('user', { raw: true }),
+ toolsLib.database.findOne('status', { raw: true })
+ ])
+ .then(([ user, status ]) => {
+ if (status.initialized) {
+ throw new Error('Exchange is already initialized');
+ }
+ if (user) {
+ throw new Error('Admin already exists');
+ }
+ return toolsLib.user.createUser(email, password, {
+ role: 'admin',
+ id: 1
+ });
+ })
+ .then(() => {
+ return toolsLib.setExchangeInitialized();
+ })
+ .then(() => {
+ return res.status(201).json({ message: 'Success' });
+ })
+ .catch((err) => {
+ loggerAdmin.error(req.uuid, 'controllers/admin/createInitialAdmin', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const putAdminKit = (req, res) => {
+ loggerAdmin.verbose(req.uuid, 'controllers/admin/putAdminKit', req.auth.sub);
+ const data = req.swagger.params.data.value;
+
+ if (data.kit) {
+ if (data.kit.setup_completed) {
+ loggerAdmin.error(req.uuid, 'controllers/admin/putAdminKit', 'Cannot update setup_completed value through this endpoint');
+ return res.status(400).json({ message: 'Cannot update setup_completed value through this endpoint'});
+ }
+ }
+
+ toolsLib.updateKitConfigSecrets(data, req.auth.scopes)
+ .then((result) => {
+ return res.json(result);
+ })
+ .catch((err) => {
+ loggerAdmin.error(req.uuid, 'controllers/admin/putAdminKit', err);
+ return res.status(400).json({ message: err.message });
+ });
+};
+
+const getUsersAdmin = (req, res) => {
+ loggerAdmin.verbose(req.uuid, 'controllers/admin/getUsers/auth', req.auth);
+
+ const { id, search, pending, limit, page, order_by, order, start_date, end_date, format } = req.swagger.params;
+
+ toolsLib.user.getAllUsersAdmin({
+ id: id.value,
+ search: search.value,
+ pending: pending.value,
+ limit: limit.value,
+ page: page.value,
+ order_by: order_by.value,
+ order: order.value,
+ start_date: start_date.value,
+ end_date: end_date.value,
+ format: format.value
+ })
+ .then((data) => {
+ if (format.value) {
+ res.setHeader('Content-disposition', `attachment; filename=${toolsLib.getKitConfig().api_name}-users.csv`);
+ res.set('Content-Type', 'text/csv');
+ return res.status(202).send(data);
+ } else {
+ return res.json(data);
+ }
+ })
+ .catch((err) => {
+ loggerAdmin.error(req.uuid, 'controllers/admin/getUsers', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const putUserRole = (req, res) => {
+ loggerAdmin.verbose(
+ req.uuid,
+ 'controllers/admin/putUserRole/auth',
+ req.auth
+ );
+
+ const user_id = req.swagger.params.user_id.value;
+ const { role } = req.swagger.params.data.value;
+
+ toolsLib.user.updateUserRole(user_id, role)
+ .then((user) => {
+ return res.json(user);
+ })
+ .catch((err) => {
+ loggerAdmin.error(
+ req.uuid,
+ 'controllers/admin/putUserRole',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const putUserNote = (req, res) => {
+ loggerAdmin.verbose(
+ req.uuid,
+ 'controllers/admin/userNote/auth',
+ req.auth
+ );
+ const user_id = req.swagger.params.user_id.value;
+ const { note } = req.swagger.params.data.value;
+
+
+ toolsLib.user.updateUserNote(user_id, note)
+ .then(() => {
+ return res.json({ message: 'Success' });
+ })
+ .catch((err) => {
+ loggerAdmin.error(
+ req.uuid,
+ 'controllers/admin/userNote',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getAdminUserBalance = (req, res) => {
+ loggerAdmin.verbose(
+ req.uuid,
+ 'controllers/admin/getAdminUserBalance/auth',
+ req.auth
+ );
+ const user_id = req.swagger.params.user_id.value;
+
+ toolsLib.wallet.getUserBalanceByKitId(user_id)
+ .then((balance) => {
+ return res.json(balance);
+ })
+ .catch((err) => {
+ loggerAdmin.error(
+ req.uuid,
+ 'controllers/admin/getAdminUserBalance',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const activateUser = (req, res) => {
+ loggerAdmin.verbose(
+ req.uuid,
+ 'controllers/admin/activateUser auth',
+ req.auth
+ );
+ const { user_id, activated } = req.swagger.params.data.value;
+
+ let promiseQuery;
+
+ if (activated === true) {
+ promiseQuery = toolsLib.user.unfreezeUserById(user_id);
+ } else if (activated === false) {
+ promiseQuery = toolsLib.user.freezeUserById(user_id);
+ }
+
+ promiseQuery
+ .then((user) => {
+ const message = `Account ${user.email} has been ${
+ activated ? 'activated' : 'deactivated'
+ }`;
+ return res.json({ message });
+ })
+ .catch((err) => {
+ loggerAdmin.error(
+ req.uuid,
+ 'controllers/admin/activateUser',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getAdminBalance = (req, res) => {
+ loggerAdmin.verbose(
+ req.uuid,
+ 'controllers/admin/getAdminUserBalance/auth',
+ req.auth
+ );
+
+ toolsLib.wallet.getKitBalance()
+ .then((balance) => {
+ return res.json(balance);
+ })
+ .catch((err) => {
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const upgradeUser = (req, res) => {
+ loggerAdmin.verbose(
+ req.uuid,
+ 'controllers/admin/upgradeUser auth',
+ req.auth
+ );
+
+ const domain = req.headers['x-real-origin'];
+
+ const { user_id, verification_level } = req.swagger.params.data.value;
+
+ toolsLib.user.changeUserVerificationLevelById(user_id, verification_level, domain)
+ .then(() => {
+ return res.json({ message: 'Success' });
+ })
+ .catch((err) => {
+ loggerAdmin.error(
+ req.uuid,
+ 'controllers/admin/upgradeUser',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const flagUser = (req, res) => {
+ loggerAdmin.verbose(req.uuid, 'controllers/admin/flagUser/auth', req.auth);
+ const { user_id } = req.swagger.params.data.value;
+
+ toolsLib.user.toggleFlaggedUserById(user_id)
+ .then(() => {
+ return res.json({ message: 'Success' });
+ })
+ .catch((err) => {
+ loggerAdmin.error(req.uuid, 'controllers/admin/flagUser', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getAdminUserLogins = (req, res) => {
+ loggerAdmin.verbose(
+ req.uuid,
+ 'controllers/admin/getAdminUserLogins/auth',
+ req.auth
+ );
+ const { user_id, limit, page, start_date, order_by, order, end_date, format } = req.swagger.params;
+
+ toolsLib.user.getUserLogins({
+ userId: user_id.value,
+ limit: limit.value,
+ page: page.value,
+ orderBy: order_by.value,
+ order: order.value,
+ startDate: start_date.value,
+ endDate: end_date.value,
+ format: format.value
+ })
+ .then((data) => {
+ if (format.value) {
+ res.setHeader('Content-disposition', `attachment; filename=${toolsLib.getKitConfig().api_name}-users-logins.csv`);
+ res.set('Content-Type', 'text/csv');
+ return res.status(202).send(data);
+ } else {
+ return res.json(data);
+ }
+ })
+ .catch((err) => {
+ loggerAdmin.error(
+ req.uuid,
+ 'controllers/admin/getAdminUserLogins/catch',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getUserAudits = (req, res) => {
+ loggerAdmin.verbose(
+ req.uuid,
+ 'controllers/admin/getUserAudits/auth',
+ req.auth
+ );
+ const user_id = req.swagger.params.user_id.value;
+ const { limit, page, order_by, order, start_date, end_date, format } = req.swagger.params;
+
+ toolsLib.user.getUserAudits({
+ userId: user_id,
+ limit: limit.value,
+ page: page.value,
+ orderBy: order_by.value,
+ order: order.value,
+ startDate: start_date.value,
+ endDate: end_date.value,
+ format: format.value
+ })
+ .then((data) => {
+ if (format.value) {
+ res.setHeader('Content-disposition', `attachment; filename=${toolsLib.getKitConfig().api_name}-audits.csv`);
+ res.set('Content-Type', 'text/csv');
+ return res.status(202).send(data);
+ } else {
+ return res.json(data);
+ }
+ })
+ .catch((err) => {
+ loggerAdmin.error(
+ req.uuid,
+ 'controllers/admin/getUserAudits',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getCoins = (req, res) => {
+ loggerAdmin.verbose(
+ req.uuid,
+ 'controllers/coin/getCoins/auth',
+ req.auth
+ );
+
+ const currency = req.swagger.params.currency.value;
+
+ if (currency && !toolsLib.subscribedToCoin(currency)) {
+ loggerAdmin.error(
+ req.uuid,
+ 'controllers/coin/getCoins',
+ `Invalid currency: "${currency}"`
+ );
+ return res.status(400).json({ message: `Invalid currency: "${currency}"` });
+ }
+
+ try {
+ if (currency) {
+ return res.json(toolsLib.getKitCoin(currency));
+ } else {
+ return res.json(toolsLib.getKitCoinsConfig());
+ }
+ } catch (err) {
+ loggerAdmin.error(
+ req.uuid,
+ 'controllers/coin/getCoins',
+ err.message
+ );
+ return res.status(400).json({ message: err.message });
+ }
+};
+
+const getPairs = (req, res) => {
+ loggerAdmin.verbose(
+ req.uuid,
+ 'controllers/coin/getPairs/auth',
+ req.auth
+ );
+
+ const pair = req.swagger.params.pair.value;
+
+ if (pair && !toolsLib.subscribedToPair(pair)) {
+ loggerAdmin.error(
+ req.uuid,
+ 'controllers/coin/getPairs',
+ `Invalid pair: "${pair}"`
+ );
+ return res.status(400).json({ message: `Invalid pair: "${pair}"` });
+ }
+
+ try {
+ if (pair) {
+ return res.json(toolsLib.getKitPair(pair));
+ } else {
+ return res.json(toolsLib.getKitPairsConfig());
+ }
+ } catch (err) {
+ loggerAdmin.error(
+ req.uuid,
+ 'controllers/coin/getPairs',
+ err.message
+ );
+ return res.status(400).json({ message: err.message });
+ }
+};
+
+const transferFund = (req, res) => {
+ loggerAdmin.verbose(
+ req.uuid,
+ 'controllers/admin/transferFund auth',
+ req.auth
+ );
+
+ const data = req.swagger.params.data.value;
+
+ toolsLib.wallet.transferAssetByKitIds(data.sender_id, data.receiver_id, data.currency, data.amount)
+ .then(() => {
+ return res.json({ message: 'Success' });
+ })
+ .catch((err) => {
+ loggerAdmin.error(
+ req.uuid,
+ 'controllers/admin/transferFund',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const adminCheckTransaction = (req, res) => {
+ loggerAdmin.verbose(
+ req.uuid,
+ 'controllers/admin/adminCheckTransaction auth',
+ req.auth
+ );
+ const transactionId = req.swagger.params.transaction_id.value;
+ const address = req.swagger.params.address.value;
+ const currency = req.swagger.params.currency.value;
+ const isTestnet = req.swagger.params.is_testnet.value;
+
+ toolsLib.wallet.checkTransaction(currency, transactionId, address, isTestnet)
+ .then((transaction) => {
+ return res.json({ message: 'Success', transaction });
+ })
+ .catch((err) => {
+ loggerAdmin.error(
+ req.uuid,
+ 'controllers/admin/adminCheckTransaction catch',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const completeExchangeSetup = (req, res) => {
+ loggerAdmin.verbose(
+ req.uuid,
+ 'controllers/admin/completeExchangeSetup auth',
+ req.auth
+ );
+
+ toolsLib.setExchangeSetupCompleted()
+ .then(() => {
+ return res.json({ message: 'Success' });
+ })
+ .catch((err) => {
+ loggerAdmin.error(
+ req.uuid,
+ 'controllers/admin/completeExchangeSetup catch',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const uploadImage = (req, res) => {
+ loggerAdmin.verbose(
+ req.uuid,
+ 'controllers/admin/uploadImage auth',
+ req.auth
+ );
+
+ const name = req.swagger.params.name.value;
+ const file = req.swagger.params.file.value;
+
+ toolsLib.storeImageOnNetwork(file, name)
+ .then((result) => {
+ return res.json(result);
+ })
+ .catch((err) => {
+ loggerAdmin.error(
+ req.uuid,
+ 'controllers/admin/uploadImage catch',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getOperators = (req, res) => {
+ loggerAdmin.verbose(
+ req.uuid,
+ 'controllers/admin/getOperators auth',
+ req.auth
+ );
+
+ const { limit, page, order_by, order } = req.swagger.params;
+
+ toolsLib.user.getExchangeOperators({
+ limit: limit.value,
+ page: page.value,
+ orderBy: order_by.value,
+ order: order.value
+ })
+ .then((operators) => {
+ return res.json(operators);
+ })
+ .catch((err) => {
+ loggerAdmin.error(
+ req.uuid,
+ 'controllers/admin/getOperators catch',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const inviteNewOperator = (req, res) => {
+ loggerAdmin.verbose(
+ req.uuid,
+ 'controllers/admin/inviteNewOperator auth',
+ req.auth
+ );
+
+ const invitingEmail = req.auth.sub.email;
+ const { email, role } = req.swagger.params;
+
+ toolsLib.user.inviteExchangeOperator(invitingEmail, email.value, role.value)
+ .then(() => {
+ return res.json({ message: 'Success' });
+ })
+ .catch((err) => {
+ loggerAdmin.error(
+ req.uuid,
+ 'controllers/admin/inviteNewOperator err',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getExchangeGeneratedFees = (req, res) => {
+ loggerAdmin.verbose(
+ req.uuid,
+ 'controllers/admin/getExchangeGeneratedFees auth',
+ req.auth
+ );
+
+ const { limit, page, start_date, end_date } = req.swagger.params;
+
+ toolsLib.order.getGeneratedFees(limit.value, page.value, start_date.value, end_date.value)
+ .then((data) => {
+ return res.json(data);
+ })
+ .catch((err) => {
+ loggerAdmin.error(
+ req.uuid,
+ 'controllers/admin/getExchangeGeneratedFees catch',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const mintAsset = (req, res) => {
+ loggerAdmin.verbose(
+ req.uuid,
+ 'controllers/admin/mintAsset auth',
+ req.auth
+ );
+
+ const {
+ user_id,
+ currency,
+ amount,
+ description
+ } = req.swagger.params.data.value;
+
+ loggerAdmin.info(
+ req.uuid,
+ 'controllers/admin/mintAsset user_id',
+ user_id,
+ 'currency',
+ currency,
+ 'amount',
+ amount
+ );
+
+ toolsLib.user.getUserByKitId(user_id)
+ .then((user) => {
+ if (!user) {
+ throw new Error(USER_NOT_FOUND);
+ }
+ return toolsLib.wallet.mintAssetByNetworkId(user.network_id, currency, amount, description);
+ })
+ .then(() => {
+ return res.json({ message: 'Success' });
+ })
+ .catch((err) => {
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const burnAsset = (req, res) => {
+ loggerAdmin.verbose(
+ req.uuid,
+ 'controllers/admin/burnAsset auth',
+ req.auth
+ );
+
+ const {
+ user_id,
+ currency,
+ amount,
+ description
+ } = req.swagger.params.data.value;
+
+ loggerAdmin.info(
+ req.uuid,
+ 'controllers/admin/burnAsset user_id',
+ user_id,
+ 'currency',
+ currency,
+ 'amount',
+ amount
+ );
+
+ toolsLib.user.getUserByKitId(user_id)
+ .then((user) => {
+ if (!user) {
+ throw new Error(USER_NOT_FOUND);
+ }
+ return toolsLib.wallet.burnAssetByNetworkId(user.network_id, currency, amount, description);
+ })
+ .then(() => {
+ return res.json({ message: 'Success' });
+ })
+ .catch((err) => {
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+module.exports = {
+ createInitialAdmin,
+ getAdminKit,
+ putAdminKit,
+ getUsersAdmin,
+ putUserRole,
+ putUserNote,
+ getAdminUserBalance,
+ activateUser,
+ getAdminBalance,
+ upgradeUser,
+ flagUser,
+ getAdminUserLogins,
+ getUserAudits,
+ getCoins,
+ getPairs,
+ transferFund,
+ adminCheckTransaction,
+ completeExchangeSetup,
+ putNetworkCredentials,
+ uploadImage,
+ getOperators,
+ inviteNewOperator,
+ getExchangeGeneratedFees,
+ mintAsset,
+ burnAsset
+};
diff --git a/server/api/controllers/deposit.js b/server/api/controllers/deposit.js
new file mode 100644
index 0000000000..4c9b553faa
--- /dev/null
+++ b/server/api/controllers/deposit.js
@@ -0,0 +1,64 @@
+'use strict';
+
+const { loggerDeposits } = require('../../config/logger');
+const toolsLib = require('hollaex-tools-lib');
+
+const getAdminDeposits = (req, res) => {
+ loggerDeposits.verbose(
+ req.uuid,
+ 'controllers/deposit/getAdminDeposits auth',
+ req.auth
+ );
+
+ const { user_id, currency, limit, page, order_by, order, start_date, end_date, status, dismissed, rejected, processing, waiting, format } = req.swagger.params;
+
+ toolsLib.wallet.getUserDepositsByKitId(user_id.value, currency.value, status.value, dismissed.value, rejected.value, processing.value, waiting.value, limit.value, page.value, order_by.value, order.value, start_date.value, end_date.value, format.value)
+ .then((data) => {
+ if (format.value) {
+ res.setHeader('Content-disposition', `attachment; filename=${toolsLib.getKitConfig().api_name}-users-deposits.csv`);
+ res.set('Content-Type', 'text/csv');
+ return res.status(202).send(data);
+ } else {
+ return res.json(data);
+ }
+ })
+ .catch((err) => {
+ loggerDeposits.error(
+ req.uuid,
+ 'controllers/deposit/getAdminDeposits',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getUserDeposits = (req, res) => {
+ loggerDeposits.verbose(
+ req.uuid,
+ 'controllers/deposit/getUserDeposits auth',
+ req.auth.sub
+ );
+ const user_id = req.auth.sub.id;
+ const currency = req.swagger.params.currency.value || '';
+ const { limit, page, order_by, order, start_date, end_date, format } = req.swagger.params;
+
+ toolsLib.wallet.getUserDepositsByKitId(user_id, currency, limit.value, page.value, order_by.value, order.value, start_date.value, end_date.value, format.value)
+ .then((data) => {
+ if (format.value) {
+ res.setHeader('Content-disposition', `attachment; filename=${toolsLib.getKitConfig().api_name}-deposits.csv`);
+ res.set('Content-Type', 'text/csv');
+ return res.status(202).send(data);
+ } else {
+ return res.json(data);
+ }
+ })
+ .catch((err) => {
+ loggerDeposits.error('controllers/deposit/getUserDeposits', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+module.exports = {
+ getAdminDeposits,
+ getUserDeposits,
+};
diff --git a/server/api/controllers/notification.js b/server/api/controllers/notification.js
new file mode 100644
index 0000000000..28c8ee340a
--- /dev/null
+++ b/server/api/controllers/notification.js
@@ -0,0 +1,161 @@
+'use strict';
+
+const { loggerNotification } = require('../../config/logger');
+const toolsLib = require('hollaex-tools-lib');
+const { sendEmail } = require('../../mail');
+const { MAILTYPE } = require('../../mail/strings');
+const { publisher } = require('../../db/pubsub');
+const { INIT_CHANNEL, WS_PUBSUB_DEPOSIT_CHANNEL, EVENTS_CHANNEL } = require('../../constants');
+const moment = require('moment');
+
+const applyKitChanges = (req, res) => {
+ const ip = req.headers ? req.headers['x-real-ip'] : undefined;
+ const domain = req.headers['x-real-origin'];
+ loggerNotification.verbose('controller/notification/applyKitChanges ip domain', ip, domain);
+
+ toolsLib.security.verifyNetworkHmacToken(req)
+ .then(() => {
+ return publisher.publish(INIT_CHANNEL, JSON.stringify({ type: 'refreshInit' }));
+ })
+ .then(() => {
+ return res.json({ message: 'Success' });
+ })
+ .catch((err) => {
+ loggerNotification.verbose('controller/notification/applyKitChanges', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const handleCurrencyDeposit = (req, res) => {
+ const ip = req.headers ? req.headers['x-real-ip'] : undefined;
+ const domain = req.headers['x-real-origin'];
+ loggerNotification.verbose('controller/notification/handleCurrencyDeposit ip domain', ip, domain);
+
+ const currency = req.swagger.params.currency.value;
+ const { user_id, amount, txid, address, is_confirmed } = req.swagger.params.data.value;
+
+ toolsLib.security.verifyNetworkHmacToken(req)
+ .then(() => {
+ if (!toolsLib.subscribedToCoin(currency)) {
+ throw new Error('Invalid currency');
+ }
+ return toolsLib.user.getUserByNetworkId(user_id);
+ })
+ .then((user) => {
+ const depositData = {
+ amount,
+ currency,
+ status: is_confirmed ? 'COMPLETED' : 'PENDING',
+ address,
+ transaction_id: txid
+ };
+
+ publisher.publish(WS_PUBSUB_DEPOSIT_CHANNEL, JSON.stringify({
+ topic: 'deposit',
+ action: 'insert',
+ user_id: user.network_id,
+ data: depositData,
+ time: moment().unix()
+ }));
+
+ publisher.publish(EVENTS_CHANNEL, JSON.stringify({
+ type: 'deposit',
+ data: {
+ ...depositData,
+ user_id: user.id
+ }
+ }));
+
+ sendEmail(
+ MAILTYPE.DEPOSIT,
+ user.email,
+ depositData,
+ user.settings,
+ domain
+ );
+ return res.json({ message: 'Success' });
+ })
+ .catch((err) => {
+ loggerNotification.error(
+ req.uuid,
+ 'controller/notification/handleCurrencyDeposit',
+ err.message
+ );
+ return res.status(400).json({ message: `Fail - ${err.message}` });
+ });
+};
+
+const handleCurrencyWithdrawal = (req, res) => {
+ const ip = req.headers ? req.headers['x-real-ip'] : undefined;
+ const domain = req.headers['x-real-origin'];
+ loggerNotification.verbose('controller/notification/handleCurrencyWithdrawal ip domain', ip, domain);
+
+ const currency = req.swagger.params.currency.value;
+ const { user_id, amount, txid, address, is_confirmed, fee, rejected } = req.swagger.params.data.value;
+
+ toolsLib.security.verifyNetworkHmacToken(req)
+ .then(() => {
+ if (!toolsLib.subscribedToCoin(currency)) {
+ throw new Error('Invalid currency');
+ }
+ return toolsLib.user.getUserByNetworkId(user_id);
+ })
+ .then((user) => {
+ if (rejected) {
+ const data = {
+ amount,
+ currency,
+ address
+ };
+
+ sendEmail(
+ MAILTYPE.INVALID_ADDRESS,
+ user.email,
+ data,
+ user.settings,
+ domain
+ );
+ } else {
+ const data = {
+ amount,
+ currency,
+ status: is_confirmed ? 'COMPLETED' : 'PENDING',
+ address,
+ fee,
+ transaction_id: txid
+ };
+
+ publisher.publish(EVENTS_CHANNEL, JSON.stringify({
+ type: 'withdrawal',
+ data: {
+ ...data,
+ user_id: user.id
+ }
+ }));
+
+ sendEmail(
+ MAILTYPE.WITHDRAWAL,
+ user.email,
+ data,
+ user.settings,
+ domain
+ );
+ }
+
+ return res.json({ message: 'Success' });
+ })
+ .catch((err) => {
+ loggerNotification.error(
+ req.uuid,
+ 'controller/notification/handleCurrencyWithdrawal',
+ err.message
+ );
+ return res.status(400).json({ message: `Fail - ${err.message}` });
+ });
+};
+
+module.exports = {
+ applyKitChanges,
+ handleCurrencyDeposit,
+ handleCurrencyWithdrawal
+};
diff --git a/server/api/controllers/order.js b/server/api/controllers/order.js
new file mode 100644
index 0000000000..9490555455
--- /dev/null
+++ b/server/api/controllers/order.js
@@ -0,0 +1,205 @@
+'use strict';
+
+const { loggerOrders } = require('../../config/logger');
+const toolsLib = require('hollaex-tools-lib');
+const { isPlainObject, isNumber } = require('lodash');
+
+const createOrder = (req, res) => {
+ loggerOrders.verbose(
+ req.uuid,
+ 'controllers/order/createOrder auth',
+ req.auth
+ );
+ loggerOrders.verbose(
+ req.uuid,
+ 'controllers/order/createOrder order',
+ req.swagger.params.order.value
+ );
+
+ const user_id = req.auth.sub.id;
+ let order = req.swagger.params.order.value;
+
+ const opts = {};
+
+ if (isPlainObject(order.meta)) {
+ opts.meta = order.meta;
+ }
+
+ if (isNumber(order.stop)) {
+ opts.stop = order.stop;
+ }
+
+ if (order.type === 'market') {
+ delete order.price;
+ }
+
+ toolsLib.order.createUserOrderByKitId(user_id, order.symbol, order.side, order.size, order.type, order.price, opts)
+ .then((order) => {
+ return res.json(order);
+ })
+ .catch((err) => {
+ loggerOrders.error(
+ req.uuid,
+ 'controllers/order/createOrder error',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getUserOrder = (req, res) => {
+ loggerOrders.verbose(req.uuid, 'controllers/order/getUserOrder auth', req.auth);
+ loggerOrders.verbose(
+ req.uuid,
+ 'controllers/order/getUserOrder order_id',
+ req.swagger.params.order_id.value
+ );
+ const user_id = req.auth.sub.id;
+ const order_id = req.swagger.params.order_id.value;
+
+ toolsLib.order.getUserOrderByKitId(user_id, order_id)
+ .then((order) => {
+ return res.json(order);
+ })
+ .catch((err) => {
+ loggerOrders.error(req.uuid, 'controllers/order/getUserOrder error', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const cancelUserOrder = (req, res) => {
+ loggerOrders.verbose(req.uuid, 'controllers/order/cancelUserOrder auth', req.auth);
+ loggerOrders.verbose(
+ req.uuid,
+ 'controllers/order/cancelUserOrder order_id',
+ req.swagger.params.order_id.value
+ );
+ const user_id = req.auth.sub.id;
+ const order_id = req.swagger.params.order_id.value;
+
+ toolsLib.order.cancelUserOrderByKitId(user_id, order_id)
+ .then((order) => {
+ return res.json(order);
+ })
+ .catch((err) => {
+ loggerOrders.error(req.uuid, 'controllers/order/cancelUserOrder error', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getAllUserOrders = (req, res) => {
+ loggerOrders.verbose(req.uuid, 'controllers/order/getAllUserOrders auth', req.auth);
+ const user_id = req.auth.sub.id;
+ const { symbol, side, status, open, limit, page, order_by, order, start_date, end_date } = req.swagger.params;
+
+ toolsLib.order.getAllUserOrdersByKitId(
+ user_id,
+ symbol.value,
+ side.value,
+ status.value,
+ open.value,
+ limit.value,
+ page.value,
+ order_by.value,
+ order.value,
+ start_date.value,
+ end_date.value
+ )
+ .then((order) => {
+ return res.json(order);
+ })
+ .catch((err) => {
+ loggerOrders.error(req.uuid, 'controllers/order/getAllUserOrders error', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const cancelAllUserOrders = (req, res) => {
+ loggerOrders.verbose(req.uuid, 'controllers/order/cancelAllUserOrders auth', req.auth);
+ const user_id = req.auth.sub.id;
+ const symbol = req.swagger.params.symbol.value;
+
+ toolsLib.order.cancelAllUserOrdersByKitId(user_id, symbol)
+ .then((order) => {
+ return res.json(order);
+ })
+ .catch((err) => {
+ loggerOrders.error(req.uuid, 'controllers/order/cancelAllUserOrders error', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getAdminOrders = (req, res) => {
+ loggerOrders.verbose(req.uuid, 'controllers/order/getAdminOrders/auth', req.auth);
+ const { user_id, symbol, side, status, open, limit, page, order_by, order, start_date, end_date } = req.swagger.params;
+
+ let promiseQuery;
+
+ if (user_id.value) {
+ promiseQuery = toolsLib.order.getAllUserOrdersByKitId(
+ user_id.value,
+ symbol.value,
+ side.value,
+ status.value,
+ open.value,
+ limit.value,
+ page.value,
+ order_by.value,
+ order.value,
+ start_date.value,
+ end_date.value
+ );
+ } else {
+ promiseQuery = toolsLib.order.getAllExchangeOrders(
+ symbol.value,
+ side.value,
+ status.value,
+ open.value,
+ limit.value,
+ page.value,
+ order_by.value,
+ order.value,
+ start_date.value,
+ end_date.value
+ );
+ }
+
+ promiseQuery
+ .then((orders) => {
+ return res.json(orders);
+ })
+ .catch((err) => {
+ loggerOrders.debug(req.uuid, 'controllers/order/getAdminOrders', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const adminCancelOrder = (req, res) => {
+ loggerOrders.verbose(req.uuid, 'controllers/order/adminCancelOrder auth', req.auth);
+
+ const userId = req.swagger.params.user_id.value;
+ const orderId = req.swagger.params.order_id.value;
+
+ toolsLib.order.cancelUserOrderByKitId(userId, orderId)
+ .then((data) => {
+ return res.json(data);
+ })
+ .catch((err) => {
+ loggerOrders.error(
+ req.uuid,
+ 'controllers/order/adminCancelOrder',
+ err.message
+ );
+ return res.status(400).json({ message: err.message });
+ });
+};
+
+module.exports = {
+ createOrder,
+ getUserOrder,
+ cancelUserOrder,
+ getAllUserOrders,
+ cancelAllUserOrders,
+ getAdminOrders,
+ adminCancelOrder
+};
diff --git a/server/api/controllers/otp.js b/server/api/controllers/otp.js
new file mode 100644
index 0000000000..131969f4c6
--- /dev/null
+++ b/server/api/controllers/otp.js
@@ -0,0 +1,123 @@
+'use strict';
+
+const { INVALID_OTP_CODE } = require('../../messages');
+const { loggerOtp } = require('../../config/logger');
+const toolsLib = require('hollaex-tools-lib');
+
+const requestOtp = (req, res) => {
+ loggerOtp.verbose(req.uuid, 'controllers/otp/requestOtp', req.auth);
+ const { id } = req.auth.sub;
+
+ toolsLib.security.checkOtp(id)
+ .then((otpCode) => {
+ if (otpCode) {
+ return otpCode.secret;
+ }
+ return toolsLib.security.createOtp(id);
+ })
+ .then((secret) => {
+ loggerOtp.verbose(req.uuid, 'controllers/otp/requestOtp', secret);
+ res.json({ secret });
+ })
+ .catch((err) => {
+ loggerOtp.error(req.uuid, 'controllers/otp/requestOtp', err.message);
+ res.status(400).json({ message: err.message });
+ });
+};
+
+const activateOtp = (req, res) => {
+ loggerOtp.verbose(req.uuid, 'controllers/otp/activateOtp', req.auth);
+ const { id } = req.auth.sub;
+ const { code } = req.swagger.params.data.value;
+ loggerOtp.verbose(
+ req.uuid,
+ 'controllers/otp/activateOtp/code',
+ req.swagger.params.data
+ );
+
+ toolsLib.security.checkOtp(id)
+ .then((otpCode) => {
+ return toolsLib.security.verifyOtp(otpCode.secret, code);
+ })
+ .then((validOtp) => {
+ loggerOtp.verbose(req.uuid, 'controllers/otp/activateOtp', validOtp);
+ if (!validOtp) {
+ throw new Error(INVALID_OTP_CODE);
+ }
+ return toolsLib.security.setActiveUserOtp(id);
+ })
+ .then((user) => {
+ loggerOtp.verbose(
+ req.uuid,
+ 'controllers/otp/activateOtp',
+ user.dataValues
+ );
+ res.json({ message: 'OTP enabled' });
+ })
+ .catch((err) => {
+ loggerOtp.error(req.uuid, 'controllers/otp/activateOtp', err.message);
+ res.status(400).json({ message: err.message });
+ });
+};
+
+const deactivateOtp = (req, res) => {
+ loggerOtp.verbose(req.uuid, 'controllers/otp/deactivateOtp', req.auth);
+ const { id } = req.auth.sub;
+ const { code } = req.swagger.params.data.value;
+ loggerOtp.verbose(
+ req.uuid,
+ 'controllers/otp/deactivateOtp/code',
+ req.swagger.params.data
+ );
+
+ toolsLib.security.hasUserOtpEnabled(id)
+ .then((otp_enabled) => {
+ if (!otp_enabled) {
+ throw new Error('OTP is not enabled');
+ }
+ return toolsLib.security.verifyOtpBeforeAction(id, code);
+ })
+ .then(() => {
+ return toolsLib.security.updateUserOtpEnabled(id, false);
+ })
+ .then(() => {
+ res.json({ message: 'OTP disabled' });
+ })
+ .catch((err) => {
+ loggerOtp.error(
+ req.uuid,
+ 'controllers/otp/deactivateOtp',
+ err.message
+ );
+ res.status(400).json({ message: err.message });
+ });
+};
+
+const deactivateOtpAdmin = (req, res) => {
+ loggerOtp.verbose(
+ req.uuid,
+ 'controllers/otp/deactivateOtpAdmin/auth',
+ req.auth
+ );
+ const { user_id } = req.swagger.params.data.value;
+
+ toolsLib.user.deactivateUserOtpById(user_id)
+ .then(() => {
+ return res.json({ message: 'Success' });
+ })
+ .catch((err) => {
+ loggerOtp.error(
+ req.uuid,
+ 'controllers/otp/deactivateOtpAdmin',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+module.exports = {
+ requestOtp,
+ activateOtp,
+ deactivateOtp,
+ deactivateOtpAdmin
+};
diff --git a/server/api/controllers/public.js b/server/api/controllers/public.js
new file mode 100644
index 0000000000..e631283f39
--- /dev/null
+++ b/server/api/controllers/public.js
@@ -0,0 +1,327 @@
+'use strict';
+
+const packageJson = require('../../package.json');
+const { API_HOST } = require('../../constants');
+const { loggerPublic } = require('../../config/logger');
+const toolsLib = require('hollaex-tools-lib');
+
+const getHealth = (req, res) => {
+ try {
+ return res.json({
+ name: toolsLib.getKitConfig().api_name || packageJson.name,
+ version: packageJson.version,
+ host: API_HOST,
+ basePath: req.swagger.swaggerObject.basePath,
+ status: toolsLib.getKitConfig().status
+ });
+ } catch (err) {
+ loggerPublic.verbose('controller/public/getHealth', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ }
+};
+
+const getConstants = (req, res) => {
+ try {
+ return res.json({
+ coins: toolsLib.getKitCoinsConfig(),
+ pairs: toolsLib.getKitPairsConfig()
+ });
+ } catch (err) {
+ loggerPublic.verbose('controller/public/getConstants', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ }
+};
+
+const getKitConfigurations = (req, res) => {
+ try {
+ return res.json(toolsLib.getKitConfig());
+ } catch (err) {
+ loggerPublic.verbose('controller/public/getKitConfigurations', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ }
+};
+
+const sendSupportEmail = (req, res) => {
+ const { email, category, subject, description } = req.swagger.params;
+ return toolsLib.sendEmailToSupport(email.value, category.value, subject.value, description.value)
+ .then(() => {
+ return res.json({ message: 'Email was sent to support' });
+ })
+ .catch((err) => {
+ loggerPublic.verbose('controller/public/sendSupportEmail', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getTopOrderbook = (req, res) => {
+ const symbol = req.swagger.params.symbol.value;
+
+ toolsLib.getOrderbook(symbol)
+ .then((data) => {
+ return res.json(data);
+ })
+ .catch((err) => {
+ loggerPublic.error(
+ req.uuid,
+ 'controller/public/getTopOrderbook',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getTopOrderbooks = (req, res) => {
+ toolsLib.getOrderbooks()
+ .then((data) => {
+ return res.json(data);
+ })
+ .catch((err) => {
+ loggerPublic.error(
+ req.uuid,
+ 'controller/public/getTopOrderbooks',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getTrades = (req, res) => {
+ const symbol = req.swagger.params.symbol.value;
+
+ if (symbol && !toolsLib.subscribedToPair(symbol)) {
+ loggerPublic.error(
+ req.uuid,
+ 'controller/public/getTopOrderbooks',
+ 'Invalid symbol'
+ );
+ return res.status(400).json({ message: 'Invalid symbol' });
+ }
+
+ toolsLib.getPublicTrades(symbol)
+ .then((data) => {
+ return res.json(data);
+ })
+ .catch((err) => {
+ loggerPublic.error(
+ req.uuid,
+ 'controller/public/getTrades',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getTradesHistory = (req, res) => {
+ const { symbol, side, limit, page, order_by, order, start_date, end_date } = req.swagger.params;
+
+ if (symbol.value && !toolsLib.subscribedToPair(symbol.value)) {
+ loggerPublic.error(
+ req.uuid,
+ 'controller/public/getTopOrderbooks',
+ 'Invalid symbol'
+ );
+ return res.status(400).json({ message: 'Invalid symbol' });
+ }
+
+ toolsLib.getTradesHistory(
+ symbol.value,
+ side.value,
+ limit.value,
+ page.value,
+ order_by.value,
+ order.value,
+ start_date.value,
+ end_date.value
+ )
+ .then((data) => {
+ return res.json(data);
+ })
+ .catch((err) => {
+ loggerPublic.error(
+ req.uuid,
+ 'controller/public/getTrades',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getTicker = (req, res) => {
+ const symbol = req.swagger.params.symbol.value;
+
+ toolsLib.getTicker(symbol)
+ .then((data) => {
+ return res.json(data);
+ })
+ .catch((err) => {
+ loggerPublic.error(
+ req.uuid,
+ 'controller/public/getTicker',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getAllTicker = (req, res) => {
+ toolsLib.getTickers()
+ .then((data) => {
+ return res.json(data);
+ })
+ .catch((err) => {
+ loggerPublic.error(
+ req.uuid,
+ 'controller/public/getAllTicker',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getChart = (req, res) => {
+ const { from, to, symbol, resolution } = req.swagger.params;
+
+ if (!toolsLib.subscribedToPair(symbol.value)) {
+ loggerPublic.error(
+ req.uuid,
+ 'controller/public/getChart',
+ 'Invalid symbol'
+ );
+ return res.status(400).json({ message: 'Invalid symbol' });
+ }
+
+ toolsLib.getChart(from.value, to.value, symbol.value, resolution.value)
+ .then((data) => {
+ return res.json(data);
+ })
+ .catch((err) => {
+ loggerPublic.error(
+ req.uuid,
+ 'controller/public/getChart',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getCharts = (req, res) => {
+ const { from, to, resolution } = req.swagger.params;
+
+ toolsLib.getCharts(from.value, to.value, resolution.value)
+ .then((data) => {
+ return res.json(data);
+ })
+ .catch((err) => {
+ loggerPublic.error(
+ req.uuid,
+ 'controller/public/getCharts',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getConfig = (req, res) => {
+ toolsLib.getUdfConfig()
+ .then((data) => {
+ return res.json(data);
+ })
+ .catch((err) => {
+ loggerPublic.error(
+ req.uuid,
+ 'controller/public/getConfig',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getHistory = (req, res) => {
+ const { symbol, from, to, resolution } = req.swagger.params;
+
+ if (!toolsLib.subscribedToPair(symbol.value)) {
+ loggerPublic.error(
+ req.uuid,
+ 'controller/public/getHistory',
+ 'Invalid symbol'
+ );
+ return res.status(400).json({ message: 'Invalid symbol' });
+ }
+
+ toolsLib.getUdfHistory(from.value, to.value, symbol.value, resolution.value)
+ .then((data) => {
+ return res.json(data);
+ })
+ .catch((err) => {
+ loggerPublic.error(
+ req.uuid,
+ 'controller/public/getHistory',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getSymbols = (req, res) => {
+ const symbol = req.swagger.params.symbol.value;
+
+ if (!toolsLib.subscribedToPair(symbol)) {
+ loggerPublic.error(
+ req.uuid,
+ 'controller/public/getSymbols',
+ 'Invalid symbol'
+ );
+ return res.status(400).json({ message: 'Invalid symbol' });
+ }
+
+ toolsLib.getUdfSymbols(symbol)
+ .then((data) => {
+ return res.json(data);
+ })
+ .catch((err) => {
+ loggerPublic.error(
+ req.uuid,
+ 'controller/public/getSymbols',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getAssetsPrices = (req, res) => {
+ const { assets, quote, amount } = req.swagger.params;
+
+ loggerPublic.info(req.uuid, 'controllers/public/getAssetsPrices assets', assets.value, 'quote', quote.value, 'amount', amount.value);
+
+ toolsLib.getAssetsPrices(assets.value, quote.value, amount.value)
+ .then((data) => {
+ return res.json(data);
+ })
+ .catch((err) => {
+ loggerPublic.error(
+ req.uuid,
+ 'controller/public/getAssetsPrices',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+module.exports = {
+ getHealth,
+ getConstants,
+ getKitConfigurations,
+ sendSupportEmail,
+ getTopOrderbook,
+ getTopOrderbooks,
+ getTrades,
+ getTicker,
+ getAllTicker,
+ getChart,
+ getCharts,
+ getConfig,
+ getHistory,
+ getSymbols,
+ getAssetsPrices,
+ getTradesHistory
+};
diff --git a/server/api/controllers/tier.js b/server/api/controllers/tier.js
new file mode 100644
index 0000000000..5ed7169b71
--- /dev/null
+++ b/server/api/controllers/tier.js
@@ -0,0 +1,142 @@
+'use strict';
+
+const toolsLib = require('hollaex-tools-lib');
+const { loggerTier } = require('../../config/logger');
+const { each } = require('lodash');
+
+const getTiers = (req, res) => {
+ try {
+ const tiers = toolsLib.getKitTiers();
+ const pairs = toolsLib.getKitPairs();
+ each(tiers, (tier) => {
+ each(pairs, (pair) => {
+ tier.fees.maker[pair] = tier.fees.maker[pair] !== undefined ? tier.fees.maker[pair] : tier.fees.maker.default;
+ tier.fees.taker[pair] = tier.fees.taker[pair] !== undefined ? tier.fees.taker[pair] : tier.fees.taker.default;
+ });
+ delete tier.fees.maker.default;
+ delete tier.fees.taker.default;
+ });
+ return res.json(tiers);
+ } catch (err) {
+ loggerTier.error(req.uuid, 'controllers/tier/getTiers err', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ }
+};
+
+const postTier = (req, res) => {
+ loggerTier.verbose(req.uuid, 'controllers/tier/postTier auth', req.auth);
+
+ const { level, name, icon, description, deposit_limit, withdrawal_limit, fees, note } = req.swagger.params.data.value;
+
+ loggerTier.info(req.uuid, 'controllers/tier/postTier new tier', level, name, description);
+
+ toolsLib.tier.createTier(level, name, icon, description, deposit_limit, withdrawal_limit, fees, note)
+ .then((tier) => {
+ loggerTier.info(req.uuid, 'controllers/tier/postTier new tier created', level);
+ return res.json(tier);
+ })
+ .catch((err) => {
+ loggerTier.error(req.uuid, 'controllers/tier/postTier err', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const putTier = (req, res) => {
+ loggerTier.verbose(req.uuid, 'controllers/tier/putTier auth', req.auth);
+
+ const { level, name, icon, description, deposit_limit, withdrawal_limit, note } = req.swagger.params.data.value;
+
+ const updateData = {
+ name,
+ icon,
+ description,
+ deposit_limit,
+ withdrawal_limit,
+ note
+ };
+
+ toolsLib.tier.updateTier(level, updateData)
+ .then((tier) => {
+ loggerTier.info(req.uuid, 'controllers/tier/putTier tier updated', level);
+ return res.json(tier);
+ })
+ .catch((err) => {
+ loggerTier.error(req.uuid, 'controllers/tier/postTier err', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const updatePairFees = (req, res) => {
+ loggerTier.verbose(
+ req.uuid,
+ 'controllers/tier/updatePairFees auth',
+ req.auth
+ );
+
+ const { pair, fees } = req.swagger.params.data.value;
+
+ loggerTier.info(
+ req.uuid,
+ 'controllers/tier/updatePairFees pair',
+ pair
+ );
+
+ toolsLib.tier.updatePairFees(pair, fees)
+ .then(() => {
+ loggerTier.info(
+ req.uuid,
+ 'controllers/tier/updatePairFees updated fees pair',
+ pair
+ );
+ return res.json({ message: 'Success' });
+ })
+ .catch((err) => {
+ loggerTier.error(
+ req.uuid,
+ 'controllers/tier/updatePairFees err',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const updateTiersLimits = (req, res) => {
+ loggerTier.verbose(
+ req.uuid,
+ 'controllers/tier/updateTierLimits auth',
+ req.auth
+ );
+
+ const { limits } = req.swagger.params.data.value;
+
+ loggerTier.info(
+ req.uuid,
+ 'controllers/tier/updateTierLimits tiers',
+ Object.keys(limits)
+ );
+
+ toolsLib.tier.updateTiersLimits(limits)
+ .then(() => {
+ loggerTier.info(
+ req.uuid,
+ 'controllers/tier/updateTierLimits updated limits',
+ );
+ return res.json({ message: 'Success' });
+ })
+ .catch((err) => {
+ loggerTier.error(
+ req.uuid,
+ 'controllers/tier/updatePairLimits err',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+module.exports = {
+ getTiers,
+ postTier,
+ putTier,
+ updatePairFees,
+ updateTiersLimits
+};
diff --git a/server/api/controllers/trade.js b/server/api/controllers/trade.js
new file mode 100644
index 0000000000..435d2a3438
--- /dev/null
+++ b/server/api/controllers/trade.js
@@ -0,0 +1,70 @@
+'use strict';
+
+const { loggerTrades } = require('../../config/logger');
+const toolsLib = require('hollaex-tools-lib');
+
+const getUserTrades = (req, res) => {
+ loggerTrades.verbose(
+ req.uuid,
+ 'controllers/trade/getUserTrades auth',
+ req.auth.sub
+ );
+
+ const user_id = req.auth.sub.id;
+ const { limit, page, order_by, order, start_date, end_date, format } = req.swagger.params;
+ const symbol = req.swagger.params.symbol.value;
+
+ if (symbol && !toolsLib.subscribedToPair(symbol)) {
+ loggerTrades.error(req.uuid, 'controllers/trade/getUserTrades', 'Invalid symbol');
+ return res.status(400).json({ message: 'Invalid symbol' });
+ }
+
+ toolsLib.order.getAllUserTradesByKitId(user_id, symbol, limit.value, page.value, order_by.value, order.value, start_date.value, end_date.value, format.value)
+ .then((data) => {
+ if (format.value) {
+ res.setHeader('Content-disposition', `attachment; filename=${toolsLib.getKitConfig().api_name}-trades.csv`);
+ res.set('Content-Type', 'text/csv');
+ return res.status(202).send(data);
+ } else {
+ return res.json(data);
+ }
+ })
+ .catch((err) => {
+ loggerTrades.error(req.uuid, 'controllers/trade/getUserTrades', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getAdminTrades = (req, res) => {
+ loggerTrades.verbose(req.uuid, 'controllers/trade/getAdminTrades auth', req.auth);
+
+ const { user_id, symbol, limit, page, order_by, order, start_date, end_date, format } = req.swagger.params;
+
+ let promiseQuery;
+
+ if (user_id.value) {
+ promiseQuery = toolsLib.order.getAllUserTradesByKitId(user_id.value, symbol.value, limit.value, page.value, order_by.value, order.value, start_date.value, end_date.value, format.value);
+ } else {
+ promiseQuery = toolsLib.order.getAllTradesNetwork(symbol.value, limit.value, page.value, order_by.value, order.value, start_date.value, end_date.value, format.value);
+ }
+
+ promiseQuery
+ .then((data) => {
+ if (format.value) {
+ res.setHeader('Content-disposition', `attachment; filename=${toolsLib.getKitConfig().api_name}-users-trades.csv`);
+ res.set('Content-Type', 'text/csv');
+ return res.status(202).send(data);
+ } else {
+ return res.json(data);
+ }
+ })
+ .catch((err) => {
+ loggerTrades.error(req.uuid, 'controllers/trade/getAdminTrades', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+module.exports = {
+ getUserTrades,
+ getAdminTrades
+};
diff --git a/server/api/controllers/user.js b/server/api/controllers/user.js
new file mode 100644
index 0000000000..7b7c465b79
--- /dev/null
+++ b/server/api/controllers/user.js
@@ -0,0 +1,651 @@
+'use strict';
+
+const { isEmail, isUUID } = require('validator');
+const toolsLib = require('hollaex-tools-lib');
+const { sendEmail } = require('../../mail');
+const { MAILTYPE } = require('../../mail/strings');
+const { loggerUser } = require('../../config/logger');
+const {
+ USER_VERIFIED,
+ PROVIDE_VALID_EMAIL_CODE,
+ USER_REGISTERED,
+ USER_NOT_FOUND,
+ SERVICE_NOT_SUPPORTED,
+ VERIFICATION_EMAIL_MESSAGE,
+ TOKEN_REMOVED,
+ INVALID_CREDENTIALS,
+ USER_NOT_VERIFIED,
+ USER_NOT_ACTIVATED,
+ INVALID_OTP_CODE,
+ SIGNUP_NOT_AVAILABLE,
+ PROVIDE_VALID_EMAIL,
+ INVALID_PASSWORD,
+ USER_EXISTS,
+ USER_IS_VERIFIED,
+ INVALID_VERIFICATION_CODE
+} = require('../../messages');
+const { DEFAULT_ORDER_RISK_PERCENTAGE } = require('../../constants');
+const { all } = require('bluebird');
+const { isString } = require('lodash');
+const INITIAL_SETTINGS = () => {
+ return {
+ notification: {
+ popup_order_confirmation: true,
+ popup_order_completed: true,
+ popup_order_partially_filled: true
+ },
+ interface: {
+ order_book_levels: 10,
+ theme: toolsLib.getKitConfig().defaults.theme
+ },
+ language: toolsLib.getKitConfig().defaults.language,
+ audio: {
+ order_completed: true,
+ order_partially_completed: true,
+ public_trade: false
+ },
+ risk: {
+ order_portfolio_percentage: DEFAULT_ORDER_RISK_PERCENTAGE
+ },
+ chat: {
+ set_username: false
+ }
+ };
+};
+
+const signUpUser = (req, res) => {
+ const {
+ email,
+ password,
+ captcha,
+ referral
+ } = req.swagger.params.signup.value;
+ const ip = req.headers['x-real-ip'];
+ loggerUser.debug(
+ req.uuid,
+ 'controllers/user/signUpUser',
+ req.swagger.params.signup.value,
+ ip
+ );
+
+ toolsLib.security.checkCaptcha(captcha, ip)
+ .then(() => {
+ if (!toolsLib.getKitConfig().new_user_is_activated) {
+ throw new Error(SIGNUP_NOT_AVAILABLE);
+ }
+
+ if (!email || !isEmail(email)) {
+ throw new Error(PROVIDE_VALID_EMAIL);
+ }
+
+ if (!toolsLib.security.isValidPassword(password)) {
+ throw new Error(INVALID_PASSWORD);
+ }
+
+ return toolsLib.database.findOne('user', {
+ where: { email: email.toLowerCase() },
+ attributes: ['email']
+ });
+ })
+ .then((user) => {
+ if (user) {
+ throw new Error(USER_EXISTS);
+ }
+ return toolsLib.database.getModel('user').create({
+ email,
+ password,
+ settings: INITIAL_SETTINGS()
+ });
+ })
+ .then((user) => {
+ return all([
+ toolsLib.user.getVerificationCodeByUserId(user.id),
+ user
+ ]);
+ })
+ .then(([ verificationCode, user ]) => {
+ sendEmail(
+ MAILTYPE.SIGNUP,
+ email,
+ verificationCode.code,
+ {}
+ );
+
+ if (isString(referral)) {
+ toolsLib.user.checkAffiliation(referral, user.id);
+ }
+
+ return res.status(201).json({ message: USER_REGISTERED });
+ })
+ .catch((err) => {
+ loggerUser.error(req.uuid, 'controllers/user/signUpUser', err.message);
+ let status = err.status || 400;
+ let message = err.message;
+ if (err.name === 'SequelizeValidationError') {
+ message = err.errs[0].message;
+ }
+ return res.status(status).json({ message });
+ });
+};
+
+const getVerifyUser = (req, res) => {
+ const email = req.swagger.params.email.value;
+ const verification_code = req.swagger.params.verification_code.value;
+ const resendEmail = req.swagger.params.resend.value;
+ const domain = req.headers['x-real-origin'];
+ let promiseQuery;
+
+ if (email && isEmail(email)) {
+ promiseQuery = toolsLib.user.getVerificationCodeByUserEmail(email)
+ .then((verificationCode) => {
+ if (resendEmail) {
+ sendEmail(
+ MAILTYPE.SIGNUP,
+ email,
+ verificationCode.code,
+ {},
+ domain
+ );
+ }
+ return res.json({
+ email,
+ verification_code: verificationCode.code,
+ message: VERIFICATION_EMAIL_MESSAGE
+ });
+ });
+ } else if (verification_code && isUUID(verification_code)) {
+ promiseQuery = toolsLib.user.getUserEmailByVerificationCode(verification_code)
+ .then((userEmail) => {
+ return res.json({
+ email: userEmail,
+ verification_code,
+ message: VERIFICATION_EMAIL_MESSAGE
+ });
+ });
+ } else {
+ return res.status(400).json({
+ message: PROVIDE_VALID_EMAIL_CODE
+ });
+ }
+
+ promiseQuery
+ .catch((err) => {
+ loggerUser.error(req.uuid, 'controllers/user/getVerifyUser', err.message);
+ if (err.message === USER_NOT_FOUND) {
+ return res.json({ message: VERIFICATION_EMAIL_MESSAGE });
+ }
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const verifyUser = (req, res) => {
+ const { email, verification_code } = req.swagger.params.data.value;
+ const domain = req.headers['x-real-origin'];
+
+ toolsLib.database.getModel('sequelize').transaction((transaction) => {
+ return toolsLib.database.findOne('user', {
+ where: { email },
+ attributes: ['id', 'email', 'settings', 'network_id']
+ })
+ .then((user) => {
+ return all([
+ toolsLib.user.getVerificationCodeByUserId(user.id),
+ user
+ ]);
+ })
+ .then(([ verificationCode, user ]) => {
+ if (verificationCode.verified) {
+ throw new Error(USER_IS_VERIFIED);
+ }
+
+ if (verification_code !== verificationCode.code) {
+ throw new Error(INVALID_VERIFICATION_CODE);
+ }
+
+ return all([
+ user,
+ toolsLib.user.createUserOnNetwork(email),
+ verificationCode.update(
+ { verified: true },
+ { fields: ['verified'], transaction }
+ )
+ ]);
+ })
+ .then(([ user, networkUser ]) => {
+ return user.update(
+ { network_id: networkUser.id },
+ { fields: ['network_id'], returning: true, transaction }
+ );
+ });
+ })
+ .then((user) => {
+ sendEmail(
+ MAILTYPE.WELCOME,
+ user.email,
+ {},
+ user.settings,
+ domain
+ );
+ return res.json({ message: USER_VERIFIED });
+ })
+ .catch((err) => {
+ loggerUser.error(req.uuid, 'controllers/user/verifyUser', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const loginPost = (req, res) => {
+ const {
+ email,
+ password,
+ otp_code,
+ captcha,
+ service
+ } = req.swagger.params.authentication.value;
+ const ip = req.headers['x-real-ip'];
+ const device = req.headers['user-agent'];
+ const domain = req.headers['x-real-origin'];
+ const origin = req.headers.origin;
+ const referer = req.headers.referer;
+ const time = new Date();
+
+ toolsLib.user.getUserByEmail(email.toLowerCase())
+ .then((user) => {
+ if (!user) {
+ throw new Error(USER_NOT_FOUND);
+ }
+ if (user.verification_level === 0) {
+ throw new Error(USER_NOT_VERIFIED);
+ } else if (!user.activated) {
+ throw new Error(USER_NOT_ACTIVATED);
+ }
+
+ return all([
+ user,
+ toolsLib.security.validatePassword(user.password, password)
+ ]);
+ })
+ .then(([ user, passwordIsValid ]) => {
+ if (!passwordIsValid) {
+ throw new Error(INVALID_CREDENTIALS);
+ }
+
+ if (!user.otp_enabled) {
+ return all([ user, toolsLib.security.checkCaptcha(captcha, ip) ]);
+ } else {
+ return all([
+ user,
+ toolsLib.security.verifyOtpBeforeAction(user.id, otp_code).then((validOtp) => {
+ if (!validOtp) {
+ throw new Error(INVALID_OTP_CODE);
+ } else {
+ return toolsLib.security.checkCaptcha(captcha, ip);
+ }
+ })
+ ]);
+ }
+ })
+ .then(([ user ]) => {
+ if (ip) {
+ toolsLib.user.registerUserLogin(user.id, ip, {
+ device,
+ domain,
+ origin,
+ referer
+ });
+ }
+ const data = {
+ ip,
+ time,
+ device
+ };
+ if (!service) {
+ sendEmail(MAILTYPE.LOGIN, email, data, {}, domain);
+ }
+ return res.status(201).json({
+ token: toolsLib.security.issueToken(
+ user.id,
+ user.network_id,
+ email,
+ ip,
+ user.is_admin,
+ user.is_support,
+ user.is_supervisor,
+ user.is_kyc,
+ user.is_communicator
+ )
+ });
+ })
+ .catch((err) => {
+ loggerUser.error(req.uuid, 'controllers/user/loginPost catch', err.message);
+ return res.status(403).json({ message: err.message });
+ });
+};
+
+const verifyToken = (req, res) => {
+ loggerUser.debug(req.uuid, 'controllers/user/verifyToken', req.auth.sub);
+ return res.json({ message: 'Valid Token' });
+};
+
+const requestResetPassword = (req, res) => {
+ const email = req.swagger.params.email.value;
+ const ip = req.headers['x-real-ip'];
+ const domain = req.headers['x-real-origin'];
+ const captcha = req.swagger.params.captcha.value;
+
+ toolsLib.security.sendResetPasswordCode(email, captcha, ip, domain)
+ .then(() => {
+ return res.json({ message: `Password request sent to: ${email}` });
+ })
+ .catch((err) => {
+ if (err.message === USER_NOT_FOUND) {
+ return res.json({ message: `Password request sent to: ${email}` });
+ }
+ loggerUser.error(req.uuid, 'controllers/user/requestResetPassword', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const resetPassword = (req, res) => {
+ const { code, new_password } = req.swagger.params.data.value;
+
+ toolsLib.security.resetUserPassword(code, new_password)
+ .then(() => {
+ return res.json({ message: 'Password updated.' });
+ })
+ .catch((err) => {
+ loggerUser.error(req.uuid, 'controllers/user/resetPassword', err.message);
+ return res.status(err.status || 400).json({ message: 'Invalid code' });
+ });
+};
+
+const getUser = (req, res) => {
+ loggerUser.debug(req.uuid, 'controllers/user/getUser', req.auth.sub);
+ const email = req.auth.sub.email;
+
+ toolsLib.user.getUserByEmail(email, true, true)
+ .then((user) => {
+ if (!user) {
+ throw new Error(USER_NOT_FOUND);
+ }
+ return res.json(toolsLib.user.omitUserFields(user));
+ })
+ .catch((err) => {
+ loggerUser.error(req.uuid, 'controllers/user/getUser', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const updateSettings = (req, res) => {
+ loggerUser.debug(req.uuid, 'controllers/user/updateSettings', req.auth.sub);
+ const email = req.auth.sub.email;
+ loggerUser.debug(
+ req.uuid,
+ 'controllers/user/updateSettings',
+ req.swagger.params.data.value
+ );
+ const data = req.swagger.params.data.value;
+
+ toolsLib.user.updateUserSettings({ email }, data)
+ .then((user) => res.json(user))
+ .catch((err) => {
+ loggerUser.error(req.uuid, 'controllers/user/updateSettings', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const changePassword = (req, res) => {
+ loggerUser.debug(req.uuid, 'controllers/user/changePassword', req.auth.sub);
+ const email = req.auth.sub.email;
+ const { old_password, new_password } = req.swagger.params.data.value;
+ loggerUser.debug(
+ req.uuid,
+ 'controllers/user/changePassword',
+ req.swagger.params.data.value
+ );
+
+ toolsLib.security.changeUserPassword(email, old_password, new_password)
+ .then(() => res.json({ message: 'Success' }))
+ .catch((err) => {
+ loggerUser.error(req.uuid, 'controllers/user/changePassword', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const setUsername = (req, res) => {
+ loggerUser.debug(req.uuid, 'controllers/user/setUsername auth', req.auth.sub);
+
+ const { id } = req.auth.sub;
+ const { username } = req.swagger.params.data.value;
+
+ toolsLib.user.setUsernameById(id, username)
+ .then(() => res.json({ message: 'Username successfully changed' }))
+ .catch((err) => {
+ loggerUser.error(req.uuid, 'controllers/user/setUsername', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getUserLogins = (req, res) => {
+ loggerUser.debug(req.uuid, 'controllers/user/getUserLogins auth', req.auth.sub);
+
+ const user_id = req.auth.sub.id;
+ const { limit, page, order_by, order, start_date, end_date, format } = req.swagger.params;
+
+ toolsLib.user.getUserLogins({
+ userId: user_id,
+ limit: limit.value,
+ page: page.value,
+ orderBy: order_by.value,
+ order: order.value,
+ startDate: start_date.value,
+ endDate: end_date.value,
+ format: format.value
+ })
+ .then((data) => {
+ if (format.value) {
+ res.setHeader('Content-disposition', `attachment; filename=${toolsLib.getKitConfig().api_name}-logins.csv`);
+ res.set('Content-Type', 'text/csv');
+ return res.status(202).send(data);
+ } else {
+ return res.json(data);
+ }
+ })
+ .catch((err) => {
+ loggerUser.error(req.uuid, 'controllers/user/getUserLogins', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const affiliationCount = (req, res) => {
+ loggerUser.debug(req.uuid, 'controllers/user/affiliationCount auth', req.auth.sub);
+
+ const user_id = req.auth.sub.id;
+ toolsLib.user.getAffiliationCount(user_id)
+ .then((num) => {
+ loggerUser.verbose(req.uuid, 'controllers/user/affiliationCount', num);
+ return res.json({ count: num });
+ })
+ .catch((err) => {
+ loggerUser.error(req.uuid, 'controllers/user/affiliationCount', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getUserBalance = (req, res) => {
+ loggerUser.debug(req.uuid, 'controllers/user/getUserBalance auth', req.auth.sub);
+ const user_id = req.auth.sub.id;
+
+ toolsLib.wallet.getUserBalanceByKitId(user_id)
+ .then((balance) => {
+ return res.json(balance);
+ })
+ .catch((err) => {
+ loggerUser.error(req.uuid, 'controllers/user/getUserBalance', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const deactivateUser = (req, res) => {
+ loggerUser.verbose(
+ req.uuid,
+ 'controllers/user/deactivateUser/auth',
+ req.auth
+ );
+ const { id, email } = req.auth.sub;
+
+ toolsLib.user.freezeUserById(id)
+ .then(() => {
+ return res.json({ message: `Account ${email} deactivated` });
+ })
+ .catch((err) => {
+ loggerUser.error(
+ req.uuid,
+ 'controllers/user/deactivateUser',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const createCryptoAddress = (req, res) => {
+ loggerUser.debug(
+ req.uuid,
+ 'controllers/user/createCryptoAddress',
+ req.auth.sub
+ );
+
+ const { id } = req.auth.sub;
+ const crypto = req.swagger.params.crypto.value;
+
+ if (!crypto || !toolsLib.subscribedToCoin(crypto)) {
+ loggerUser.error(
+ req.uuid,
+ 'controllers/user/createCryptoAddress',
+ `Invalid crypto: "${crypto}"`
+ );
+ return res.status(404).json({ message: `Invalid crypto: "${crypto}"` });
+ }
+
+ toolsLib.user.createUserCryptoAddressByKitId(id, crypto)
+ .then((data) => {
+ return res.status(201).json(data);
+ })
+ .catch((err) => {
+ loggerUser.error(
+ req.uuid,
+ 'controllers/user/createCryptoAddress',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getHmacToken = (req, res) => {
+ loggerUser.verbose(req.uuid, 'controllers/user/getHmacToken auth', req.auth.sub);
+
+ const { id } = req.auth.sub;
+
+ toolsLib.security.getUserKitHmacTokens(id)
+ .then((tokens) => {
+ return res.json(tokens);
+ })
+ .catch((err) => {
+ loggerUser.error(
+ req.uuid,
+ 'controllers/user/getHmacToken err',
+ err.message
+ );
+ res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const createHmacToken = (req, res) => {
+ loggerUser.verbose(
+ req.uuid,
+ 'controllers/user/createHmacToken auth',
+ req.auth.sub
+ );
+
+ const { id } = req.auth.sub;
+ const ip = req.headers['x-real-ip'];
+ const { name, otp_code } = req.swagger.params.data.value;
+
+ toolsLib.security.createUserKitHmacToken(id, otp_code, ip, name)
+ .then((token) => {
+ return res.json(token);
+ })
+ .catch((err) => {
+ loggerUser.error(
+ req.uuid,
+ 'controllers/user/createHmacToken',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const deleteHmacToken = (req, res) => {
+ loggerUser.verbose(
+ req.uuid,
+ 'controllers/user/deleteHmacToken auth',
+ req.auth.sub
+ );
+
+ const { id } = req.auth.sub;
+ const { token_id, otp_code } = req.swagger.params.data.value;
+
+ toolsLib.security.deleteUserKitHmacToken(id, otp_code, token_id)
+ .then(() => {
+ return res.json({ message: TOKEN_REMOVED });
+ })
+ .catch((err) => {
+ loggerUser.error(
+ req.uuid,
+ 'controllers/user/deleteHmacToken',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getUserStats = (req, res) => {
+ loggerUser.verbose(
+ req.uuid,
+ 'controllers/user/getUserStats',
+ req.auth.sub
+ );
+ const user_id = req.auth.sub.id;
+
+ toolsLib.user.getUserStatsByKitId(user_id)
+ .then((stats) => {
+ return res.json(stats);
+ })
+ .catch((err) => {
+ loggerUser.error('controllers/user/getUserStats', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+module.exports = {
+ signUpUser,
+ getVerifyUser,
+ verifyUser,
+ loginPost,
+ verifyToken,
+ requestResetPassword,
+ resetPassword,
+ getUser,
+ updateSettings,
+ changePassword,
+ setUsername,
+ getUserLogins,
+ affiliationCount,
+ getUserBalance,
+ deactivateUser,
+ createCryptoAddress,
+ getHmacToken,
+ createHmacToken,
+ deleteHmacToken,
+ getUserStats
+};
diff --git a/server/api/controllers/withdrawal.js b/server/api/controllers/withdrawal.js
new file mode 100644
index 0000000000..821fa30490
--- /dev/null
+++ b/server/api/controllers/withdrawal.js
@@ -0,0 +1,194 @@
+'use strict';
+
+const { loggerWithdrawals } = require('../../config/logger');
+const toolsLib = require('hollaex-tools-lib');
+const { all } = require('bluebird');
+const { USER_NOT_FOUND } = require('../../messages');
+
+const getWithdrawalFee = (req, res) => {
+ const currency = req.swagger.params.currency.value;
+
+ if (!toolsLib.subscribedToCoin(currency)) {
+ loggerWithdrawals.error(
+ req.uuid,
+ 'controller/withdrawal/getWithdrawalFee err',
+ `Invalid currency: "${currency}"`
+ );
+ return res.status(400).json({ message: `Invalid currency: "${currency}"` });
+ }
+
+ try {
+ return res.json({ fee: toolsLib.getKitCoin(currency).withdrawal_fee });
+ } catch (err) {
+ loggerWithdrawals.error(
+ req.uuid,
+ 'controller/withdrawal/getWithdrawalFee err',
+ err.message
+ );
+ return res.status(400).json({ message: err.message });
+ }
+};
+
+const requestWithdrawal = (req, res) => {
+ loggerWithdrawals.verbose(
+ req.uuid,
+ 'controller/withdrawal/requestWithdrawal auth',
+ req.auth.sub
+ );
+
+ const { id } = req.auth.sub;
+ const {
+ address,
+ otp_code,
+ amount,
+ currency
+ } = req.swagger.params.data.value;
+ const domain = req.headers['x-real-origin'];
+ const ip = req.headers['x-real-ip'];
+
+ toolsLib.wallet.sendRequestWithdrawalEmail(id, address, amount, currency, otp_code, ip, domain)
+ .then(() => {
+ return res.json({ message: 'Success' });
+ })
+ .catch((err) => {
+ loggerWithdrawals.error(
+ req.uuid,
+ 'controller/withdrawal/requestWithdrawal',
+ err.message
+ );
+ return res.status(400).json({ message: err.message });
+ });
+};
+
+const performWithdrawal = (req, res) => {
+ loggerWithdrawals.verbose(
+ req.uuid,
+ 'controller/withdrawal/performWithdraw body',
+ req.swagger.params.data.value
+ );
+
+ const { token } = req.swagger.params.data.value;
+
+ loggerWithdrawals.verbose(
+ req.uuid,
+ 'controller/withdrawal/performWithdraw parsed_params',
+ token
+ );
+
+ toolsLib.wallet.validateWithdrawalToken(token)
+ .then((withdrawal) => {
+ return all([ withdrawal, toolsLib.user.getUserByKitId(withdrawal.user_id) ]);
+ })
+ .then(([ withdrawal, user ]) => {
+ if (!user) {
+ throw new Error(USER_NOT_FOUND);
+ }
+ if (user.verification_level < 1) {
+ throw new Error('User must upgrade verification level to perform a withdrawal');
+ }
+ return all([ toolsLib.wallet.performWithdrawal(withdrawal.user_id, withdrawal.address, withdrawal.currency, withdrawal.amount, withdrawal.fee), withdrawal ]);
+ })
+ .then(([ { transaction_id }, { fee } ]) => {
+ return res.json({
+ message: 'Withdrawal successful',
+ fee,
+ transaction_id
+ });
+ })
+ .catch((err) => {
+ loggerWithdrawals.error(
+ req.uuid,
+ 'controller/withdrawals/performWithdrawal',
+ err.message
+ );
+ return res.status(400).json({ message: err.message });
+ });
+};
+
+const getAdminWithdrawals = (req, res) => {
+ loggerWithdrawals.verbose(
+ req.uuid,
+ 'controllers/withdrawal/getWithdrawals/auth',
+ req.auth
+ );
+
+ const { user_id, currency, limit, page, order_by, order, start_date, end_date, status, dismissed, rejected, processing, waiting, format } = req.swagger.params;
+
+ toolsLib.wallet.getUserWithdrawalsByKitId(user_id.value, currency.value, status.value, dismissed.value, rejected.value, processing.value, waiting.value, limit.value, page.value, order_by.value, order.value, start_date.value, end_date.value, format.value)
+ .then((data) => {
+ if (format.value) {
+ res.setHeader('Content-disposition', `attachment; filename=${toolsLib.getKitConfig().api_name}-users-deposits.csv`);
+ res.set('Content-Type', 'text/csv');
+ return res.status(202).send(data);
+ } else {
+ return res.json(data);
+ }
+ })
+ .catch((err) => {
+ loggerWithdrawals.error(
+ req.uuid,
+ 'controllers/withdrawal/getWithdrawals',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const getUserWithdrawals = (req, res) => {
+ loggerWithdrawals.verbose(
+ req.uuid,
+ 'controllers/withdrawal/getUserWithdrawals auth',
+ req.auth.sub
+ );
+ const user_id = req.auth.sub.id;
+ const currency = req.swagger.params.currency.value || '';
+ const { limit, page, order_by, order, start_date, end_date, format } = req.swagger.params;
+
+ toolsLib.wallet.getUserWithdrawalsByKitId(user_id, currency, limit.value, page.value, order_by.value, order.value, start_date.value, end_date.value, format.value)
+ .then((data) => {
+ if (format.value) {
+ res.setHeader('Content-disposition', `attachment; filename=${toolsLib.getKitConfig().api_name}-withdrawals.csv`);
+ res.set('Content-Type', 'text/csv');
+ return res.status(202).send(data);
+ } else {
+ return res.json(data);
+ }
+ })
+ .catch((err) => {
+ loggerWithdrawals.error('controllers/withdrawal/getUserWithdrawals', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+const cancelWithdrawal = (req, res) => {
+ loggerWithdrawals.verbose(
+ req.uuid,
+ 'controllers/withdrawal/cancelWithdrawal auth',
+ req.auth
+ );
+
+ const userId = req.auth.sub.id;
+ const id = req.swagger.params.id.value;
+
+ toolsLib.wallet.cancelUserWithdrawalByKitId(userId, id)
+ .then((withdrawal) => {
+ return res.json(withdrawal);
+ })
+ .catch((err) => {
+ loggerWithdrawals.error(
+ req.uuid,
+ 'controllers/withdrawal/cancelWithdrawal',
+ err.message
+ );
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+};
+
+module.exports = {
+ requestWithdrawal,
+ getWithdrawalFee,
+ performWithdrawal,
+ getAdminWithdrawals,
+ getUserWithdrawals,
+ cancelWithdrawal
+};
diff --git a/server/api/swagger/swagger.yaml b/server/api/swagger/swagger.yaml
new file mode 100644
index 0000000000..364c740714
--- /dev/null
+++ b/server/api/swagger/swagger.yaml
@@ -0,0 +1,4244 @@
+swagger: "2.0"
+info:
+ version: "2.0.0"
+ title: HollaEx Kit
+host: api.hollaex.com
+basePath: /v2
+schemes:
+ - http
+ - https
+consumes:
+ - application/json
+produces:
+ - application/json
+ - text/csv
+
+securityDefinitions:
+ Bearer:
+ description: JWT authentication
+ type: apiKey
+ name: Authorization
+ in: header
+ HmacKey:
+ description: HMAC API key
+ type: apiKey
+ name: api-key
+ in: header
+
+paths:
+ /health:
+ x-swagger-router-controller: public
+ get:
+ operationId: getHealth
+ description: Get health of server
+ tags:
+ - Public
+ responses:
+ 200:
+ description: Success
+ schema:
+ type: object
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /constants:
+ x-swagger-router-controller: public
+ get:
+ operationId: getConstants
+ description: Get the system constants such as pairs and currencies
+ tags:
+ - Public
+ responses:
+ 200:
+ description: Success
+ schema:
+ type: object
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /kit:
+ x-swagger-router-controller: public
+ get:
+ operationId: getKitConfigurations
+ description: Get kit configurations
+ tags:
+ - Public
+ responses:
+ 200:
+ description: Success
+ schema:
+ type: object
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /support:
+ x-swagger-router-controller: public
+ post:
+ operationId: sendSupportEmail
+ description: Send email to support
+ tags:
+ - Public
+ consumes:
+ - multipart/form-data
+ parameters:
+ - name: email
+ description: user email to contact
+ in: formData
+ required: true
+ type: string
+ format: email
+ - name: category
+ description: Category of the ticket
+ in: formData
+ required: true
+ type: string
+ maxLength: 64
+ - name: subject
+ description: Ticket issue subject
+ in: formData
+ required: true
+ type: string
+ maxLength: 256
+ - name: description
+ description: Description on the issue for ticket
+ in: formData
+ required: true
+ type: string
+ maxLength: 256
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /signup:
+ x-swagger-router-controller: user
+ post:
+ operationId: signUpUser
+ description: User sign up
+ tags:
+ - Public
+ parameters:
+ - name: signup
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/UserAuthentication"
+ responses:
+ 201:
+ description: Created
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /verify:
+ x-swagger-router-controller: user
+ get:
+ operationId: getVerifyUser
+ description: Get information of verification user, must provide email or verification_code. If you want to resend the email, provide email and resend query parameters
+ tags:
+ - Public
+ parameters:
+ - name: email
+ in: query
+ description: User's email
+ required: false
+ type: string
+ - name: resend
+ in: query
+ description: Resend email to user
+ required: false
+ type: boolean
+ - name: verification_code
+ in: query
+ description: Verification code
+ required: false
+ type: string
+ responses:
+ 200:
+ description: Success
+ schema:
+ type: object
+ properties:
+ verification_code:
+ type: string
+ email:
+ type: string
+ message:
+ type: string
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ post:
+ operationId: verifyUser
+ description: User Verification
+ tags:
+ - Public
+ parameters:
+ - name: data
+ in: body
+ required: true
+ schema:
+ type: object
+ required:
+ - email
+ - verification_code
+ properties:
+ email:
+ type: string
+ verification_code:
+ type: string
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /login:
+ x-swagger-router-controller: user
+ post:
+ operationId: loginPost
+ description: Login with a particular role. If OTP is enabled, the user must provide an OTP code
+ tags:
+ - Public
+ parameters:
+ - name: authentication
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/UserAuthentication"
+ responses:
+ 201:
+ description: Success
+ schema:
+ type: object
+ properties:
+ token:
+ type: string
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /verify-token:
+ x-swagger-router-controller: user
+ get:
+ operationId: verifyToken
+ description: Verify token
+ tags:
+ - Public
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - user
+ /reset-password:
+ x-swagger-router-controller: user
+ get:
+ operationId: requestResetPassword
+ description: Request a code to reset password of a user
+ tags:
+ - Public
+ parameters:
+ - name: email
+ in: query
+ required: true
+ type: string
+ - name: captcha
+ in: query
+ required: false
+ type: string
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ post:
+ operationId: resetPassword
+ description: Reset password of a user
+ tags:
+ - Public
+ parameters:
+ - name: data
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/ResetPassword"
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /notification/deposit:
+ x-swagger-router-controller: notification
+ post:
+ operationId: handleCurrencyDeposit
+ description: Deposit notification
+ tags:
+ - Notification
+ parameters:
+ - name: currency
+ description: currency name
+ in: query
+ required: true
+ type: string
+ - name: data
+ description: Deposit transaction info
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/ExternalDepositRequest"
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /notification/withdrawal:
+ x-swagger-router-controller: notification
+ post:
+ operationId: handleCurrencyWithdrawal
+ description: Withdrawal notification
+ tags:
+ - Notification
+ parameters:
+ - name: currency
+ description: currency name
+ in: query
+ required: true
+ type: string
+ - name: data
+ description: Withdrawal transaction info
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/ExternalWithdrawalRequest"
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /notification/apply:
+ x-swagger-router-controller: notification
+ get:
+ operationId: applyKitChanges
+ description: Reset kit to apply changes
+ tags:
+ - Notification
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /orderbook:
+ x-swagger-router-controller: public
+ get:
+ description: Returns the top orderbooks
+ operationId: getTopOrderbook
+ tags:
+ - Public
+ parameters:
+ - name: symbol
+ in: query
+ description: Currency symbol
+ required: false
+ type: string
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/OrderbooksResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /orderbooks:
+ x-swagger-router-controller: public
+ get:
+ description: Returns the top orderbooks
+ operationId: getTopOrderbooks
+ tags:
+ - Public
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/OrderbooksResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /trades:
+ x-swagger-router-controller: public
+ get:
+ description: Returns the trades
+ operationId: getTrades
+ parameters:
+ - name: symbol
+ in: query
+ description: Currency symbol
+ required: false
+ type: string
+ tags:
+ - Public
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/PublicTradesResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /trades/history:
+ x-swagger-router-controller: public
+ get:
+ description: Returns the trades
+ operationId: getTradesHistory
+ tags:
+ - Public
+ parameters:
+ - in: query
+ name: symbol
+ description: Symbol pair
+ required: false
+ type: string
+ - in: query
+ name: side
+ description: Symbol pair
+ required: false
+ type: string
+ enum: [ 'buy', 'sell' ]
+ - in: query
+ name: limit
+ description: "Number of elements to return. Default: 50. Maximun: 100"
+ required: false
+ type: number
+ format: int32
+ default: 50
+ - in: query
+ name: page
+ description: Page of data to retrieve
+ required: false
+ type: number
+ format: int32
+ default: 1
+ - in: query
+ name: order_by
+ description: Field to order data
+ required: false
+ type: string
+ - in: query
+ name: order
+ description: direction to order
+ required: false
+ type: string
+ enum: ['asc', 'desc']
+ - in: query
+ name: start_date
+ description: Starting date of queried data
+ required: false
+ type: string
+ format: date-time
+ - in: query
+ name: end_date
+ description: Ending date of queried data
+ required: false
+ type: string
+ format: date-time
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/PublicTradesResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /ticker:
+ x-swagger-router-controller: public
+ get:
+ description: Get historic data, time interval is 5 minutes
+ operationId: getTicker
+ tags:
+ - Public
+ parameters:
+ - in: query
+ name: symbol
+ description: Currency symbol
+ required: false
+ type: string
+ responses:
+ 200:
+ description: Success
+ schema:
+ type: object
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /ticker/all:
+ x-swagger-router-controller: public
+ get:
+ description: Get historic data, time interval is 5 minutes
+ operationId: getAllTicker
+ tags:
+ - Public
+ responses:
+ 200:
+ description: Success
+ schema:
+ type: object
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /tickers:
+ x-swagger-router-controller: public
+ get:
+ description: Get historic data, time interval is 5 minutes
+ operationId: getAllTicker
+ tags:
+ - Public
+ responses:
+ 200:
+ description: Success
+ schema:
+ type: object
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /chart:
+ x-swagger-router-controller: public
+ get:
+ description: Get trade history HOLCV
+ operationId: getChart
+ tags:
+ - Public
+ - Chart
+ parameters:
+ - in: query
+ name: from
+ description: Start Date
+ required: true
+ type: string
+ - in: query
+ name: to
+ description: End data
+ required: true
+ type: string
+ - in: query
+ name: symbol
+ description: trading pair symbol
+ required: true
+ type: string
+ - in: query
+ name: resolution
+ description: time interval resolution (1d 1W etc)
+ required: true
+ type: string
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/TradeDataResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /charts:
+ x-swagger-router-controller: public
+ get:
+ description: Get trade history HOLCV for all pairs
+ operationId: getCharts
+ tags:
+ - Public
+ - Chart
+ parameters:
+ - in: query
+ name: from
+ description: Start Date
+ required: true
+ type: string
+ - in: query
+ name: to
+ description: End data
+ required: true
+ type: string
+ - in: query
+ name: resolution
+ description: time interval resolution (1d 1W etc)
+ required: true
+ type: string
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/ObjectResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /udf/config:
+ x-swagger-router-controller: public
+ get:
+ description: Get tradingview udf config
+ operationId: getConfig
+ tags:
+ - Public
+ - Chart
+ responses:
+ 200:
+ description: Success
+ schema:
+ type: object
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /udf/history:
+ x-swagger-router-controller: public
+ get:
+ description: Get tradingview udf history HOLCV
+ operationId: getHistory
+ tags:
+ - Public
+ - Chart
+ parameters:
+ - in: query
+ name: from
+ description: Start Date
+ required: true
+ type: string
+ - in: query
+ name: to
+ description: End data
+ required: true
+ type: string
+ - in: query
+ name: symbol
+ description: trading pair symbol
+ required: true
+ type: string
+ - in: query
+ name: resolution
+ description: time interval resolution (1d 1W etc)
+ required: true
+ type: string
+ responses:
+ 200:
+ description: Success
+ schema:
+ type: object
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /udf/symbols:
+ x-swagger-router-controller: public
+ get:
+ description: Get tradingview udf symbols
+ operationId: getSymbols
+ tags:
+ - Public
+ - Chart
+ parameters:
+ - in: query
+ name: symbol
+ description: Trading pair symbol e.g. btc-eur
+ required: true
+ type: string
+ responses:
+ 200:
+ description: Success
+ schema:
+ type: object
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /oracle/prices:
+ x-swagger-router-controller: public
+ get:
+ operationId: getAssetsPrices
+ description: Convert assets prices
+ tags:
+ - Public
+ - Oracle
+ parameters:
+ - name: assets
+ in: query
+ required: true
+ description: Assets to convert
+ type: array
+ items:
+ type: string
+ minItems: 1
+ - name: quote
+ in: query
+ required: false
+ description: Quote coin to convert to
+ type: string
+ - name: amount
+ in: query
+ required: false
+ description: Amount to convert
+ type: number
+ format: double
+ minimum: 0
+ exclusiveMinimum: true
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/OraclePriceResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /user:
+ x-swagger-router-controller: user
+ get:
+ operationId: getUser
+ description: List information of authenticated user
+ tags:
+ - User
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/UserResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ - HmacKey: []
+ x-security-scopes:
+ - user
+ - hmac
+ /user/stats:
+ x-swagger-router-controller: user
+ get:
+ operationId: getUserStats
+ description: Sum of user trades and its stats
+ tags:
+ - User
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/StatsResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - user
+ /user/settings:
+ x-swagger-router-controller: user
+ put:
+ operationId: updateSettings
+ description: Edit settings of authenticated user
+ tags:
+ - User
+ parameters:
+ - name: data
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/SettingsPut"
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/UserResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - user
+ /user/change-password:
+ x-swagger-router-controller: user
+ post:
+ operationId: changePassword
+ description: Change password of authenticated user
+ tags:
+ - User
+ parameters:
+ - name: data
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/ChangePassword"
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - user
+ /user/username:
+ x-swagger-router-controller: user
+ post:
+ operationId: setUsername
+ description: Change user's username
+ tags:
+ - User
+ parameters:
+ - name: data
+ in: body
+ required: true
+ schema:
+ type: object
+ required:
+ - username
+ properties:
+ username:
+ type: string
+ minLength: 3
+ maxLength: 15
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - user
+ /user/logins:
+ x-swagger-router-controller: user
+ get:
+ operationId: getUserLogins
+ description: List logins of authenticated user
+ tags:
+ - User
+ parameters:
+ - in: query
+ name: limit
+ description: "Number of elements to return. Default: 50. Maximun: 100"
+ required: false
+ type: number
+ format: int32
+ - in: query
+ name: page
+ description: Page of data to retrieve
+ required: false
+ type: number
+ format: int32
+ - in: query
+ name: order_by
+ description: Field to order data
+ required: false
+ type: string
+ - in: query
+ name: order
+ description: direction to order
+ required: false
+ type: string
+ enum: ['asc', 'desc']
+ - in: query
+ name: start_date
+ description: Starting date of queried data
+ required: false
+ type: string
+ format: date-time
+ - in: query
+ name: end_date
+ description: Ending date of queried data
+ required: false
+ type: string
+ format: date-time
+ - in: query
+ name: format
+ description: Specify data format
+ required: false
+ enum: ['csv']
+ type: string
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/LoginsResponse"
+ 202:
+ description: CSV
+ schema:
+ type: string
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - user
+ /user/affiliation:
+ x-swagger-router-controller: user
+ get:
+ operationId: affiliationCount
+ description: Get the number of affiliated account a user has made
+ tags:
+ - User
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/CountResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - user
+ /user/request-withdrawal:
+ x-swagger-router-controller: withdrawal
+ post:
+ operationId: requestWithdrawal
+ description: This will send a confirmation email to the email address on record, if activate OTP, it will require OTP as well.
+ tags:
+ - User
+ - Withdraw
+ parameters:
+ - name: data
+ description: withdrawal information
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/WithdrawalRequest"
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ - HmacKey: []
+ x-security-scopes:
+ - user
+ - hmac
+ /user/confirm-withdrawal:
+ x-swagger-router-controller: withdrawal
+ post:
+ operationId: performWithdrawal
+ description: confirm a withdrawal request
+ tags:
+ - User
+ - Withdraw
+ parameters:
+ - name: data
+ description: Tansfer information
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/WithdrawalConfirmation"
+ responses:
+ 200:
+ description: Success
+ schema:
+ type: object
+ properties:
+ message:
+ type: string
+ transaction_id:
+ type: string
+ fee:
+ type: number
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /user/withdrawal/fee:
+ x-swagger-router-controller: withdrawal
+ get:
+ description: Returns the withdrawal fees for a specific coin
+ operationId: getWithdrawalFee
+ tags:
+ - User
+ - Withdrawal
+ parameters:
+ - name: currency
+ description: currency to perform the withdrawal
+ in: query
+ required: true
+ type: string
+ responses:
+ 200:
+ description: Success
+ schema:
+ type: object
+ properties:
+ fee:
+ type: number
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /user/request-otp:
+ x-swagger-router-controller: otp
+ get:
+ operationId: requestOtp
+ description: Generate OTP code for OTP verification
+ tags:
+ - User
+ - OTP
+ responses:
+ 200:
+ description: Created
+ schema:
+ type: object
+ required:
+ - secret
+ properties:
+ secret:
+ type: string
+ 403:
+ description: Access Denied
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - user
+ /user/activate-otp:
+ x-swagger-router-controller: otp
+ post:
+ operationId: activateOtp
+ description: Enable OTP
+ parameters:
+ - name: data
+ description: Activation code
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/OtpRequest"
+ tags:
+ - User
+ - OTP
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ 403:
+ description: Access Denied
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - user
+ /user/deactivate-otp:
+ x-swagger-router-controller: otp
+ post:
+ operationId: deactivateOtp
+ description: Disable OTP
+ tags:
+ - User
+ - OTP
+ parameters:
+ - name: data
+ description: Activation code
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/OtpRequest"
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ 403:
+ description: Access Denied
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - user
+ /user/deactivate:
+ x-swagger-router-controller: user
+ get:
+ operationId: deactivateUser
+ description: Deactivate the user account
+ tags:
+ - User
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - user
+ /order:
+ x-swagger-router-controller: order
+ get:
+ operationId: getUserOrder
+ description: Get order of authenticated user
+ tags:
+ - User
+ parameters:
+ - name: order_id
+ in: query
+ required: true
+ type: string
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/OrderResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ - HmacKey: []
+ x-security-scopes:
+ - user
+ - hmac
+ delete:
+ operationId: cancelUserOrder
+ description: Cancel order of authenticated user
+ tags:
+ - User
+ parameters:
+ - name: order_id
+ in: query
+ required: true
+ type: string
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/OrderResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ - HmacKey: []
+ x-security-scopes:
+ - user
+ - hmac
+ post:
+ description: Create a new order
+ operationId: createOrder
+ tags:
+ - User
+ - Order
+ parameters:
+ - in: body
+ name: order
+ required: true
+ description: order data
+ schema:
+ $ref: "#/definitions/OrderRequest"
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/OrderResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ - HmacKey: []
+ x-security-scopes:
+ - user
+ - hmac
+ /tiers:
+ x-swagger-router-controller: tier
+ get:
+ description: Get user tiers
+ operationId: getTiers
+ tags:
+ - Public
+ responses:
+ 200:
+ description: Success
+ schema:
+ type: object
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /admin/tier:
+ x-swagger-router-controller: tier
+ post:
+ description: Make a new Tier
+ operationId: postTier
+ tags:
+ - Admin
+ parameters:
+ - name: data
+ in: body
+ required: true
+ description: Tier object
+ schema:
+ $ref: "#/definitions/PostTierBody"
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/TierObject"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ put:
+ description: Update tier
+ operationId: putTier
+ tags:
+ - Admin
+ parameters:
+ - name: data
+ in: body
+ required: true
+ description: Tier object
+ schema:
+ $ref: "#/definitions/PutTierBody"
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/TierObject"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ /orders:
+ x-swagger-router-controller: order
+ get:
+ operationId: getAllUserOrders
+ description: List orders of authenticated user
+ tags:
+ - User
+ parameters:
+ - name: symbol
+ in: query
+ description: Currency symbol
+ required: false
+ type: string
+ - in: query
+ name: side
+ description: buy or sell
+ required: false
+ enum: ['buy', 'sell']
+ type: string
+ - in: query
+ name: status
+ description: Order status e.g. pfilled, filled
+ required: false
+ type: string
+ - in: query
+ name: open
+ description: Open status of order
+ required: false
+ type: boolean
+ - in: query
+ name: limit
+ description: "Number of elements to return. Default: 50. Maximun: 100"
+ required: false
+ type: number
+ format: int32
+ - in: query
+ name: page
+ description: Page of data to retrieve
+ required: false
+ type: number
+ format: int32
+ - in: query
+ name: order_by
+ description: Field to order data
+ required: false
+ type: string
+ - in: query
+ name: order
+ description: direction to order
+ required: false
+ type: string
+ enum: ['asc', 'desc']
+ - in: query
+ name: start_date
+ description: Starting date of queried data
+ required: false
+ type: string
+ format: date-time
+ - in: query
+ name: end_date
+ description: Ending date of queried data
+ required: false
+ type: string
+ format: date-time
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/OrdersResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ - HmacKey: []
+ x-security-scopes:
+ - user
+ - hmac
+ /order/all:
+ x-swagger-router-controller: order
+ delete:
+ operationId: cancelAllUserOrders
+ description: Cancel all orders of authenticated user
+ tags:
+ - User
+ parameters:
+ - name: symbol
+ in: query
+ description: Currency symbol
+ required: false
+ type: string
+ responses:
+ 200:
+ description: Success
+ schema:
+ type: array
+ items:
+ $ref: "#/definitions/OrdersResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ - HmacKey: []
+ x-security-scopes:
+ - user
+ - hmac
+ /user/balance:
+ x-swagger-router-controller: user
+ get:
+ operationId: getUserBalance
+ description: Balance of authenticated user
+ tags:
+ - User
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/BalanceResponse"
+ 403:
+ description: Access Denied
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ - HmacKey: []
+ x-security-scopes:
+ - user
+ - hmac
+ /user/create-address:
+ x-swagger-router-controller: user
+ get:
+ operationId: createCryptoAddress
+ description: Create a crypto address for the user
+ tags:
+ - User
+ - Wallet
+ parameters:
+ - name: crypto
+ in: query
+ required: true
+ type: string
+ minLength: 3
+ maxLength: 15
+ responses:
+ 201:
+ description: Success
+ schema:
+ $ref: "#/definitions/UsersAddressResponse"
+ default:
+ description: "Error"
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - user
+ /user/token:
+ x-swagger-router-controller: user
+ post:
+ operationId: createHmacToken
+ description: Create an HMAC token. It requires OTP to create a token
+ tags:
+ - User
+ - Token
+ parameters:
+ - name: data
+ in: body
+ required: true
+ schema:
+ type: object
+ required:
+ - name
+ - otp_code
+ properties:
+ name:
+ type: string
+ otp_code:
+ type: string
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/ObjectResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - user
+ delete:
+ operationId: deleteHmacToken
+ description: Revoke an issued token. It requires otp.
+ tags:
+ - User
+ - Token
+ parameters:
+ - name: data
+ in: body
+ required: true
+ schema:
+ type: object
+ required:
+ - token_id
+ - otp_code
+ properties:
+ token_id:
+ type: number
+ format: int32
+ otp_code:
+ type: string
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/ObjectResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - user
+ /user/tokens:
+ x-swagger-router-controller: user
+ get:
+ operationId: getHmacToken
+ description: Get user active HMAC tokens
+ tags:
+ - User
+ - Token
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/TokensResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - user
+ /user/trades:
+ x-swagger-router-controller: trade
+ get:
+ operationId: getUserTrades
+ description: List trades of authenticated user
+ tags:
+ - User
+ parameters:
+ - in: query
+ name: symbol
+ description: Currency symbol
+ required: false
+ type: string
+ - in: query
+ name: limit
+ description: "Number of elements to return. Default: 50. Maximun: 100"
+ required: false
+ type: number
+ format: int32
+ default: 50
+ - in: query
+ name: page
+ description: Page of data to retrieve
+ required: false
+ type: number
+ format: int32
+ default: 1
+ - in: query
+ name: order_by
+ description: Field to order data
+ required: false
+ type: string
+ - in: query
+ name: order
+ description: direction to order
+ required: false
+ type: string
+ enum: ['asc', 'desc']
+ - in: query
+ name: start_date
+ description: Starting date of queried data
+ required: false
+ type: string
+ format: date-time
+ - in: query
+ name: end_date
+ description: Ending date of queried data
+ required: false
+ type: string
+ format: date-time
+ - in: query
+ name: format
+ description: Specify data format
+ required: false
+ enum: ['csv']
+ type: string
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/TradesResponse"
+ 202:
+ description: CSV
+ schema:
+ type: string
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ - HmacKey: []
+ x-security-scopes:
+ - user
+ - hmac
+ /user/deposits:
+ x-swagger-router-controller: deposit
+ get:
+ operationId: getUserDeposits
+ description: List deposit of authenticated user
+ tags:
+ - User
+ parameters:
+ - name: currency
+ in: query
+ description: Type of currency of deposits to filter
+ required: false
+ type: string
+ - in: query
+ name: limit
+ description: "Number of elements to return. Default: 50. Maximun: 100"
+ required: false
+ type: number
+ format: int32
+ - in: query
+ name: page
+ description: Page of data to retrieve
+ required: false
+ type: number
+ format: int32
+ - in: query
+ name: order_by
+ description: Field to order data
+ required: false
+ type: string
+ - in: query
+ name: order
+ description: direction to order
+ required: false
+ type: string
+ enum: ['asc', 'desc']
+ - in: query
+ name: start_date
+ description: Starting date of queried data
+ required: false
+ type: string
+ format: date-time
+ - in: query
+ name: end_date
+ description: Ending date of queried data
+ required: false
+ type: string
+ format: date-time
+ - in: query
+ name: format
+ description: Specify data format
+ required: false
+ enum: ['csv']
+ type: string
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/TransactionsResponse"
+ 202:
+ description: CSV
+ schema:
+ type: string
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ - HmacKey: []
+ x-security-scopes:
+ - user
+ - hmac
+ /user/withdrawals:
+ x-swagger-router-controller: withdrawal
+ get:
+ operationId: getUserWithdrawals
+ description: List withdrawals of authenticated user
+ tags:
+ - User
+ parameters:
+ - name: currency
+ in: query
+ description: Type of currency of withdrawals to filter
+ required: false
+ type: string
+ - in: query
+ name: limit
+ description: "Number of elements to return. Default: 50. Maximun: 100"
+ required: false
+ type: number
+ format: int32
+ - in: query
+ name: page
+ description: Page of data to retrieve.
+ required: false
+ type: number
+ format: int32
+ - in: query
+ name: order_by
+ description: Field to order data
+ required: false
+ type: string
+ - in: query
+ name: order
+ description: direction to order
+ required: false
+ type: string
+ enum: ['asc', 'desc']
+ - in: query
+ name: start_date
+ description: Starting date of queried data
+ required: false
+ type: string
+ format: date-time
+ - in: query
+ name: end_date
+ description: Ending date of queried data
+ required: false
+ type: string
+ format: date-time
+ - in: query
+ name: format
+ description: Specify data format
+ required: false
+ enum: ['csv']
+ type: string
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/TransactionsResponse"
+ 202:
+ description: CSV
+ schema:
+ type: string
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ - HmacKey: []
+ x-security-scopes:
+ - user
+ - hmac
+ /user/withdrawal:
+ x-swagger-router-controller: withdrawal
+ delete:
+ operationId: cancelWithdrawal
+ description: Cancel a user's withdrawal which is pending
+ tags:
+ - User
+ parameters:
+ - name: id
+ in: query
+ required: true
+ type: number
+ format: int32
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/TransactionsResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - user
+
+# ADMIN ENDPOINTS
+ /admin/fees:
+ x-swagger-router-controller: admin
+ get:
+ operationId: getExchangeGeneratedFees
+ description: Get exchange generated fees
+ tags:
+ - Admin
+ parameters:
+ - in: query
+ name: limit
+ description: "Number of elements to return. Default: 50. Maximun: 100"
+ required: false
+ type: number
+ format: int32
+ - in: query
+ name: page
+ description: Page of data to retrieve.
+ required: false
+ type: number
+ format: int32
+ - in: query
+ name: start_date
+ description: Starting date of queried data
+ required: false
+ type: string
+ format: date-time
+ - in: query
+ name: end_date
+ description: Ending date of queried data
+ required: false
+ type: string
+ format: date-time
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/FeesResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ /admin/signup:
+ x-swagger-router-controller: admin
+ post:
+ operationId: createInitialAdmin
+ description: Create initial admin account for exchange
+ tags:
+ - Admin
+ parameters:
+ - name: data
+ in: body
+ required: true
+ schema:
+ type: object
+ required:
+ - email
+ - password
+ properties:
+ email:
+ type: string
+ password:
+ type: string
+ format: password
+ responses:
+ 201:
+ description: Created
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ /admin/complete-setup:
+ x-swagger-router-controller: admin
+ get:
+ operationId: completeExchangeSetup
+ description: Flag exchange setup as complete
+ tags:
+ - Admin
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ /admin/network-credentials:
+ x-swagger-router-controller: admin
+ put:
+ operationId: putNetworkCredentials
+ description: Update exchange network credentials
+ tags:
+ - Admin
+ parameters:
+ - name: data
+ in: body
+ required: true
+ description: New network key and secret
+ schema:
+ type: object
+ required:
+ - api_key
+ - api_secret
+ properties:
+ api_key:
+ type: string
+ api_secret:
+ type: string
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ /admin/kit:
+ x-swagger-router-controller: admin
+ get:
+ operationId: getAdminKit
+ description: Get exchange kit configurations and secrets for admin
+ tags:
+ - Admin
+ responses:
+ 200:
+ description: Success
+ schema:
+ type: object
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ - supervisor
+ - support
+ - kyc
+ - communicator
+ put:
+ operationId: putAdminKit
+ description: Update exchange constants and secrets
+ tags:
+ - Admin
+ parameters:
+ - name: data
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/KitPut"
+ responses:
+ 200:
+ description: Success
+ schema:
+ type: object
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ - communicator
+ /admin/operators:
+ x-swagger-router-controller: admin
+ get:
+ operationId: getOperators
+ description: Get exchange operators
+ tags:
+ - Admin
+ parameters:
+ - in: query
+ name: limit
+ description: "Number of elements to return. Default: 50. Maximun: 100"
+ required: false
+ type: number
+ format: int32
+ - in: query
+ name: page
+ description: Page of data to retrieve
+ required: false
+ type: number
+ format: int32
+ - in: query
+ name: order_by
+ description: Field to order data
+ required: false
+ type: string
+ - in: query
+ name: order
+ description: Direction to order
+ required: false
+ type: string
+ enum: ['asc', 'desc']
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/OperatorsResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ /admin/operator/invite:
+ x-swagger-router-controller: admin
+ get:
+ operationId: inviteNewOperator
+ description: Invite a new operator
+ tags:
+ - Admin
+ parameters:
+ - name: email
+ in: query
+ required: true
+ type: string
+ description: Email of user to invite
+ - name: role
+ in: query
+ required: true
+ type: string
+ description: Role of user
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ /admin/upload:
+ x-swagger-router-controller: admin
+ post:
+ operationId: uploadImage
+ description: Upload an image
+ tags:
+ - Admin
+ consumes:
+ - multipart/form-data
+ parameters:
+ - name: file
+ description: file of image
+ in: formData
+ required: true
+ type: file
+ - name: name
+ description: name of image
+ in: formData
+ required: true
+ type: string
+ responses:
+ 200:
+ description: Success
+ schema:
+ type: object
+ properties:
+ path:
+ type: string
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ /admin/pairs:
+ x-swagger-router-controller: admin
+ get:
+ description: Get pairs
+ operationId: getPairs
+ parameters:
+ - name: pair
+ in: query
+ required: false
+ type: string
+ tags:
+ - Admin
+ responses:
+ 200:
+ description: Success
+ schema:
+ type: object
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ /admin/pair/fees:
+ x-swagger-router-controller: tier
+ put:
+ operationId: updatePairFees
+ description: Update trading pair fees
+ tags:
+ - Admin
+ parameters:
+ - name: data
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/PairFeesPut"
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ /admin/tiers/limits:
+ x-swagger-router-controller: tier
+ put:
+ operationId: updateTiersLimits
+ description: Update tier limits
+ tags:
+ - Admin
+ parameters:
+ - name: data
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/TiersLimitsPut"
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ /admin/coins:
+ x-swagger-router-controller: admin
+ get:
+ description: View coins
+ operationId: getCoins
+ tags:
+ - Admin
+ parameters:
+ - name: currency
+ in: query
+ required: false
+ type: string
+ description: Leave blank to get all coins
+ responses:
+ 200:
+ description: Success
+ schema:
+ type: object
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ /admin/check-transaction:
+ x-swagger-router-controller: admin
+ get:
+ operationId: adminCheckTransaction
+ description: Check a blockchain transaction to add create/update deposit
+ tags:
+ - Admin
+ parameters:
+ - in: query
+ name: currency
+ description: Currency of the transaction
+ required: true
+ type: string
+ - in: query
+ name: transaction_id
+ description: Blockchain transaction id
+ required: true
+ type: string
+ - in: query
+ name: address
+ description: crypto address receiving the deposit
+ required: true
+ type: string
+ - in: query
+ name: is_testnet
+ description: specify whether or not transaction was on tesntet
+ required: false
+ type: boolean
+ default: false
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ - supervisor
+ - support
+ - kyc
+ /admin/users:
+ x-swagger-router-controller: admin
+ get:
+ description: Get exchange users for admin
+ operationId: getUsersAdmin
+ tags:
+ - Admin
+ parameters:
+ - name: id
+ in: query
+ required: false
+ type: number
+ - name: search
+ in: query
+ required: false
+ type: string
+ - name: pending
+ in: query
+ required: false
+ type: boolean
+ - in: query
+ name: limit
+ description: "Number of elements to return. Default: 50. Maximun: 100"
+ required: false
+ type: number
+ format: int32
+ - in: query
+ name: page
+ description: Page of data to retrieve
+ required: false
+ type: number
+ format: int32
+ - in: query
+ name: order_by
+ description: Field to order data
+ required: false
+ type: string
+ - in: query
+ name: order
+ description: Direction to order
+ required: false
+ type: string
+ enum: ['asc', 'desc']
+ - in: query
+ name: start_date
+ description: Starting date of queried data
+ required: false
+ type: string
+ format: date-time
+ - in: query
+ name: end_date
+ description: Ending date of queried data
+ required: false
+ type: string
+ format: date-time
+ - in: query
+ name: format
+ description: Specify data format
+ required: false
+ enum: ['csv']
+ type: string
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/AdminUsersResponse"
+ 202:
+ description: CSV
+ schema:
+ type: string
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ - supervisor
+ - support
+ - kyc
+ /admin/user/role:
+ x-swagger-router-controller: admin
+ put:
+ operationId: putUserRole
+ description: "Update a user's role"
+ tags:
+ - Admin
+ parameters:
+ - name: user_id
+ in: query
+ required: true
+ type: number
+ - name: data
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/UserRolePut"
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/UserRolePutResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ /admin/user/note:
+ x-swagger-router-controller: admin
+ put:
+ operationId: putUserNote
+ description: Update a user note
+ tags:
+ - Admin
+ parameters:
+ - name: user_id
+ in: query
+ required: true
+ type: number
+ - name: data
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/UserNotePut"
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ - supervisor
+ - kyc
+ - support
+ /admin/user/balance:
+ x-swagger-router-controller: admin
+ get:
+ operationId: getAdminUserBalance
+ description: Get balance of given user
+ tags:
+ - Admin
+ parameters:
+ - name: user_id
+ in: query
+ required: true
+ type: number
+ format: int32
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/BalanceResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ - supervisor
+ /admin/logins:
+ x-swagger-router-controller: admin
+ get:
+ description: Get the user logins for admin
+ operationId: getAdminUserLogins
+ parameters:
+ - in: query
+ name: user_id
+ description: User id
+ required: false
+ type: number
+ format: int32
+ - in: query
+ name: limit
+ description: "Number of elements to return. Default: 50. Maximun: 100"
+ required: false
+ type: number
+ format: int32
+ - in: query
+ name: page
+ description: Page of data to retrieve
+ required: false
+ type: number
+ format: int32
+ - in: query
+ name: order_by
+ description: Field to order data
+ required: false
+ type: string
+ - in: query
+ name: order
+ description: direction to order
+ required: false
+ type: string
+ enum: ['asc', 'desc']
+ - in: query
+ name: start_date
+ description: Starting date of queried data
+ required: false
+ type: string
+ format: date-time
+ - in: query
+ name: end_date
+ description: Ending date of queried data
+ required: false
+ type: string
+ format: date-time
+ - in: query
+ name: format
+ description: Specify data format
+ required: false
+ enum: ['csv']
+ type: string
+ tags:
+ - Admin
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/LoginsResponse"
+ 202:
+ description: CSV
+ schema:
+ type: string
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ - supervisor
+ - support
+ - kyc
+ /admin/audits:
+ x-swagger-router-controller: admin
+ get:
+ description: Get the user audits for admin
+ operationId: getUserAudits
+ parameters:
+ - in: query
+ name: user_id
+ description: User id
+ required: false
+ type: number
+ format: int32
+ - in: query
+ name: limit
+ description: "Number of elements to return. Default: 50. Maximun: 100"
+ required: false
+ type: number
+ format: int32
+ - in: query
+ name: page
+ description: Page of data to retrieve
+ required: false
+ type: number
+ format: int32
+ - in: query
+ name: order_by
+ description: Field to order data
+ required: false
+ type: string
+ - in: query
+ name: order
+ description: direction to order
+ required: false
+ type: string
+ enum: ['asc', 'desc']
+ - in: query
+ name: start_date
+ description: Starting date of queried data
+ required: false
+ type: string
+ format: date-time
+ - in: query
+ name: end_date
+ description: Ending date of queried data
+ required: false
+ type: string
+ format: date-time
+ - in: query
+ name: format
+ description: Specify data format
+ required: false
+ enum: ['csv']
+ type: string
+ tags:
+ - Admin
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/AuditsResponse"
+ 202:
+ description: CSV
+ schema:
+ type: string
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ /admin/orders:
+ x-swagger-router-controller: order
+ get:
+ description: Get user orders for admin
+ operationId: getAdminOrders
+ parameters:
+ - in: query
+ name: user_id
+ description: User id
+ required: false
+ type: number
+ format: int32
+ - in: query
+ name: side
+ description: buy or sell
+ required: false
+ enum: ['buy', 'sell']
+ type: string
+ - in: query
+ name: status
+ description: Order status e.g. pfilled, filled
+ required: false
+ type: string
+ - in: query
+ name: open
+ description: Open status of order
+ required: false
+ type: boolean
+ - in: query
+ name: limit
+ description: "Number of elements to return. Default: 50. Maximun: 100"
+ required: false
+ type: number
+ format: int32
+ - in: query
+ name: page
+ description: Page of data to retrieve
+ required: false
+ type: number
+ format: int32
+ - in: query
+ name: symbol
+ description: Currency symbol
+ required: false
+ type: string
+ - in: query
+ name: order_by
+ description: Field to order data
+ required: false
+ type: string
+ - in: query
+ name: order
+ description: direction to order
+ required: false
+ type: string
+ enum: ['asc', 'desc']
+ - in: query
+ name: start_date
+ description: Starting date of queried data
+ required: false
+ type: string
+ format: date-time
+ - in: query
+ name: end_date
+ description: Ending date of queried data
+ required: false
+ type: string
+ format: date-time
+ tags:
+ - Admin
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/OrdersResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ - supervisor
+ - support
+ /admin/order:
+ x-swagger-router-controller: order
+ delete:
+ operationId: adminCancelOrder
+ description: Admin Cancel order
+ tags:
+ - Admin
+ parameters:
+ - name: order_id
+ in: query
+ required: true
+ type: string
+ - name: user_id
+ in: query
+ required: true
+ type: number
+ format: int32
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/OrderResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ - supervisor
+ /admin/trades:
+ x-swagger-router-controller: trade
+ get:
+ description: Get user trades for admin
+ operationId: getAdminTrades
+ parameters:
+ - in: query
+ name: user_id
+ description: User id
+ required: false
+ type: number
+ format: int32
+ - in: query
+ name: limit
+ description: "Number of elements to return. Default: 50. Maximun: 100"
+ required: false
+ type: number
+ format: int32
+ - in: query
+ name: page
+ description: Page of data to retrieve
+ required: false
+ type: number
+ format: int32
+ - in: query
+ name: symbol
+ description: Currency symbol
+ required: false
+ type: string
+ - in: query
+ name: order_by
+ description: Field to order data
+ required: false
+ type: string
+ - in: query
+ name: order
+ description: direction to order
+ required: false
+ type: string
+ enum: ['asc', 'desc']
+ - in: query
+ name: start_date
+ description: Starting date of queried data
+ required: false
+ type: string
+ format: date-time
+ - in: query
+ name: end_date
+ description: Ending date of queried data
+ required: false
+ type: string
+ format: date-time
+ - in: query
+ name: format
+ description: Specify data format
+ required: false
+ enum: ['csv']
+ type: string
+ tags:
+ - Admin
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/TradesResponse"
+ 202:
+ description: CSV
+ schema:
+ type: string
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ - supervisor
+ - support
+ /admin/user/activate:
+ x-swagger-router-controller: admin
+ post:
+ operationId: activateUser
+ description: Activate or deactivate a user account
+ tags:
+ - Admin
+ parameters:
+ - name: data
+ in: body
+ required: true
+ schema:
+ type: object
+ required:
+ - user_id
+ - activated
+ properties:
+ user_id:
+ type: number
+ format: int32
+ activated:
+ type: boolean
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ - supervisor
+ - support
+ - kyc
+ /admin/balance:
+ x-swagger-router-controller: admin
+ get:
+ description: Get Admin bank balance
+ operationId: getAdminBalance
+ tags:
+ - Admin
+ responses:
+ 200:
+ description: Success
+ schema:
+ type: object
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ /admin/upgrade-user:
+ x-swagger-router-controller: admin
+ post:
+ description: Update verification level of a user
+ operationId: upgradeUser
+ tags:
+ - Admin
+ parameters:
+ - in: body
+ name: data
+ description: Upgrade data
+ schema:
+ $ref: "#/definitions/UpgradeUserRequest"
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ - supervisor
+ - kyc
+ /admin/deactivate-otp:
+ x-swagger-router-controller: otp
+ post:
+ description: Deactivate otp for a user
+ operationId: deactivateOtpAdmin
+ tags:
+ - Admin
+ parameters:
+ - in: body
+ name: data
+ description: Upgrade data
+ required: true
+ schema:
+ type: object
+ properties:
+ user_id:
+ type: number
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ - supervisor
+ /admin/flag-user:
+ x-swagger-router-controller: admin
+ post:
+ description: Flag a user
+ operationId: flagUser
+ tags:
+ - Admin
+ parameters:
+ - in: body
+ name: data
+ description: user id for flagging
+ required: true
+ schema:
+ type: object
+ properties:
+ user_id:
+ type: number
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ - supervisor
+ - support
+ - kyc
+ /admin/deposits:
+ x-swagger-router-controller: deposit
+ get:
+ operationId: getAdminDeposits
+ description: Obtain a list of deposits.
+ tags:
+ - Admin
+ parameters:
+ - in: query
+ name: currency
+ description: Currency type
+ required: false
+ type: string
+ - in: query
+ name: user_id
+ description: Id of the user
+ required: false
+ type: number
+ - in: query
+ name: transaction_id
+ description: unique transaction id
+ required: false
+ type: string
+ - in: query
+ name: address
+ description: Address of the deposit
+ required: false
+ type: string
+ - in: query
+ name: limit
+ description: "Number of elements to return. Default: 50. Maximun: 100"
+ required: false
+ type: number
+ format: int32
+ default: 50
+ - in: query
+ name: page
+ description: Page of data to retrieve
+ required: false
+ type: number
+ format: int32
+ default: 1
+ - in: query
+ name: order_by
+ description: Field to order data
+ required: false
+ type: string
+ - in: query
+ name: order
+ description: direction to order
+ required: false
+ type: string
+ enum: ['asc', 'desc']
+ - in: query
+ name: start_date
+ description: Starting date of queried data
+ required: false
+ type: string
+ format: date-time
+ - in: query
+ name: end_date
+ description: Ending date of queried data
+ required: false
+ type: string
+ format: date-time
+ - in: query
+ name: status
+ required: false
+ type: boolean
+ description: Status of the deposit. False = "Pending"; True = "Completed"
+ - in: query
+ name: dismissed
+ required: false
+ type: boolean
+ description: Cancel status of the deposit.
+ - in: query
+ name: rejected
+ required: false
+ type: boolean
+ description: Rejected status of the deposit.
+ - in: query
+ name: processing
+ required: false
+ type: boolean
+ description: Processing status of the deposit.
+ - in: query
+ name: waiting
+ required: false
+ type: boolean
+ description: Waiting status of the deposit.
+ - in: query
+ name: format
+ description: Specify data format
+ required: false
+ enum: ['csv']
+ type: string
+ responses:
+ 200:
+ description: Success
+ schema:
+ items:
+ $ref: "#/definitions/TransactionResponse"
+ 202:
+ description: Success
+ schema:
+ type: string
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ - supervisor
+ /admin/withdrawals:
+ x-swagger-router-controller: withdrawal
+ get:
+ operationId: getAdminWithdrawals
+ description: Obtain a list of withdrawals.
+ tags:
+ - Admin
+ parameters:
+ - in: query
+ name: currency
+ description: Currency type
+ required: false
+ type: string
+ - in: query
+ name: user_id
+ description: Id of the user
+ required: false
+ type: number
+ - in: query
+ name: transaction_id
+ description: unique transaction id
+ required: false
+ type: string
+ - in: query
+ name: address
+ description: Address of the withdrawal
+ required: false
+ type: string
+ - in: query
+ name: limit
+ description: "Number of elements to return. Default: 50. Maximun: 100"
+ required: false
+ type: number
+ format: int32
+ default: 50
+ - in: query
+ name: page
+ description: Page of data to retrieve
+ required: false
+ type: number
+ format: int32
+ default: 1
+ - in: query
+ name: order_by
+ description: Field to order data
+ required: false
+ type: string
+ - in: query
+ name: order
+ description: direction to order
+ required: false
+ type: string
+ enum: ['asc', 'desc']
+ - in: query
+ name: start_date
+ description: Starting date of queried data
+ required: false
+ type: string
+ format: date-time
+ - in: query
+ name: end_date
+ description: Ending date of queried data
+ required: false
+ type: string
+ format: date-time
+ - in: query
+ name: status
+ required: false
+ type: boolean
+ description: Status of the withdrawals. False = "Pending"; True = "Completed"
+ - in: query
+ name: dismissed
+ required: false
+ type: boolean
+ description: Cancel status of the withdrawals.
+ - in: query
+ name: rejected
+ required: false
+ type: boolean
+ description: Rejected status of the withdrawals.
+ - in: query
+ name: processing
+ required: false
+ type: boolean
+ description: Processing status of the deposit.
+ - in: query
+ name: waiting
+ required: false
+ type: boolean
+ description: Waiting status of the deposit.
+ - in: query
+ name: format
+ description: Specify data format
+ required: false
+ enum: ['csv']
+ type: string
+ responses:
+ 200:
+ description: Success
+ schema:
+ items:
+ $ref: "#/definitions/TransactionResponse"
+ 202:
+ description: Success
+ schema:
+ type: string
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ - supervisor
+ /admin/transfer:
+ x-swagger-router-controller: admin
+ post:
+ operationId: transferFund
+ description: Transfer fund between two user accounts
+ tags:
+ - Admin
+ parameters:
+ - name: data
+ description: Transfer information
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/TransferRequest"
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ /admin/mint:
+ x-swagger-router-controller: admin
+ post:
+ operationId: mintAsset
+ description: Mint a user created asset to account
+ tags:
+ - Admin
+ parameters:
+ - name: data
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/MintBurnRequest"
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+ /admin/burn:
+ x-swagger-router-controller: admin
+ post:
+ operationId: burnAsset
+ description: Burn a user created asset from account
+ tags:
+ - Admin
+ parameters:
+ - name: data
+ in: body
+ required: true
+ schema:
+ $ref: "#/definitions/MintBurnRequest"
+ responses:
+ 200:
+ description: Success
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ default:
+ description: Error
+ schema:
+ $ref: "#/definitions/MessageResponse"
+ security:
+ - Bearer: []
+ x-security-scopes:
+ - admin
+definitions:
+ ObjectResponse:
+ type: object
+ MessageResponse:
+ required:
+ - message
+ properties:
+ message:
+ type: string
+ UserAuthentication:
+ type: object
+ required:
+ - email
+ - password
+ properties:
+ email:
+ type: string
+ password:
+ type: string
+ format: password
+ otp_code:
+ type: string
+ captcha:
+ type: string
+ referral:
+ type: string
+ service:
+ type: string
+ ResetPassword:
+ type: object
+ required:
+ - code
+ - new_password
+ properties:
+ new_password:
+ type: string
+ code:
+ type: string
+ OperatorResponse:
+ type: object
+ required:
+ - id
+ - email
+ - is_admin
+ - is_supervisor
+ - is_support
+ - is_kyc
+ - is_communicator
+ properties:
+ id:
+ type: number
+ format: int32
+ email:
+ type: string
+ is_admin:
+ type: boolean
+ is_supervisor:
+ type: boolean
+ is_support:
+ type: boolean
+ is_kyc:
+ type: boolean
+ is_communicator:
+ type: boolean
+ OperatorsResponse:
+ type: object
+ required:
+ - count
+ - data
+ properties:
+ count:
+ type: number
+ format: int32
+ data:
+ type: array
+ items:
+ $ref: "#/definitions/OperatorResponse"
+ FeeResponse:
+ type: object
+ required:
+ - id
+ - transaction_id
+ - currency
+ - network_fee
+ - timestamp
+ - exchange_id
+ properties:
+ id:
+ type: number
+ format: int32
+ transaction_id:
+ type: string
+ currency:
+ type: string
+ network_fee:
+ type: number
+ format: double
+ timestamp:
+ type: string
+ format: date-time
+ exchange_id:
+ type: number
+ format: int32
+ FeesResponse:
+ type: object
+ required:
+ - count
+ - data
+ properties:
+ count:
+ type: number
+ format: int32
+ data:
+ type: object
+ additionalProperties:
+ type: array
+ items:
+ $ref: "#/definitions/FeeResponse"
+ UserResponse:
+ type: object
+ properties:
+ id:
+ type: number
+ email:
+ type: string
+ full_name:
+ type: string
+ gender:
+ type: boolean
+ nationality:
+ type: string
+ address:
+ type: object
+ properties:
+ country:
+ type: string
+ address:
+ type: string
+ postal_code:
+ type: string
+ city:
+ type: string
+ verified:
+ type: boolean
+ phone_number:
+ type: string
+ id_data:
+ type: object
+ properties:
+ type:
+ type: string
+ number:
+ type: string
+ issued_date:
+ type: string
+ expiration_date:
+ type: string
+ verified:
+ type: boolean
+ bank_account:
+ $ref: "#/definitions/BankArray"
+ crypto_wallet:
+ type: object
+ verification_level:
+ type: number
+ settings:
+ type: object
+ properties:
+ language:
+ type: string
+ default: 'en'
+ maxLength: 3
+ minLength: 2
+ SettingsPut:
+ type: object
+ properties:
+ language:
+ type: string
+ default: 'en'
+ maxLength: 3
+ minLength: 2
+ risk:
+ type: object
+ properties:
+ popup_warning:
+ type: boolean
+ order_portfolio_percentage:
+ type: number
+ format: double
+ minimum: 0.001
+ maximum: 99
+ audio:
+ type: object
+ properties:
+ public_trade:
+ type: boolean
+ order_completed:
+ type: boolean
+ order_partially_completed:
+ type: boolean
+ interface:
+ type: object
+ properties:
+ theme:
+ type: string
+ order_book_levels:
+ type: number
+ format: int32
+ minimum: 1
+ maximum: 20
+ notification:
+ type: object
+ properties:
+ popup_order_completed:
+ type: boolean
+ popup_order_confirmation:
+ type: boolean
+ popup_order_partially_filled:
+ type: boolean
+ UserPut:
+ type: object
+ properties:
+ full_name:
+ type: string
+ gender:
+ type: boolean
+ nationality:
+ type: string
+ dob:
+ type: string
+ format: date-time
+ address:
+ type: object
+ required:
+ - country
+ - address
+ - postal_code
+ - city
+ properties:
+ country:
+ type: string
+ address:
+ type: string
+ postal_code:
+ type: string
+ city:
+ type: string
+ phone_number:
+ type: string
+ ChangePassword:
+ type: object
+ required:
+ - old_password
+ - new_password
+ properties:
+ old_password:
+ type: string
+ new_password:
+ type: string
+ LoginsResponse:
+ type: object
+ properties:
+ count:
+ type: number
+ format: int32
+ data:
+ type: array
+ items:
+ type: object
+ properties:
+ ip:
+ type: string
+ device:
+ type: string
+ domain:
+ type: string
+ timestamp:
+ type: string
+ format: date-time
+ CountResponse:
+ type: object
+ required:
+ - count
+ properties:
+ count:
+ type: number
+ format: int32
+ data:
+ type: array
+ items:
+ type: object
+ WithdrawalRequest:
+ type: object
+ required:
+ - address
+ - amount
+ - currency
+ properties:
+ address:
+ type: string
+ description: Destination address
+ currency:
+ type: string
+ description: currency to be withdrawn (btc, eth, etc)
+ amount:
+ type: number
+ format: double
+ description: Amount to transfer (in btc, eth, bch)
+ otp_code:
+ type: string
+ description: OTP code when otp is enabled
+ minLength: 6
+ maxLength: 6
+ OtpRequest:
+ type: object
+ required:
+ - code
+ properties:
+ code:
+ type: string
+ BankArray:
+ type: array
+ items:
+ $ref: "#/definitions/BankObject"
+ BankObject:
+ type: object
+ properties:
+ bank_name:
+ type: string
+ account_number:
+ type: string
+ maxLength: 50
+ card_number:
+ type: string
+ VerificationId:
+ type: object
+ required:
+ - front
+ properties:
+ front:
+ type: string
+ back:
+ type: string
+ proof_of_residency:
+ type: string
+ AnnouncementObject:
+ type: object
+ properties:
+ id:
+ type: number
+ format: int32
+ created_by:
+ type: number
+ format: int32
+ title:
+ type: string
+ message:
+ type: string
+ type:
+ type: string
+ OrderRequest:
+ type: object
+ required:
+ - side
+ - size
+ - type
+ - symbol
+ properties:
+ symbol:
+ type: string
+ description: Currency symbol of the order e.g. btc-eur
+ side:
+ type: string
+ enum:
+ - buy
+ - sell
+ size:
+ description: "Size of the orders. Should have 4 decimal, if it has more than 4 it will be rounded to 4 decimal. Min: 0.0001, Max: 21000000"
+ type: number
+ format: double
+ type:
+ type: string
+ enum:
+ - market
+ - limit
+ price:
+ type: number
+ format: double
+ description: Price of the order
+ stop:
+ type: number
+ format: double
+ meta:
+ type: object
+ properties:
+ post_only:
+ type: boolean
+ OrderResponse:
+ type: object
+ properties:
+ id:
+ type: string
+ side:
+ type: string
+ enum:
+ - buy
+ - sell
+ symbol:
+ type: string
+ description: Currency symbol
+ size:
+ type: number
+ format: double
+ description: "Size of the order. Min: 0.0001, Max: 21000000"
+ filled:
+ type: number
+ format: double
+ description: "Size of the order filled. Min: 0.0001, Max: 21000000"
+ type:
+ type: string
+ enum:
+ - market
+ - limit
+ price:
+ type: number
+ format: double
+ description: "Price of the order. Min: 500000, Max: 100000000"
+ status:
+ type: string
+ description: Status of the order, ex. queued
+ created_by:
+ type: number
+ format: int32
+ created_at:
+ type: string
+ format: date-time
+ updated_at:
+ type: string
+ format: date-time
+ OrdersResponse:
+ type: object
+ properties:
+ count:
+ type: number
+ format: int32
+ data:
+ type: array
+ items:
+ $ref: "#/definitions/OrderResponse"
+ BalanceResponse:
+ type: object
+ properties:
+ btc_balance:
+ type: number
+ format: double
+ btc_available:
+ type: number
+ format: double
+ btc_pending:
+ type: number
+ format: double
+ updated_at:
+ type: string
+ format: date-time
+ KitPut:
+ type: object
+ properties:
+ kit:
+ type: object
+ properties:
+ captcha:
+ type: object
+ required:
+ - site_key
+ properties:
+ site_key:
+ type: string
+ defaults:
+ type: object
+ properties:
+ theme:
+ type: string
+ language:
+ type: string
+ color:
+ type: object
+ links:
+ type: object
+ strings:
+ type: object
+ interface:
+ type: object
+ meta:
+ type: object
+ icons:
+ type: object
+ features:
+ type: object
+ description:
+ type: string
+ title:
+ type: string
+ api_name:
+ type: string
+ logo_image:
+ type: string
+ valid_languages:
+ type: string
+ new_user_is_activated:
+ type: boolean
+ native_currency:
+ type: string
+ secrets:
+ type: object
+ properties:
+ emails:
+ type: object
+ properties:
+ audit:
+ type: string
+ sender:
+ type: string
+ timezone:
+ type: string
+ send_email_to_support:
+ type: boolean
+ allowed_domains:
+ type: array
+ items:
+ type: string
+ admin_whitelist:
+ type: array
+ items:
+ type: string
+ security:
+ type: object
+ properties:
+ token_time:
+ type: string
+ withdrawal_token_expiry:
+ type: number
+ captcha:
+ type: object
+ required:
+ - secret_key
+ properties:
+ secret_key:
+ type: string
+ smtp:
+ type: object
+ properties:
+ port:
+ type: number
+ user:
+ type: string
+ server:
+ type: string
+ password:
+ type: string
+ AdminUsersResponse:
+ type: object
+ properties:
+ count:
+ type: number
+ format: int32
+ data:
+ type: array
+ items:
+ type: object
+ properties:
+ id:
+ type: number
+ UserRolePut:
+ type: object
+ required:
+ - role
+ properties:
+ role:
+ type: string
+ enum:
+ - admin
+ - supervisor
+ - support
+ - kyc
+ - communicator
+ - user
+ UserRolePutResponse:
+ type: object
+ required:
+ - id
+ - email
+ - is_admin
+ - is_support
+ - is_supervisor
+ - is_kyc
+ - is_communicator
+ properties:
+ id:
+ type: number
+ email:
+ type: string
+ is_admin:
+ type: boolean
+ is_support:
+ type: boolean
+ is_supervisor:
+ type: boolean
+ is_kyc:
+ type: boolean
+ is_communicator:
+ type: boolean
+ UserNotePut:
+ type: object
+ required:
+ - note
+ properties:
+ note:
+ type: string
+ TradesResponse:
+ type: object
+ properties:
+ count:
+ type: number
+ format: int32
+ data:
+ type: array
+ items:
+ type: object
+ properties:
+ fee:
+ type: number
+ format: float
+ side:
+ type: string
+ enum:
+ - buy
+ - sell
+ symbol:
+ type: string
+ size:
+ type: number
+ format: double
+ price:
+ type: number
+ format: double
+ timestamp:
+ type: string
+ format: date-time
+ UpgradeUserRequest:
+ type: object
+ properties:
+ user_id:
+ type: integer
+ verification_level:
+ type: integer
+ AuditsResponse:
+ type: object
+ properties:
+ count:
+ type: number
+ format: int32
+ data:
+ type: array
+ items:
+ type: object
+ required:
+ - admin_id
+ - event
+ - description
+ - ip
+ - domain
+ - timestamp
+ properties:
+ admin_id:
+ type: number
+ format: int32
+ event:
+ type: string
+ description:
+ type: object
+ properties:
+ note:
+ type: string
+ ip:
+ type: string
+ domain:
+ type: string
+ timestamp:
+ type: string
+ format: date-time
+ TransactionResponse:
+ type: object
+ properties:
+ id:
+ type: number
+ transaction_id:
+ type: string
+ user_id:
+ description: User that receives the deposit
+ type: number
+ format: int64
+ currency:
+ type: string
+ amount:
+ type: number
+ format: double
+ type:
+ type: string
+ enum:
+ - deposit
+ - withdrawal
+ fee:
+ type: number
+ format: double
+ status:
+ type: boolean
+ description: Status of the deposit. False = "Pending"; True = "Completed"
+ dissmissed:
+ type: boolean
+ description: Transaction has been dissmissed, it means canceled
+ rejected:
+ type: boolean
+ description: Transaction has been rejected by payment service
+ description:
+ type: string
+ maxLength: 255
+ description: Transaction description
+ TransactionsResponse:
+ type: object
+ properties:
+ count:
+ type: number
+ format: int32
+ data:
+ type: array
+ items:
+ $ref: "#/definitions/TransactionResponse"
+ UsersAddressResponse:
+ required:
+ - message
+ - address
+ - crypto
+ properties:
+ message:
+ type: string
+ address:
+ type: string
+ crypto:
+ type: string
+ TokensResponse:
+ type: object
+ properties:
+ count:
+ type: number
+ format: int32
+ data:
+ type: array
+ items:
+ type: object
+ properties:
+ id:
+ type: number
+ format: int32
+ name:
+ type: string
+ apiKey:
+ type: string
+ secret:
+ type: string
+ active:
+ type: boolean
+ revoked:
+ type: boolean
+ expiry:
+ type: string
+ format: date-time
+ created:
+ type: string
+ format: date-time
+ WithdrawalConfirmation:
+ type: object
+ required:
+ - token
+ properties:
+ token:
+ type: string
+ description: withdrawal confirmation token
+ StatsResponse:
+ type: object
+ properties:
+ data:
+ type: object
+ updatedAt:
+ type: string
+ format: date-time
+ TransferRequest:
+ type: object
+ required:
+ - sender_id
+ - receiver_id
+ - currency
+ - amount
+ properties:
+ sender_id:
+ description: Transfer source user id
+ type: number
+ receiver_id:
+ description: Transfer receiver user id
+ type: number
+ currency:
+ type: string
+ description:
+ type: string
+ amount:
+ type: number
+ format: double
+ ExternalDepositRequest:
+ type: object
+ required:
+ - txid
+ - amount
+ - address
+ - is_confirmed
+ - user_id
+ properties:
+ amount:
+ type: number
+ txid:
+ type: string
+ address:
+ type: string
+ is_confirmed:
+ type: boolean
+ user_id:
+ type: number
+ ExternalWithdrawalRequest:
+ type: object
+ required:
+ - txid
+ - amount
+ - address
+ - is_confirmed
+ - user_id
+ - fee
+ properties:
+ amount:
+ type: number
+ fee:
+ type: number
+ txid:
+ type: string
+ address:
+ type: string
+ is_confirmed:
+ type: boolean
+ user_id:
+ type: number
+ OrderbooksResponse:
+ type: object
+ description: Top 10 orderbooks, where key is the symbol(currency) and the values is an object with the top 10 bids and ask.
+ PublicTradesResponse:
+ type: object
+ description: Top trades, where key is the symbol(currency) and the values is an arra with the top trades for that symbol.
+ TradeDataResponse:
+ type: array
+ items:
+ type: object
+ properties:
+ date:
+ type: string
+ open:
+ type: number
+ close:
+ type: number
+ high:
+ type: number
+ low:
+ type: number
+ PutTierBody:
+ type: object
+ required:
+ - level
+ properties:
+ level:
+ type: number
+ format: int32
+ name:
+ type: string
+ icon:
+ type: string
+ note:
+ type: string
+ description:
+ type: string
+ PostTierBody:
+ type: object
+ required:
+ - level
+ - name
+ - icon
+ - description
+ - deposit_limit
+ - withdrawal_limit
+ - fees
+ properties:
+ level:
+ type: number
+ format: int32
+ name:
+ type: string
+ icon:
+ type: string
+ description:
+ type: string
+ note:
+ type: string
+ deposit_limit:
+ type: number
+ format: double
+ withdrawal_limit:
+ type: number
+ format: double
+ fees:
+ type: object
+ required:
+ - maker
+ - taker
+ properties:
+ maker:
+ type: object
+ required:
+ - default
+ properties:
+ default:
+ type: number
+ format: double
+ taker:
+ type: object
+ required:
+ - default
+ properties:
+ default:
+ type: number
+ format: double
+ TierObject:
+ type: object
+ required:
+ - id
+ - name
+ - icon
+ - note
+ - description
+ - deposit_limit
+ - withdrawal_limit
+ - fees
+ properties:
+ id:
+ type: number
+ format: int32
+ name:
+ type: string
+ icon:
+ type: string
+ note:
+ type: string
+ description:
+ type: string
+ deposit_limit:
+ type: number
+ format: double
+ withdrawal_limit:
+ type: number
+ format: double
+ fees:
+ type: object
+ PairFeesPut:
+ type: object
+ required:
+ - pair
+ - fees
+ properties:
+ pair:
+ type: string
+ fees:
+ type: object
+ minProperties: 1
+ additionalProperties:
+ type: object
+ minProperties: 1
+ properties:
+ maker:
+ type: number
+ format: double
+ taker:
+ type: number
+ format: double
+ TiersLimitsPut:
+ type: object
+ required:
+ - limits
+ properties:
+ limits:
+ type: object
+ minProperties: 1
+ additionalProperties:
+ type: object
+ minProperties: 1
+ properties:
+ deposit_limit:
+ type: number
+ format: double
+ withdrawal_limit:
+ type: number
+ format: double
+ OraclePriceResponse:
+ type: object
+ additionalProperties:
+ type: number
+ format: double
+ MintBurnRequest:
+ type: object
+ required:
+ - user_id
+ - currency
+ - amount
+ properties:
+ user_id:
+ description: User that receives the deposit
+ type: number
+ currency:
+ type: string
+ description:
+ type: string
+ amount:
+ type: number
+ format: double
\ No newline at end of file
diff --git a/server/app.js b/server/app.js
new file mode 100644
index 0000000000..c68670dfc1
--- /dev/null
+++ b/server/app.js
@@ -0,0 +1,48 @@
+'use strict';
+
+const { createServer } = require('http');
+var SwaggerExpress = require('swagger-express-mw');
+const morgan = require('morgan');
+const { logEntryRequest, stream, logger } = require('./config/logger');
+const { domainMiddleware, helmetMiddleware } = require('./config/middleware');
+var app = require('express')();
+const toolsLib = require('hollaex-tools-lib');
+const { checkStatus } = require('./init');
+
+checkStatus();
+// listen through pubsub for configuration/init
+
+//init runs, populates configuration/secrets
+
+const PORT = process.env.PORT || 10010;
+
+const server = createServer(app);
+
+module.exports = app; // for testing
+
+app.use(logEntryRequest);
+
+app.use(domainMiddleware);
+helmetMiddleware(app);
+
+const morganType = process.env.NODE_ENV === 'development' ? 'dev' : 'combined';
+app.use(morgan(morganType, { stream }));
+
+var config = {
+ appRoot: './', // required config
+ swaggerSecurityHandlers: {
+ Bearer: toolsLib.security.verifyBearerTokenMiddleware,
+ HmacKey: toolsLib.security.verifyHmacTokenMiddleware
+ }
+};
+
+SwaggerExpress.create(config, function(err, swaggerExpress) {
+ if (err) { throw err; }
+
+ // install middleware
+ swaggerExpress.register(app);
+
+ server.listen(PORT, () => {
+ logger.info(`Server running on port: ${PORT}`);
+ });
+});
diff --git a/server/config/README.md b/server/config/README.md
new file mode 100644
index 0000000000..d0535bda1b
--- /dev/null
+++ b/server/config/README.md
@@ -0,0 +1 @@
+Place configuration files in this directory.
diff --git a/server/config/db.js b/server/config/db.js
new file mode 100644
index 0000000000..e89a7bce72
--- /dev/null
+++ b/server/config/db.js
@@ -0,0 +1,51 @@
+'use strict';
+
+const { loggerDb } = require('../config/logger');
+const { toBool } = require('../utils/conversion');
+
+const logging = (sql, options) => {
+ loggerDb.silly(sql);
+ // loggerDb.debug(options);
+};
+
+let ssl = process.env.DB_SSL || false;
+ssl = toBool(ssl);
+
+module.exports = {
+ development: {
+ username: process.env.DB_USERNAME,
+ password: process.env.DB_PASSWORD,
+ database: process.env.DB_NAME,
+ host: process.env.DB_HOST,
+ dialect: process.env.DB_DIALECT,
+ port: process.env.DB_PORT,
+ dialectOptions: {
+ ssl
+ },
+ logging
+ },
+ test: {
+ username: process.env.DB_USERNAME,
+ password: process.env.DB_PASSWORD,
+ database: process.env.DB_NAME,
+ host: process.env.DB_HOST,
+ dialect: process.env.DB_DIALECT,
+ port: process.env.DB_PORT,
+ dialectOptions: {
+ ssl
+ },
+ logging
+ },
+ production: {
+ username: process.env.DB_USERNAME,
+ password: process.env.DB_PASSWORD,
+ database: process.env.DB_NAME,
+ host: process.env.DB_HOST,
+ dialect: process.env.DB_DIALECT,
+ port: process.env.DB_PORT,
+ dialectOptions: {
+ ssl
+ },
+ logging
+ }
+};
diff --git a/server/config/default.yaml b/server/config/default.yaml
new file mode 100644
index 0000000000..cbe55eba3b
--- /dev/null
+++ b/server/config/default.yaml
@@ -0,0 +1,37 @@
+# swagger configuration file
+
+# values in the swagger hash are system configuration for swagger-node
+swagger:
+
+ fittingsDirs: [ api/fittings ]
+ defaultPipe: null
+ swaggerControllerPipe: swagger_controllers # defines the standard processing pipe for controllers
+
+ # values defined in the bagpipes key are the bagpipes pipes and fittings definitions
+ # (see https://github.com/apigee-127/bagpipes)
+ bagpipes:
+
+ _router:
+ name: swagger_router
+ mockMode: false
+ mockControllersDirs: [ api/mocks ]
+ controllersDirs: [ api/controllers ]
+
+ _swagger_validate:
+ name: swagger_validator
+ validateResponse: true
+
+ # pipe for all swagger-node controllers
+ swagger_controllers:
+ - onError: json_error_handler
+ - cors
+ - swagger_security
+ - _swagger_validate
+ - express_compatibility
+ - _router
+
+ # pipe to serve swagger (endpoint is in swagger.yaml)
+ swagger_raw:
+ name: swagger_raw
+
+# any other values in this file are just loaded into the config for application access...
diff --git a/server/config/logger.js b/server/config/logger.js
new file mode 100644
index 0000000000..5b411b8b17
--- /dev/null
+++ b/server/config/logger.js
@@ -0,0 +1,157 @@
+'use strict';
+
+const winston = require('winston');
+
+const LEVEL = Symbol.for('level');
+const { format, transports } = winston;
+const { combine, timestamp, colorize, printf, align, json } = format;
+const { SPLAT } = require('triple-beam');
+const uuid = require('uuid/v4');
+const apm = require('elastic-apm-node');
+const ElasticsearchApm = require('winston-elasticsearch-apm');
+const { isObject } = require('lodash');
+const { APM_ENABLED } = require('../constants');
+
+const emitters = require('events');
+emitters.EventEmitter.defaultMaxListeners = 50;
+
+if (APM_ENABLED) {
+ apm.start();
+}
+
+const isMainnet = process.env.NODE_ENV === 'production';
+const LOG_LEVEL = process.env.LOG_LEVEL || 'verbose';
+
+const formatObject = (param) => {
+ if (isObject(param)) {
+ return JSON.stringify(param);
+ }
+ return param;
+};
+
+const all = format((info) => {
+ const splat = info[SPLAT] || [];
+ const message = formatObject(info.message);
+ const rest = splat.map(formatObject).join(' ');
+ info.message = `${message} ${rest}`;
+ return info;
+});
+
+// used for filtering specific logs. currently not used.
+const filterOnly = level => {
+ return format((info) => {
+ if (info[LEVEL] === level) {
+ return info;
+ }
+ })();
+};
+
+
+const generateLoggerConfiguration = (name) => {
+ const transportsConfig = [
+ new transports.Console({ level: LOG_LEVEL} )
+ ];
+
+ if (APM_ENABLED) {
+ transportsConfig.push(new ElasticsearchApm({ apm }));
+ }
+
+ const config = {
+ format: combine(
+ all(),
+ timestamp(),
+ colorize(),
+ align(),
+ printf(
+ (info) =>
+ `${info.timestamp} ${info.level}: ${formatObject(info.message)}`
+ )
+ ),
+ transports: transportsConfig
+ };
+ if (isMainnet) {
+ config.format = combine(
+ all(),
+ timestamp(),
+ json()
+ );
+ }
+
+ return config;
+};
+
+const LOGGER_NAMES = {
+ websocket: 'websocket',
+ db: 'db',
+ redis: 'redis',
+ email: 'email',
+ admin: 'admin',
+ orders: 'orders',
+ trades: 'trades',
+ otp: 'otp',
+ user: 'user',
+ deposits: 'deposits',
+ withdrawals: 'withdrawals',
+ notification: 'notification',
+ public: 'public',
+ chat: 'chat',
+ auth: 'auth',
+ plugin: 'plugin',
+ tier: 'tier',
+ init: 'init'
+};
+
+winston.loggers.add('default', generateLoggerConfiguration('all', false));
+
+Object.entries(LOGGER_NAMES).forEach(([key, value], index) => {
+ winston.loggers.add(value, generateLoggerConfiguration(value));
+});
+
+const logger = winston.loggers.get('default');
+/*
+ function to use in express middleware to log the request when it hits the server, it will add a uuid to the request for tracking purpose
+ */
+const logEntryRequest = (req, res, next) => {
+ req.uuid = uuid();
+ logger.info(
+ req.uuid,
+ 'middleware/hostname',
+ req.hostname,
+ req.headers['x-real-ip'],
+ req.headers['x-real-origin'],
+ req.method,
+ req.path
+ );
+ next();
+};
+
+const stream = {
+ write: (message, encoding) => {
+ logger.info(message);
+ }
+};
+
+module.exports = {
+ logEntryRequest,
+ stream,
+ logger,
+ apm,
+ loggerWebsocket: winston.loggers.get(LOGGER_NAMES.websocket),
+ loggerDb: winston.loggers.get(LOGGER_NAMES.db),
+ loggerRedis: winston.loggers.get(LOGGER_NAMES.redis),
+ loggerAdmin: winston.loggers.get(LOGGER_NAMES.admin),
+ loggerEmail: winston.loggers.get(LOGGER_NAMES.email),
+ loggerOrders: winston.loggers.get(LOGGER_NAMES.orders),
+ loggerOtp: winston.loggers.get(LOGGER_NAMES.otp),
+ loggerTrades: winston.loggers.get(LOGGER_NAMES.trades),
+ loggerDeposits: winston.loggers.get(LOGGER_NAMES.deposits),
+ loggerWithdrawals: winston.loggers.get(LOGGER_NAMES.withdrawals),
+ loggerUser: winston.loggers.get(LOGGER_NAMES.user),
+ loggerNotification: winston.loggers.get(LOGGER_NAMES.notification),
+ loggerChat: winston.loggers.get(LOGGER_NAMES.chat),
+ loggerAuth: winston.loggers.get(LOGGER_NAMES.auth),
+ loggerInit: winston.loggers.get(LOGGER_NAMES.init),
+ loggerPlugin: winston.loggers.get(LOGGER_NAMES.plugin),
+ loggerPublic: winston.loggers.get(LOGGER_NAMES.public),
+ loggerTier: winston.loggers.get(LOGGER_NAMES.tier)
+};
diff --git a/server/config/middleware.js b/server/config/middleware.js
new file mode 100644
index 0000000000..21633ea847
--- /dev/null
+++ b/server/config/middleware.js
@@ -0,0 +1,82 @@
+'use strict';
+const url = require('url');
+const { logger } = require('./logger');
+const { APM_ENABLED, DOMAIN } = require('../constants');
+const ALLOWED_DOMAINS = () => toolsLib.getKitSecrets().allowed_domains || (process.env.ALLOWED_DOMAINS ? process.env.ALLOWED_DOMAINS.split(',') : []);
+const helmet = require('helmet');
+const expectCt = require('expect-ct');
+const { apm } = require('./logger');
+const toolsLib = require('hollaex-tools-lib');
+
+const domainMiddleware = (req, res, next) => {
+ logger.verbose(req.uuid, 'origin', req.headers['x-real-origin']);
+ if (ALLOWED_DOMAINS().length > 0 && req.headers['x-real-origin']) {
+ const originUrl = url.parse(req.headers['x-real-origin']);
+ logger.verbose(
+ req.uuid,
+ 'origin',
+ req.headers['x-real-origin'],
+ 'host',
+ originUrl.protocol,
+ originUrl.host
+ );
+
+ const requestDomain = ALLOWED_DOMAINS().find(
+ (domain) => originUrl.host.indexOf(domain) === 0
+ );
+ if (!requestDomain) {
+ req.headers['x-real-origin'] = DOMAIN;
+ }
+ } else {
+ req.headers['x-real-origin'] = DOMAIN;
+ }
+ if (APM_ENABLED) {
+ apm.setTransactionName(req.method + ' ' + req.url);
+ }
+ return next();
+};
+
+const HPKP_MAX_AGE = 90 * 24 * 60 * 60; // seconds
+
+const helmetMiddleware = (app) => {
+ app.use(helmet());
+
+ // contentSecurityPolicy
+ // app.use(
+ // helmet.contentSecurityPolicy({
+ // directives: {
+ // defaultSrc: ["'self'"],
+ // styleSrc: ["'self'", 'maxcdn.bootstrapcdn.com']
+ // }
+ // })
+ // );
+
+ // referrerPolicy
+ // app.use(helmet.referrerPolicy({ policy: 'same-origin' }))
+
+ // hpkp
+ // app.use(
+ // helmet.hpkp({
+ // maxAge: HPKP_MAX_AGE,
+ // sha256s: ['AbCdEf123=', 'ZyXwVu456='],
+ // includeSubdomains: true
+ // })
+ // );
+ //
+ // // expect-ct
+ // app.use(
+ // expectCt({
+ // enforce: true,
+ // maxAge: 123
+ // })
+ // );
+
+ // no cache
+ app.use(helmet.noCache());
+};
+
+module.exports = {
+ helmetMiddleware,
+ domainMiddleware,
+ apm
+};
diff --git a/server/config/redis.js b/server/config/redis.js
new file mode 100644
index 0000000000..4c1d3555b7
--- /dev/null
+++ b/server/config/redis.js
@@ -0,0 +1,58 @@
+'use strict';
+const env = process.env.NODE_ENV || 'development';
+
+const REDIS_HOST = process.env.REDIS_HOST;
+const REDIS_PORT = process.env.REDIS_PORT;
+const REDIS_PASSWORD = process.env.REDIS_PASSWORD;
+
+const PUBSUB_HOST = process.env.PUBSUB_HOST;
+const PUBSUB_PORT = process.env.PUBSUB_PORT;
+const PUBSUB_PASSWORD = process.env.PUBSUB_PASSWORD;
+
+const redisClientConfig = {
+ host: REDIS_HOST,
+ port: REDIS_PORT
+};
+
+const redisPubsubConfig = {
+ host: PUBSUB_HOST,
+ port: PUBSUB_PORT
+};
+
+const defaultConfig = {
+ client: redisClientConfig,
+ redis: redisClientConfig,
+ pubsub: redisPubsubConfig
+};
+
+const productionConfig = {
+ client: REDIS_PASSWORD
+ ? {
+ ...redisClientConfig,
+ password: REDIS_PASSWORD,
+ auth: REDIS_PASSWORD
+ }
+ : redisClientConfig,
+ redis: REDIS_PASSWORD
+ ? {
+ ...redisClientConfig,
+ password: REDIS_PASSWORD,
+ auth: REDIS_PASSWORD
+ }
+ : redisClientConfig,
+ pubsub: PUBSUB_PASSWORD
+ ? {
+ ...redisPubsubConfig,
+ password: PUBSUB_PASSWORD,
+ auth: PUBSUB_PASSWORD
+ }
+ : redisPubsubConfig
+};
+
+const config = {
+ development: productionConfig,
+ test: productionConfig,
+ production: productionConfig
+};
+
+module.exports = config[env] || defaultConfig;
diff --git a/server/constants.js b/server/constants.js
new file mode 100644
index 0000000000..de1aa3bff6
--- /dev/null
+++ b/server/constants.js
@@ -0,0 +1,440 @@
+'use strict';
+
+const { toBool } = require('./utils/conversion');
+const { cloneDeep } = require('lodash');
+const redis = require('redis');
+const config = require('./config/redis');
+const subscriber = redis.createClient(config.pubsub);
+
+// CONFIGURATION CONSTANTS START--------------------------------------------------
+const CONFIGURATION_CHANNEL = 'channel:configuration';
+
+let configuration = {
+ coins: {},
+ pairs: {},
+ tiers: {},
+ kit: {
+ info: {},
+ color: {},
+ interface: {},
+ icons: {},
+ strings: {},
+ links: {},
+ captcha: {},
+ defaults: {},
+ features: {},
+ meta: {}
+ }
+};
+
+let secrets = {
+ security: {},
+ accounts: {},
+ captcha: {},
+ emails: {},
+ smtp: {}
+};
+
+let frozenUsers = {};
+
+subscriber.subscribe(CONFIGURATION_CHANNEL);
+
+subscriber.on('message', (channel, message) => {
+ if (channel === CONFIGURATION_CHANNEL) {
+ const { type, data } = JSON.parse(message);
+
+ switch(type) {
+ case 'initial':
+ updateAllConfig(data.configuration, data.secrets, data.frozenUsers);
+ break;
+ case 'update':
+ if (data.info) updateKitInfo(data.info);
+ if (data.tiers) updateTiers(data.tiers);
+ if (data.kit) updateKit(data.kit);
+ if (data.secrets) updateSecrets(data.secrets);
+ break;
+ case 'freezeUser':
+ updateFrozenUser(data, 'add');
+ break;
+ case 'unfreezeUser':
+ updateFrozenUser(data, 'remove');
+ break;
+ case 'stop':
+ resetAllConfig();
+ break;
+ default:
+ break;
+ }
+ }
+});
+
+const updateAllConfig = (newConfigurations, newSecrets, newFrozenUsers) => {
+ configuration = newConfigurations;
+ secrets = newSecrets;
+ frozenUsers = newFrozenUsers;
+};
+
+const resetAllConfig = () => {
+ frozenUsers = {};
+ secrets = {
+ security: {},
+ accounts: {},
+ captcha: {},
+ emails: {},
+ smtp: {}
+ };
+ configuration = {
+ coins: {},
+ pairs: {},
+ kit: {
+ info: {},
+ color: {},
+ interface: {},
+ icons: {},
+ strings: {},
+ links: {},
+ captcha: {},
+ defaults: {},
+ features: {},
+ meta: {}
+ }
+ };
+};
+
+const updateTiers = (newTiers) => {
+ Object.assign(configuration.tiers, newTiers);
+};
+
+const updateKitInfo = (newInfo) => {
+ Object.assign(configuration.kit.info, newInfo);
+};
+
+const updateKit = (newKitConfig) => {
+ Object.assign(configuration.kit, newKitConfig);
+};
+
+const updateSecrets = (newSecretsConfig) => {
+ Object.assign(secrets, newSecretsConfig);
+};
+
+const updateFrozenUser = (action, userId) => {
+ if (action === 'add') {
+ frozenUsers[userId] = true;
+ } else if (action === 'remove') {
+ delete frozenUsers[userId];
+ }
+};
+
+exports.GET_COINS = () => cloneDeep(configuration.coins);
+exports.GET_PAIRS = () => cloneDeep(configuration.pairs);
+exports.GET_TIERS = () => cloneDeep(configuration.tiers);
+exports.GET_KIT_CONFIG = () => cloneDeep(configuration.kit);
+exports.GET_KIT_SECRETS = () => cloneDeep(secrets);
+exports.GET_FROZEN_USERS = () => cloneDeep(frozenUsers);
+
+exports.KIT_CONFIG_KEYS = [
+ 'captcha',
+ 'api_name',
+ 'description',
+ 'color',
+ 'title',
+ 'links',
+ 'defaults',
+ 'native_currency',
+ 'logo_image',
+ 'valid_languages',
+ 'new_user_is_activated',
+ 'interface',
+ 'icons',
+ 'strings',
+ 'meta',
+ 'features',
+ 'setup_completed'
+];
+
+exports.KIT_SECRETS_KEYS = [
+ 'allowed_domains',
+ 'admin_whitelist',
+ 'emails',
+ 'security',
+ 'captcha',
+ 'smtp'
+];
+
+exports.COMMUNICATOR_AUTHORIZED_KIT_CONFIG = [
+ 'icons',
+ 'strings'
+];
+// CONFIGURATION CONSTANTS END --------------------------------------------------
+
+// MAIN CONSTANTS START--------------------------------------------------
+
+exports.APM_ENABLED = toBool(process.env.APM_ENABLED) || false; // apm is used for sending logs etc
+exports.API_HOST = process.env.API_HOST || 'localhost';
+exports.DOMAIN = process.env.DOMAIN || (process.env.NODE_ENV === 'production' ? 'https://hollaex.com' : 'http://localhost:3000');
+exports.NODE_ENV = process.env.NODE_ENV;
+exports.HOLLAEX_NETWORK_ENDPOINT = process.env.NETWORK === 'testnet' ? 'https://api.testnet.hollaex.network' : 'https://api.hollaex.network';
+exports.HOLLAEX_NETWORK_BASE_URL = '/v2';
+exports.HOLLAEX_NETWORK_PATH_ACTIVATE = '/exchange/activate';
+
+// MAIN CONSTANTS END --------------------------------------------------
+
+// CHANNEL CONSTANTS START --------------------------------------------------
+
+// API
+exports.INIT_CHANNEL = 'channel:init';
+exports.WITHDRAWALS_REQUEST_KEY = 'withdrawals:request';
+exports.HMAC_TOKEN_KEY = 'hmac:token';
+exports.EVENTS_CHANNEL = 'channel:events';
+exports.CONFIGURATION_CHANNEL = CONFIGURATION_CHANNEL;
+
+// Websocket
+exports.WEBSOCKET_CHANNEL = (topic, symbolOrUserId) => {
+ switch(topic) {
+ case 'orderbook':
+ return `orderbook:${symbolOrUserId}`;
+ case 'trade':
+ return `trade:${symbolOrUserId}`;
+ case 'order':
+ return `order:${symbolOrUserId}`;
+ case 'wallet':
+ return `wallet:${symbolOrUserId}`;
+ case 'deposit':
+ return `deposit:${symbolOrUserId}`;
+ case 'chat':
+ return 'chat';
+ default:
+ return;
+ }
+};
+exports.WS_PUBSUB_DEPOSIT_CHANNEL = 'channel:ws:deposit';
+exports.WS_HUB_CHANNEL = 'channel:websocket:hub';
+
+// Chat
+exports.CHAT_MAX_MESSAGES = 50;
+exports.CHAT_MESSAGE_CHANNEL = 'channel:chat:message';
+
+// CHANNEL CONSTANTS END --------------------------------------------------
+
+// UTIL CONSTANTS START --------------------------------------------------
+
+exports.AFFILIATION_CODE_LENGTH = 6;
+exports.SEND_CONTACT_US_EMAIL = true;
+//CSV Report keys
+exports.AUDIT_KEYS = [
+ 'id',
+ 'admin_id',
+ 'event',
+ 'description.new',
+ 'description.old',
+ 'description.note',
+ 'description.user_id',
+ 'ip',
+ 'domain',
+ 'timestamp'
+];
+
+// UTIL CONSTANTS END --------------------------------------------------
+
+// ACCOUNTS CONSTANTS START --------------------------------------------------
+
+exports.SETTING_KEYS = [
+ 'language',
+ 'notification',
+ 'interface',
+ 'audio',
+ 'risk',
+ 'chat'
+];
+
+exports.OMITTED_USER_FIELDS = [
+ 'password',
+ 'note',
+ 'is_admin',
+ 'is_support',
+ 'is_supervisor',
+ 'is_kyc',
+ 'is_communicator',
+ 'flagged'
+];
+
+const ROLES = {
+ SUPERVISOR: 'supervisor',
+ SUPPORT: 'support',
+ ADMIN: 'admin',
+ KYC: 'kyc',
+ COMMUNICATOR: 'communicator',
+ USER: 'user',
+ HMAC: 'hmac'
+};
+exports.ROLES = ROLES;
+exports.BASE_SCOPES = [ROLES.USER, ROLES.HMAC];
+exports.DEFAULT_ORDER_RISK_PERCENTAGE = 90; // used in settings in percentage to display popups on big relative big orders of user
+
+// ACCOUNTS CONSTANTS END --------------------------------------------------
+
+// SECURITY CONSTANTS START --------------------------------------------------
+
+exports.TOKEN_TYPES = {
+ HMAC: 'hmac'
+};
+exports.HMAC_TOKEN_EXPIRY = 5 * 12 * 30 * 24 * 60 * 60 * 1000; // 5 years
+exports.SECRET = process.env.SECRET || 'shhhh';
+exports.ISSUER = process.env.ISSUER || 'hollaex.com';
+exports.CAPTCHA_ENDPOINT = 'https://www.google.com/recaptcha/api/siteverify';
+exports.SECRET_MASK = '************************';
+exports.SALT_ROUNDS = 10;
+
+// SECURITY CONSTANTS END --------------------------------------------------
+
+// EMAIL CONSTANTS START --------------------------------------------------
+
+exports.CONFIRMATION = {
+ btc: 1,
+ eth: 15,
+ bch: 2,
+ xrp: 0
+};
+exports.EXPLORERS = (currency) => {
+ switch(currency) {
+ case 'btc':
+ return [
+ {
+ name: 'Blockchain.info',
+ baseUrl: 'https://www.blockchain.com',
+ txPath: '/btc/tx'
+ },
+ {
+ name: 'BlockCypher',
+ baseUrl: 'https://live.blockcypher.com',
+ txPath: '/btc/tx'
+ },
+ {
+ name: 'Blockstream',
+ baseUrl: 'https://blockstream.info',
+ txPath: '/tx'
+ },
+ {
+ name: 'Bitcoin.com',
+ baseUrl: 'https://explorer.bitcoin.com',
+ txPath: '/btc/tx'
+ }
+ ];
+ case 'xrp':
+ return [
+ {
+ name: 'xrpscan',
+ baseUrl: 'https://xrpscan.com',
+ txPath: '/tx'
+ },
+ {
+ name: 'Bithomp',
+ baseUrl: 'https://bithomp.com',
+ txPath: '/explorer'
+ }
+ ];
+ case 'bch':
+ return [
+ {
+ name: 'Blockchain.info',
+ baseUrl: 'https://www.blockchain.com',
+ txPath: '/bch/tx'
+ },
+ {
+ name: 'Bitcoin.com',
+ baseUrl: 'https://explorer.bitcoin.com',
+ txPath: '/bch/tx'
+ }
+ ];
+ case 'xlm':
+ return [
+ {
+ name: 'stellarhain.io',
+ baseUrl: 'https://stellarchain.io',
+ txPath: '/tx'
+ }
+ ];
+ case 'xmr':
+ return [
+ {
+ name: 'MoneroBlocks',
+ baseUrl: 'https://moneroblocks.info',
+ txPath: '/tx'
+ }
+ ];
+ case 'eth':
+ return [
+ {
+ name: 'EtherScan',
+ baseUrl: 'https://etherscan.io',
+ txPath: '/tx'
+ },
+ {
+ name: 'Blockchain.info',
+ baseUrl: 'https://www.blockchain.com',
+ txPath: '/eth/tx'
+ }
+ ];
+ default:
+ return [
+ {
+ name: 'EtherScan',
+ baseUrl: 'https://etherscan.io',
+ txPath: '/tx'
+ }
+ ];
+ }
+};
+
+// EMAIL CONSTANTS END --------------------------------------------------
+
+// PLUGIN CONSTANTS START------------------------------ to be moved
+exports.AVAILABLE_PLUGINS = [
+ 'xht_fee',
+ 'kyc',
+ 'sms',
+ 'freshdesk',
+ 'chat',
+ 'bank',
+ 'announcement',
+ 'zendesk'
+];
+
+exports.REQUIRED_XHT = 100;
+
+exports.SMS_CODE_KEY = 'user:sms';
+exports.SMS_CODE_EXPIRATION_TIME = 6 * 60; // seconds -> 6 min
+
+exports.S3_LINK_EXPIRATION_TIME = 300; // seconds
+
+exports.ID_FIELDS = [
+ 'type',
+ 'number',
+ 'issued_date',
+ 'expiration_date',
+ 'status'
+];
+
+exports.USER_FIELD_ADMIN_LOG = [
+ 'full_name',
+ 'email',
+ 'dob',
+ 'gender',
+ 'nationality',
+ 'phone_number',
+ 'address',
+ 'id_data',
+ 'bank_account',
+ 'settings',
+ 'username'
+];
+
+exports.ADDRESS_FIELDS = ['city', 'address', 'country', 'postal_code'];
+
+exports.VERIFY_STATUS = {
+ EMPTY: 0,
+ PENDING: 1,
+ REJECTED: 2,
+ COMPLETED: 3
+};
+// PLUGIN CONSTANTS END ------------------------------ to be moved
\ No newline at end of file
diff --git a/server/db/functions/create-uuid.js b/server/db/functions/create-uuid.js
new file mode 100644
index 0000000000..8c579bb778
--- /dev/null
+++ b/server/db/functions/create-uuid.js
@@ -0,0 +1,5 @@
+const sql = `
+CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
+`;
+
+module.exports = sql;
\ No newline at end of file
diff --git a/server/db/functions/drops.js b/server/db/functions/drops.js
new file mode 100644
index 0000000000..52bd7d9c06
--- /dev/null
+++ b/server/db/functions/drops.js
@@ -0,0 +1,11 @@
+const sql = `
+DROP FUNCTION calculate_accumlated_withdrawals(user_id_to_check integer, check_currency CHAR);
+DROP FUNCTION calculate_accumlated(user_id integer, currency CHAR);
+DROP FUNCTION calculate_fiat_amount_with_fee(price DOUBLE precision, size DOUBLE precision, fee FLOAT);
+DROP FUNCTION check_balance(user_id_to_check integer);
+DROP FUNCTION get_limit_for_level(level INT, currency CHAR, type CHAR);
+DROP FUNCTION calculate_btc_amount_with_fee(size DOUBLE precision, fee FLOAT);
+
+`;
+
+module.exports = sql;
diff --git a/db/migrations/20170717083259-create-user.js b/server/db/migrations/20170717083259-create-user.js
similarity index 81%
rename from db/migrations/20170717083259-create-user.js
rename to server/db/migrations/20170717083259-create-user.js
index 99be15f46b..c30cde6857 100644
--- a/db/migrations/20170717083259-create-user.js
+++ b/server/db/migrations/20170717083259-create-user.js
@@ -84,7 +84,27 @@ module.exports = {
allowNull: false,
type: Sequelize.DATE,
defaultValue: Sequelize.literal('NOW()')
- }
+ },
+ is_admin: {
+ type: Sequelize.BOOLEAN,
+ defaultValue: false
+ },
+ is_supervisor: {
+ type: Sequelize.BOOLEAN,
+ defaultValue: false
+ },
+ is_support: {
+ type: Sequelize.BOOLEAN,
+ defaultValue: false
+ },
+ is_kyc: {
+ type: Sequelize.BOOLEAN,
+ defaultValue: false
+ },
+ is_tech: {
+ type: Sequelize.BOOLEAN,
+ defaultValue: false
+ },
},
{
timestamps: true,
diff --git a/db/migrations/20170720075000-create-verification-code.js b/server/db/migrations/20170720075000-create-verification-code.js
similarity index 100%
rename from db/migrations/20170720075000-create-verification-code.js
rename to server/db/migrations/20170720075000-create-verification-code.js
diff --git a/db/migrations/20170728075400-create-reset-password-code.js b/server/db/migrations/20170728075400-create-reset-password-code.js
similarity index 100%
rename from db/migrations/20170728075400-create-reset-password-code.js
rename to server/db/migrations/20170728075400-create-reset-password-code.js
diff --git a/db/migrations/20170807155400-create-verification-images.js b/server/db/migrations/20170807155400-create-verification-images.js
similarity index 100%
rename from db/migrations/20170807155400-create-verification-images.js
rename to server/db/migrations/20170807155400-create-verification-images.js
diff --git a/db/migrations/20170811162200-create-otp.js b/server/db/migrations/20170811162200-create-otp.js
similarity index 100%
rename from db/migrations/20170811162200-create-otp.js
rename to server/db/migrations/20170811162200-create-otp.js
diff --git a/db/migrations/20170811165400-add-otpenabled-users.js b/server/db/migrations/20170811165400-add-otpenabled-users.js
similarity index 100%
rename from db/migrations/20170811165400-add-otpenabled-users.js
rename to server/db/migrations/20170811165400-add-otpenabled-users.js
diff --git a/db/migrations/20170821085500-create-token.js b/server/db/migrations/20170821085500-create-token.js
similarity index 100%
rename from db/migrations/20170821085500-create-token.js
rename to server/db/migrations/20170821085500-create-token.js
diff --git a/db/migrations/20171013160900-remove-address-user.js b/server/db/migrations/20171013160900-remove-address-user.js
similarity index 100%
rename from db/migrations/20171013160900-remove-address-user.js
rename to server/db/migrations/20171013160900-remove-address-user.js
diff --git a/db/migrations/20171013161000-add-address-jsonb-user.js b/server/db/migrations/20171013161000-add-address-jsonb-user.js
similarity index 100%
rename from db/migrations/20171013161000-add-address-jsonb-user.js
rename to server/db/migrations/20171013161000-add-address-jsonb-user.js
diff --git a/db/migrations/20171013161100-remove-bank-account-number-user.js b/server/db/migrations/20171013161100-remove-bank-account-number-user.js
similarity index 100%
rename from db/migrations/20171013161100-remove-bank-account-number-user.js
rename to server/db/migrations/20171013161100-remove-bank-account-number-user.js
diff --git a/db/migrations/20171013161100-remove-bank-name-user.js b/server/db/migrations/20171013161100-remove-bank-name-user.js
similarity index 100%
rename from db/migrations/20171013161100-remove-bank-name-user.js
rename to server/db/migrations/20171013161100-remove-bank-name-user.js
diff --git a/db/migrations/20171013161200-add-bank-account-user.js b/server/db/migrations/20171013161200-add-bank-account-user.js
similarity index 100%
rename from db/migrations/20171013161200-add-bank-account-user.js
rename to server/db/migrations/20171013161200-add-bank-account-user.js
diff --git a/db/migrations/20171013161400-remove-id-number-user.js b/server/db/migrations/20171013161400-remove-id-number-user.js
similarity index 100%
rename from db/migrations/20171013161400-remove-id-number-user.js
rename to server/db/migrations/20171013161400-remove-id-number-user.js
diff --git a/db/migrations/20171013161400-remove-id-type-user.js b/server/db/migrations/20171013161400-remove-id-type-user.js
similarity index 100%
rename from db/migrations/20171013161400-remove-id-type-user.js
rename to server/db/migrations/20171013161400-remove-id-type-user.js
diff --git a/db/migrations/20171013161700-add-id-user.js b/server/db/migrations/20171013161700-add-id-user.js
similarity index 100%
rename from db/migrations/20171013161700-add-id-user.js
rename to server/db/migrations/20171013161700-add-id-user.js
diff --git a/db/migrations/20171103165700-add-default-created_at-user.js b/server/db/migrations/20171103165700-add-default-created_at-user.js
similarity index 100%
rename from db/migrations/20171103165700-add-default-created_at-user.js
rename to server/db/migrations/20171103165700-add-default-created_at-user.js
diff --git a/db/migrations/20171103165800-add-default-updated_at-user.js b/server/db/migrations/20171103165800-add-default-updated_at-user.js
similarity index 100%
rename from db/migrations/20171103165800-add-default-updated_at-user.js
rename to server/db/migrations/20171103165800-add-default-updated_at-user.js
diff --git a/db/migrations/20171116200700-add-activated-user.js b/server/db/migrations/20171116200700-add-activated-user.js
similarity index 100%
rename from db/migrations/20171116200700-add-activated-user.js
rename to server/db/migrations/20171116200700-add-activated-user.js
diff --git a/db/migrations/20171218073200-add-settings-user.js b/server/db/migrations/20171218073200-add-settings-user.js
similarity index 100%
rename from db/migrations/20171218073200-add-settings-user.js
rename to server/db/migrations/20171218073200-add-settings-user.js
diff --git a/db/migrations/20171226120730-change-first_name-user.js b/server/db/migrations/20171226120730-change-first_name-user.js
similarity index 100%
rename from db/migrations/20171226120730-change-first_name-user.js
rename to server/db/migrations/20171226120730-change-first_name-user.js
diff --git a/db/migrations/20171226120800-remove-last_name-user.js b/server/db/migrations/20171226120800-remove-last_name-user.js
similarity index 100%
rename from db/migrations/20171226120800-remove-last_name-user.js
rename to server/db/migrations/20171226120800-remove-last_name-user.js
diff --git a/db/migrations/20180426132900-add-username-user.js b/server/db/migrations/20180426132900-add-username-user.js
similarity index 100%
rename from db/migrations/20180426132900-add-username-user.js
rename to server/db/migrations/20180426132900-add-username-user.js
diff --git a/db/migrations/20180619110259-create-logins.js b/server/db/migrations/20180619110259-create-logins.js
similarity index 100%
rename from db/migrations/20180619110259-create-logins.js
rename to server/db/migrations/20180619110259-create-logins.js
diff --git a/db/migrations/20180728083910-add-flagged-user.js b/server/db/migrations/20180728083910-add-flagged-user.js
similarity index 100%
rename from db/migrations/20180728083910-add-flagged-user.js
rename to server/db/migrations/20180728083910-add-flagged-user.js
diff --git a/db/migrations/20180807130613-create-affiliation.js b/server/db/migrations/20180807130613-create-affiliation.js
similarity index 90%
rename from db/migrations/20180807130613-create-affiliation.js
rename to server/db/migrations/20180807130613-create-affiliation.js
index c534459a5e..7d7cc3b024 100644
--- a/db/migrations/20180807130613-create-affiliation.js
+++ b/server/db/migrations/20180807130613-create-affiliation.js
@@ -29,11 +29,6 @@ module.exports = {
key: 'id'
}
},
- percentage: {
- allowNull: false,
- type: Sequelize.INTEGER,
- defaultValue: 10
- },
updated_at: {
allowNull: false,
type: Sequelize.DATE,
diff --git a/db/migrations/20180808141237-add-user-affiliation.js b/server/db/migrations/20180808141237-add-user-affiliation.js
similarity index 73%
rename from db/migrations/20180808141237-add-user-affiliation.js
rename to server/db/migrations/20180808141237-add-user-affiliation.js
index 0c81923996..e775c9b31b 100644
--- a/db/migrations/20180808141237-add-user-affiliation.js
+++ b/server/db/migrations/20180808141237-add-user-affiliation.js
@@ -1,6 +1,7 @@
'use strict';
const TABLE = 'Users';
const COLUMN = 'affiliation_code';
+const COLUMN2 = 'affiliation_rate';
module.exports = {
up: (queryInterface, Sequelize) =>
@@ -13,6 +14,12 @@ module.exports = {
return queryInterface.sequelize.query(
`UPDATE "${TABLE}" SET ${COLUMN} = upper(substring(MD5(random()::text), 1, 6))`
);
+ })
+ .then(() => {
+ return queryInterface.addColumn(TABLE, COLUMN2, {
+ type: Sequelize.DOUBLE,
+ defaultValue: 0
+ });
}),
down: (queryInterface, Sequelize) =>
queryInterface.removeColumn(TABLE, COLUMN)
diff --git a/db/migrations/20181205090309-change-user-verification-data.js b/server/db/migrations/20181205090309-change-user-verification-data.js
similarity index 100%
rename from db/migrations/20181205090309-change-user-verification-data.js
rename to server/db/migrations/20181205090309-change-user-verification-data.js
diff --git a/db/migrations/20181206060319-change-bank-account-to-array.js b/server/db/migrations/20181206060319-change-bank-account-to-array.js
similarity index 100%
rename from db/migrations/20181206060319-change-bank-account-to-array.js
rename to server/db/migrations/20181206060319-change-bank-account-to-array.js
diff --git a/db/migrations/20181228044616-add-note-iddata.js b/server/db/migrations/20181228044616-add-note-iddata.js
similarity index 100%
rename from db/migrations/20181228044616-add-note-iddata.js
rename to server/db/migrations/20181228044616-add-note-iddata.js
diff --git a/db/migrations/20190307151159-create-audit.js b/server/db/migrations/20190307151159-create-audit.js
similarity index 100%
rename from db/migrations/20190307151159-create-audit.js
rename to server/db/migrations/20190307151159-create-audit.js
diff --git a/db/migrations/20190315033608-user-settings-update.js b/server/db/migrations/20190315033608-user-settings-update.js
similarity index 100%
rename from db/migrations/20190315033608-user-settings-update.js
rename to server/db/migrations/20190315033608-user-settings-update.js
diff --git a/db/migrations/20190315060940-user-settings-remove-old-fields.js b/server/db/migrations/20190315060940-user-settings-remove-old-fields.js
similarity index 100%
rename from db/migrations/20190315060940-user-settings-remove-old-fields.js
rename to server/db/migrations/20190315060940-user-settings-remove-old-fields.js
diff --git a/db/migrations/20190707074538-change-crypto-address-key.js b/server/db/migrations/20190707074538-change-crypto-address-key.js
similarity index 100%
rename from db/migrations/20190707074538-change-crypto-address-key.js
rename to server/db/migrations/20190707074538-change-crypto-address-key.js
diff --git a/db/migrations/20190825082419-create-status.js b/server/db/migrations/20190825082419-create-status.js
similarity index 77%
rename from db/migrations/20190825082419-create-status.js
rename to server/db/migrations/20190825082419-create-status.js
index 6a5871f212..1e25b4580e 100644
--- a/db/migrations/20190825082419-create-status.js
+++ b/server/db/migrations/20190825082419-create-status.js
@@ -11,10 +11,6 @@ module.exports = {
primaryKey: true,
type: Sequelize.INTEGER
},
- name: {
- type: Sequelize.STRING,
- allowNull: true
- },
activated: {
type: Sequelize.BOOLEAN,
defaultValue: false,
@@ -34,6 +30,26 @@ module.exports = {
type: Sequelize.STRING,
allowNull: true
},
+ constants: {
+ type: Sequelize.JSONB,
+ defaultValue: {}
+ },
+ secrets: {
+ type: Sequelize.JSONB,
+ defaultValue: {}
+ },
+ kit: {
+ type: Sequelize.JSONB,
+ defaultValue: {}
+ },
+ api_key: {
+ type: Sequelize.STRING,
+ allowNull: true
+ },
+ api_secret: {
+ type: Sequelize.STRING,
+ allowNull: true
+ },
created_at: {
allowNull: false,
type: Sequelize.DATE,
@@ -43,7 +59,8 @@ module.exports = {
allowNull: false,
type: Sequelize.DATE,
defaultValue: Sequelize.literal('NOW()')
- }
+ },
+
},
{
timestamps: true,
diff --git a/db/migrations/20190828152741-rename-status-table.js b/server/db/migrations/20190828152741-rename-status-table.js
similarity index 100%
rename from db/migrations/20190828152741-rename-status-table.js
rename to server/db/migrations/20190828152741-rename-status-table.js
diff --git a/db/migrations/20191124095427-recreate-token.js b/server/db/migrations/20191124095427-recreate-token.js
similarity index 97%
rename from db/migrations/20191124095427-recreate-token.js
rename to server/db/migrations/20191124095427-recreate-token.js
index b5372d7eb1..cb9dd7a53d 100644
--- a/db/migrations/20191124095427-recreate-token.js
+++ b/server/db/migrations/20191124095427-recreate-token.js
@@ -47,7 +47,7 @@ module.exports = {
type: {
type: Sequelize.STRING,
allowNull: false,
- defaultValue: TOKEN_TYPES.DEV
+ defaultValue: TOKEN_TYPES.HMAC
},
active: {
type: Sequelize.BOOLEAN,
diff --git a/db/migrations/20200511023924-create-announcement.js b/server/db/migrations/20200511023924-create-announcement.js
similarity index 100%
rename from db/migrations/20200511023924-create-announcement.js
rename to server/db/migrations/20200511023924-create-announcement.js
diff --git a/db/migrations/20171113104500-add-is_admin-user.js b/server/db/migrations/20200907015413-add-user-network_id.js
similarity index 74%
rename from db/migrations/20171113104500-add-is_admin-user.js
rename to server/db/migrations/20200907015413-add-user-network_id.js
index d898c33442..86bbddf4e1 100644
--- a/db/migrations/20171113104500-add-is_admin-user.js
+++ b/server/db/migrations/20200907015413-add-user-network_id.js
@@ -1,13 +1,12 @@
'use strict';
const TABLE = 'Users';
-const COLUMN = 'is_admin';
+const COLUMN = 'network_id';
module.exports = {
up: (queryInterface, Sequelize) =>
queryInterface.addColumn(TABLE, COLUMN, {
- type: Sequelize.BOOLEAN,
- defaultValue: false
+ type: Sequelize.INTEGER
}),
down: (queryInterface, Sequelize) =>
queryInterface.removeColumn(TABLE, COLUMN)
diff --git a/db/migrations/20180502120259-create-pairs.js b/server/db/migrations/20201014015535-create-tiers.js
similarity index 66%
rename from db/migrations/20180502120259-create-pairs.js
rename to server/db/migrations/20201014015535-create-tiers.js
index ecc2fdae2b..2669c81271 100644
--- a/db/migrations/20180502120259-create-pairs.js
+++ b/server/db/migrations/20201014015535-create-tiers.js
@@ -3,27 +3,33 @@
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable(
- 'Pairs',
+ 'Tiers',
{
id: {
allowNull: false,
- autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER
},
name: {
- type: Sequelize.STRING,
- allowNull: false,
- unique: true
- },
- pair_base: {
type: Sequelize.STRING,
allowNull: false
},
- pair_2: {
+ description: {
type: Sequelize.STRING,
allowNull: false
},
+ deposit_limit: {
+ type: Sequelize.DOUBLE,
+ defaultValue: 0
+ },
+ withdrawal_limit: {
+ type: Sequelize.DOUBLE,
+ defaultValue: 0
+ },
+ fees: {
+ type: Sequelize.JSONB,
+ defaultValue: {}
+ },
created_at: {
allowNull: false,
type: Sequelize.DATE,
@@ -33,7 +39,8 @@ module.exports = {
allowNull: false,
type: Sequelize.DATE,
defaultValue: Sequelize.literal('NOW()')
- }
+ },
+
},
{
timestamps: true,
@@ -41,5 +48,5 @@ module.exports = {
}
);
},
- down: (queryInterface, Sequelize) => queryInterface.dropTable('Pairs')
+ down: (queryInterface) => queryInterface.dropTable('Tiers')
};
\ No newline at end of file
diff --git a/server/db/migrations/20201022040333-change-is_tech-to-is_communicator.js b/server/db/migrations/20201022040333-change-is_tech-to-is_communicator.js
new file mode 100644
index 0000000000..866ad979dc
--- /dev/null
+++ b/server/db/migrations/20201022040333-change-is_tech-to-is_communicator.js
@@ -0,0 +1,12 @@
+'use strict';
+
+const TABLE = 'Users';
+const OLD_COLUMN = 'is_tech';
+const NEW_COLUMN = 'is_communicator';
+
+module.exports = {
+ up: (queryInterface, Sequelize) =>
+ queryInterface.renameColumn(TABLE, OLD_COLUMN, NEW_COLUMN),
+ down: (queryInterface, Sequelize) =>
+ queryInterface.renameColumn(TABLE, NEW_COLUMN, OLD_COLUMN)
+};
\ No newline at end of file
diff --git a/db/migrations/20180131100300-add-description-deposit.js b/server/db/migrations/20201023055345-add-icon-to-tier.js
similarity index 81%
rename from db/migrations/20180131100300-add-description-deposit.js
rename to server/db/migrations/20201023055345-add-icon-to-tier.js
index ae7dc779c4..00e4e3b537 100644
--- a/db/migrations/20180131100300-add-description-deposit.js
+++ b/server/db/migrations/20201023055345-add-icon-to-tier.js
@@ -1,7 +1,7 @@
'use strict';
-const TABLE = 'Deposits';
-const COLUMN = 'description';
+const TABLE = 'Tiers';
+const COLUMN = 'icon';
module.exports = {
up: (queryInterface, Sequelize) =>
diff --git a/db/migrations/20170823165400-add-fee-deposits.js b/server/db/migrations/20201026031032-add-kit_version-to-status.js
similarity index 68%
rename from db/migrations/20170823165400-add-fee-deposits.js
rename to server/db/migrations/20201026031032-add-kit_version-to-status.js
index 2b703d19f8..afdaad8d0e 100644
--- a/db/migrations/20170823165400-add-fee-deposits.js
+++ b/server/db/migrations/20201026031032-add-kit_version-to-status.js
@@ -1,13 +1,12 @@
'use strict';
-const TABLE = 'Deposits';
-const COLUMN = 'fee';
+const TABLE = 'Statuses';
+const COLUMN = 'kit_version';
module.exports = {
up: (queryInterface, Sequelize) =>
queryInterface.addColumn(TABLE, COLUMN, {
- type: Sequelize.DOUBLE,
- defaultValue: 0
+ type: Sequelize.STRING
}),
down: (queryInterface, Sequelize) =>
queryInterface.removeColumn(TABLE, COLUMN)
diff --git a/db/migrations/20170828080100-add-symbol-orders.js b/server/db/migrations/20201103015833-add-note-to-tiers.js
similarity index 71%
rename from db/migrations/20170828080100-add-symbol-orders.js
rename to server/db/migrations/20201103015833-add-note-to-tiers.js
index ed3ce2eb12..bda943248d 100644
--- a/db/migrations/20170828080100-add-symbol-orders.js
+++ b/server/db/migrations/20201103015833-add-note-to-tiers.js
@@ -1,14 +1,13 @@
'use strict';
-const TABLE = 'Orders';
-const COLUMN = 'symbol';
+const TABLE = 'Tiers';
+const COLUMN = 'note';
module.exports = {
up: (queryInterface, Sequelize) =>
queryInterface.addColumn(TABLE, COLUMN, {
type: Sequelize.STRING,
- defaultValue: 'btc',
- allowNull: false
+ defaultValue: ''
}),
down: (queryInterface, Sequelize) =>
queryInterface.removeColumn(TABLE, COLUMN)
diff --git a/server/db/migrations/20201126102745-create-plugins.js b/server/db/migrations/20201126102745-create-plugins.js
new file mode 100644
index 0000000000..7f7416ffca
--- /dev/null
+++ b/server/db/migrations/20201126102745-create-plugins.js
@@ -0,0 +1,92 @@
+'use strict';
+
+const TABLE_NAME = 'Plugins';
+
+module.exports = {
+ up: (queryInterface, Sequelize) => {
+ return queryInterface.createTable(TABLE_NAME, {
+ id: {
+ allowNull: false,
+ autoIncrement: true,
+ primaryKey: true,
+ type: Sequelize.INTEGER
+ },
+ version: {
+ type: Sequelize.INTEGER,
+ defaultValue: 1
+ },
+ name: {
+ type: Sequelize.STRING,
+ allowNull: false,
+ unique: true
+ },
+ enabled: {
+ type: Sequelize.BOOLEAN,
+ defaultValue: true
+ },
+ author: {
+ type: Sequelize.STRING
+ },
+ bio: {
+ type: Sequelize.STRING
+ },
+ description: {
+ type: Sequelize.STRING
+ },
+ documentation: {
+ type: Sequelize.STRING
+ },
+ logo: {
+ type: Sequelize.STRING
+ },
+ icon: {
+ type: Sequelize.STRING
+ },
+ url: {
+ type: Sequelize.STRING
+ },
+ meta: {
+ type: Sequelize.JSONB,
+ defaultValue: {}
+ },
+ prescript: {
+ type: Sequelize.JSONB,
+ defaultValue: {
+ install: [],
+ run: null
+ }
+ },
+ postscript: {
+ type: Sequelize.JSONB,
+ defaultValue: {
+ run: null
+ }
+ },
+ script: {
+ type: Sequelize.TEXT,
+ allowNull: false
+ },
+ admin_view: {
+ type: Sequelize.TEXT
+ },
+ web_view: {
+ type: Sequelize.TEXT
+ },
+ created_at: {
+ allowNull: false,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()')
+ },
+ updated_at: {
+ allowNull: false,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()')
+ }
+ },
+ {
+ timestamps: true,
+ underscored: true
+ });
+ },
+ down: (queryInterface) => queryInterface.dropTable(TABLE_NAME)
+};
\ No newline at end of file
diff --git a/db/models/affiliation.js b/server/db/models/affiliation.js
similarity index 100%
rename from db/models/affiliation.js
rename to server/db/models/affiliation.js
diff --git a/db/models/audit.js b/server/db/models/audit.js
similarity index 100%
rename from db/models/audit.js
rename to server/db/models/audit.js
diff --git a/db/models/index.js b/server/db/models/index.js
similarity index 70%
rename from db/models/index.js
rename to server/db/models/index.js
index ccc4a3c842..2d5d7af6d0 100644
--- a/db/models/index.js
+++ b/server/db/models/index.js
@@ -20,26 +20,14 @@ model = sequelize.import('affiliation', require('./affiliation'));
db[model.name] = model;
model = sequelize.import('audit', require('./audit'));
db[model.name] = model;
-model = sequelize.import('balance', require('./balance'));
-db[model.name] = model;
-model = sequelize.import('coin', require('./coin'));
-db[model.name] = model;
-model = sequelize.import('deposit', require('./deposit'));
-db[model.name] = model;
model = sequelize.import('login', require('./login'));
db[model.name] = model;
-model = sequelize.import('order', require('./order'));
-db[model.name] = model;
model = sequelize.import('otpCode', require('./otpCode'));
db[model.name] = model;
-model = sequelize.import('pair', require('./pair'));
-db[model.name] = model;
model = sequelize.import('resetPasswordCode', require('./resetPasswordCode'));
db[model.name] = model;
model = sequelize.import('token', require('./token'));
db[model.name] = model;
-model = sequelize.import('trade', require('./trade'));
-db[model.name] = model;
model = sequelize.import('user', require('./user'));
db[model.name] = model;
model = sequelize.import('verificationCode', require('./verificationCode'));
@@ -48,9 +36,9 @@ model = sequelize.import('verificationImage', require('./verificationImage'));
db[model.name] = model;
model = sequelize.import('status', require('./status'));
db[model.name] = model;
-model = sequelize.import('fee', require('./fee'));
+model = sequelize.import('tier', require('./tier'));
db[model.name] = model;
-model = sequelize.import('announcement', require('./announcement'));
+model = sequelize.import('plugin', require('./plugin'));
db[model.name] = model;
Object.keys(db).forEach(function(modelName) {
diff --git a/db/models/login.js b/server/db/models/login.js
similarity index 100%
rename from db/models/login.js
rename to server/db/models/login.js
diff --git a/db/models/otpCode.js b/server/db/models/otpCode.js
similarity index 100%
rename from db/models/otpCode.js
rename to server/db/models/otpCode.js
diff --git a/server/db/models/plugin.js b/server/db/models/plugin.js
new file mode 100644
index 0000000000..583f5890bc
--- /dev/null
+++ b/server/db/models/plugin.js
@@ -0,0 +1,70 @@
+'use strict';
+module.exports = (sequelize, DataTypes) => {
+ const Plugin = sequelize.define('Plugin', {
+ version: {
+ type: DataTypes.INTEGER,
+ defaultValue:1
+ },
+ name: {
+ type: DataTypes.STRING,
+ allowNull: false
+ },
+ enabled: {
+ type: DataTypes.BOOLEAN,
+ defaultValue: true
+ },
+ author: {
+ type: DataTypes.STRING
+ },
+ bio: {
+ type: DataTypes.STRING
+ },
+ description: {
+ type: DataTypes.STRING
+ },
+ documentation: {
+ type: DataTypes.STRING
+ },
+ logo: {
+ type: DataTypes.STRING
+ },
+ icon: {
+ type: DataTypes.STRING
+ },
+ url: {
+ type: DataTypes.STRING
+ },
+ meta: {
+ type: DataTypes.JSONB,
+ defaultValue: {}
+ },
+ prescript: {
+ type: DataTypes.JSONB,
+ defaultValue: {
+ install: [],
+ run: null
+ }
+ },
+ postscript: {
+ type: DataTypes.JSONB,
+ defaultValue: {
+ run: null
+ }
+ },
+ script: {
+ type: DataTypes.TEXT,
+ allowNull: false
+ },
+ admin_view: {
+ type: DataTypes.TEXT
+ },
+ web_view: {
+ type: DataTypes.TEXT
+ }
+ }, {
+ timestamps: true,
+ underscored: true
+ });
+
+ return Plugin;
+};
\ No newline at end of file
diff --git a/db/models/resetPasswordCode.js b/server/db/models/resetPasswordCode.js
similarity index 100%
rename from db/models/resetPasswordCode.js
rename to server/db/models/resetPasswordCode.js
diff --git a/db/models/status.js b/server/db/models/status.js
similarity index 79%
rename from db/models/status.js
rename to server/db/models/status.js
index 44a7b31f3e..8631d8f338 100644
--- a/db/models/status.js
+++ b/server/db/models/status.js
@@ -4,10 +4,6 @@ module.exports = function(sequelize, DataTypes) {
const Status = sequelize.define(
'Status',
{
- name: {
- type: DataTypes.STRING,
- allowNull: true
- },
activated: {
type: DataTypes.BOOLEAN,
defaultValue: false,
@@ -27,13 +23,25 @@ module.exports = function(sequelize, DataTypes) {
type: DataTypes.STRING,
allowNull: true
},
- url: {
- type: DataTypes.STRING,
- allowNull: true
+ secrets: {
+ type: DataTypes.JSONB,
+ defaultValue: {}
},
- constants: {
+ kit: {
type: DataTypes.JSONB,
defaultValue: {}
+ },
+ api_key: {
+ type: DataTypes.STRING,
+ allowNull: true
+ },
+ api_secret: {
+ type: DataTypes.STRING,
+ allowNull: true
+ },
+ kit_version: {
+ type: DataTypes.STRING,
+ allowNull: true
}
},
{
diff --git a/server/db/models/tier.js b/server/db/models/tier.js
new file mode 100644
index 0000000000..4eb8043ee1
--- /dev/null
+++ b/server/db/models/tier.js
@@ -0,0 +1,47 @@
+'use strict';
+
+module.exports = function(sequelize, DataTypes) {
+ const Tier = sequelize.define(
+ 'Tier',
+ {
+ id: {
+ allowNull: false,
+ primaryKey: true,
+ type: DataTypes.INTEGER
+ },
+ name: {
+ type: DataTypes.STRING,
+ allowNull: false
+ },
+ icon: {
+ type: DataTypes.STRING,
+ defaultValue: ''
+ },
+ description: {
+ type: DataTypes.STRING,
+ allowNull: false
+ },
+ deposit_limit: {
+ type: DataTypes.DOUBLE,
+ defaultValue: 0
+ },
+ withdrawal_limit: {
+ type: DataTypes.DOUBLE,
+ defaultValue: 0
+ },
+ fees: {
+ type: DataTypes.JSONB,
+ defaultValue: {}
+ },
+ note: {
+ type: DataTypes.STRING,
+ defaultValue: ''
+ }
+ },
+ {
+ underscored: true
+ }
+ );
+
+ return Tier;
+};
diff --git a/db/models/token.js b/server/db/models/token.js
similarity index 96%
rename from db/models/token.js
rename to server/db/models/token.js
index 6a55e1b591..83e9a75a7b 100644
--- a/db/models/token.js
+++ b/server/db/models/token.js
@@ -25,7 +25,7 @@ module.exports = function(sequelize, DataTypes) {
type: {
type: DataTypes.STRING,
allowNull: false,
- defaultValue: TOKEN_TYPES.NORMAL
+ defaultValue: TOKEN_TYPES.HMAC
},
name: {
type: DataTypes.STRING,
diff --git a/db/models/user.js b/server/db/models/user.js
similarity index 88%
rename from db/models/user.js
rename to server/db/models/user.js
index f4f61c73db..18713d8006 100644
--- a/db/models/user.js
+++ b/server/db/models/user.js
@@ -60,10 +60,6 @@ module.exports = function(sequelize, DataTypes) {
type: DataTypes.STRING,
defaultValue: ''
},
- name_verified: {
- type: DataTypes.BOOLEAN,
- defaultValue: false
- },
gender: {
type: DataTypes.BOOLEAN,
defaultValue: false
@@ -150,21 +146,16 @@ module.exports = function(sequelize, DataTypes) {
type: DataTypes.BOOLEAN,
defaultValue: false
},
- is_tech: {
+ is_communicator: {
type: DataTypes.BOOLEAN,
defaultValue: false
},
- custom_fee: {
- type: DataTypes.BOOLEAN,
- defaultValue: false
- },
affiliation_rate: {
type: DataTypes.DOUBLE,
- defaultValue: 0
+ defaultValue: 0
},
- discount: {
- type: DataTypes.DOUBLE,
- defaultValue: 0
+ network_id: {
+ type: DataTypes.INTEGER
}
},
{
@@ -192,11 +183,6 @@ module.exports = function(sequelize, DataTypes) {
});
User.associate = (models) => {
- User.hasOne(models.Balance, {
- foreignKey: 'user_id',
- as: 'balance'
- });
- User.hasMany(models.Deposit);
User.hasMany(models.Token);
User.hasMany(models.VerificationCode);
// User.hasMany(models.VerificationImage);
@@ -212,13 +198,6 @@ module.exports = function(sequelize, DataTypes) {
User.hasMany(models.Affiliation, {
foreignKey: 'referer_id'
});
- User.hasMany(models.Order);
- User.hasMany(models.Trade, {
- foreignKey: 'maker_id'
- });
- User.hasMany(models.Trade, {
- foreignKey: 'taker_id'
- });
};
return User;
diff --git a/db/models/verificationCode.js b/server/db/models/verificationCode.js
similarity index 100%
rename from db/models/verificationCode.js
rename to server/db/models/verificationCode.js
diff --git a/db/models/verificationImage.js b/server/db/models/verificationImage.js
similarity index 100%
rename from db/models/verificationImage.js
rename to server/db/models/verificationImage.js
diff --git a/server/db/pubsub.js b/server/db/pubsub.js
new file mode 100644
index 0000000000..8572fae8b0
--- /dev/null
+++ b/server/db/pubsub.js
@@ -0,0 +1,29 @@
+'use strict';
+const redis = require('redis');
+const config = require('../config/redis');
+const { loggerRedis } = require('../config/logger');
+const client = redis.createClient(config.pubsub);
+
+client.on('ready', () => {
+ if (loggerRedis) loggerRedis.info('PubSub is ready');
+});
+
+client.on('connect', () => {
+ if (loggerRedis) loggerRedis.verbose('Connect to PubSub');
+ if (config.pubsub.password) {
+ client.auth(config.pubsub.password, () => {
+ if (loggerRedis) loggerRedis.verbose('Authenticated to PubSub');
+ });
+ }
+});
+
+client.on('error', (err) => {
+ if (loggerRedis) loggerRedis.error('PUBSUBS', err.message);
+ if (loggerRedis) loggerRedis.error(err);
+ process.exit(0);
+});
+
+module.exports = {
+ publisher: client.duplicate(),
+ subscriber: client.duplicate()
+};
\ No newline at end of file
diff --git a/server/db/redis.js b/server/db/redis.js
new file mode 100644
index 0000000000..897f5f0ffe
--- /dev/null
+++ b/server/db/redis.js
@@ -0,0 +1,33 @@
+'use strict';
+
+const { promisifyAll } = require('bluebird');
+const redis = require('redis');
+const config = require('../config/redis');
+const { loggerRedis } = require('../config/logger');
+
+promisifyAll(redis.RedisClient.prototype);
+promisifyAll(redis.Multi.prototype);
+
+const client = redis.createClient(config.client);
+
+client.on('ready', () => {
+ if (loggerRedis) loggerRedis.info('Redis is ready');
+});
+
+client.on('connect', () => {
+ if (loggerRedis) loggerRedis.verbose('Connect to redis');
+ if (config.client.password) {
+ client.auth(config.client.password, () => {
+ if (loggerRedis) loggerRedis.verbose('Authenticated to redis');
+ });
+ }
+});
+
+client.on('error', (err) => {
+ if (loggerRedis) loggerRedis.error('REDIS', err.message);
+ if (loggerRedis) loggerRedis.error(err);
+ process.exit(0);
+});
+
+
+module.exports = client;
diff --git a/server/db/seeders/20190825120350-add-status.js b/server/db/seeders/20190825120350-add-status.js
new file mode 100644
index 0000000000..a80862ac0f
--- /dev/null
+++ b/server/db/seeders/20190825120350-add-status.js
@@ -0,0 +1,133 @@
+'use strict';
+
+const rp = require('request-promise');
+
+const {
+ API_NAME,
+ API_HOST,
+ LOGO_IMAGE,
+ EMAILS_TIMEZONE,
+ VALID_LANGUAGES,
+ NEW_USER_DEFAULT_LANGUAGE,
+ SENDER_EMAIL,
+ DEFAULT_THEME,
+ NEW_USER_IS_ACTIVATED,
+ SMTP_SERVER,
+ SMTP_PORT,
+ SMTP_USER,
+ SMTP_PASSWORD,
+ SEND_EMAIL_TO_SUPPORT,
+ ALLOWED_DOMAINS,
+ CAPTCHA_SECRET_KEY,
+ ADMIN_EMAIL,
+ CAPTCHA_SITE_KEY,
+ ADMIN_WHITELIST_IP,
+ ACTIVATION_CODE,
+ NATIVE_CURRENCY,
+ API_KEY,
+ API_SECRET,
+ KIT_VERSION
+} = process.env;
+
+const {
+ HOLLAEX_NETWORK_ENDPOINT,
+ HOLLAEX_NETWORK_BASE_URL,
+ HOLLAEX_NETWORK_PATH_ACTIVATE
+} = require('../../constants');
+
+const checkActivation = (activation_code) => {
+ const body = {
+ activation_code
+ };
+
+ const options = {
+ method: 'POST',
+ body,
+ uri: `${HOLLAEX_NETWORK_ENDPOINT}${HOLLAEX_NETWORK_BASE_URL}${HOLLAEX_NETWORK_PATH_ACTIVATE}`,
+ json: true
+ };
+ return rp(options);
+};
+
+const TABLE = 'Statuses';
+
+module.exports = {
+ up: (queryInterface) => {
+ return checkActivation(ACTIVATION_CODE)
+ .then((exchange) => {
+ const status = [{
+ kit: JSON.stringify({
+ api_name: API_NAME || '',
+ description: '',
+ color: {},
+ interface: {},
+ icons: {},
+ strings: {},
+ title: '',
+ links: {
+ twitter: '',
+ instagram: '',
+ telegram: '',
+ facebook: '',
+ linkedin: '',
+ github: '',
+ contact: '',
+ helpdesk: '',
+ terms: '',
+ privacy: '',
+ api: API_HOST || '',
+ whitepaper: '',
+ website: '',
+ information: '',
+ },
+ setup_completed: false,
+ native_currency: NATIVE_CURRENCY || exchange.coins[0].symbol,
+ logo_image: LOGO_IMAGE || 'https://dash.testnet.bitholla.com/assets/img/hex-pattern-icon-black-01.svg',
+ valid_languages: VALID_LANGUAGES || 'en,fa,ko,ar,fr',
+ new_user_is_activated: (NEW_USER_IS_ACTIVATED && NEW_USER_IS_ACTIVATED === 'true') || false,
+ captcha: {
+ site_key: CAPTCHA_SITE_KEY
+ },
+ defaults: {
+ language: NEW_USER_DEFAULT_LANGUAGE || 'en',
+ theme: DEFAULT_THEME || 'white'
+ },
+ features: {},
+ meta: {}
+ }),
+ secrets: JSON.stringify({
+ allowed_domains: ALLOWED_DOMAINS ? ALLOWED_DOMAINS.split(',') : [],
+ admin_whitelist: ADMIN_WHITELIST_IP ? ADMIN_WHITELIST_IP.split(',') : [],
+ security: {
+ token_time: '24h',
+ withdrawal_token_expiry: 300000
+ },
+ emails: {
+ timezone: EMAILS_TIMEZONE || '',
+ send_email_to_support: (SEND_EMAIL_TO_SUPPORT && SEND_EMAIL_TO_SUPPORT === 'true') || false,
+ sender: SENDER_EMAIL || '',
+ audit: ADMIN_EMAIL || ''
+ },
+ captcha: {
+ secret_key: CAPTCHA_SECRET_KEY
+ },
+ smtp: {
+ server: SMTP_SERVER || '',
+ port: SMTP_PORT || 587,
+ user: SMTP_USER,
+ password: SMTP_PASSWORD
+ }
+ }),
+ activation_code: ACTIVATION_CODE,
+ initialized: false,
+ api_key: API_KEY,
+ api_secret: API_SECRET,
+ kit_version: KIT_VERSION
+ }];
+ queryInterface.bulkInsert(TABLE, status, {});
+ });
+ },
+ down: (queryInterface) => {
+ return queryInterface.bulkDelete(TABLE);
+ }
+};
\ No newline at end of file
diff --git a/server/db/seeders/20201014074533-add-tiers.js b/server/db/seeders/20201014074533-add-tiers.js
new file mode 100644
index 0000000000..90c69fa0bc
--- /dev/null
+++ b/server/db/seeders/20201014074533-add-tiers.js
@@ -0,0 +1,83 @@
+'use strict';
+
+const rp = require('request-promise');
+
+const {
+ HOLLAEX_NETWORK_ENDPOINT,
+ HOLLAEX_NETWORK_BASE_URL,
+ HOLLAEX_NETWORK_PATH_ACTIVATE
+} = require('../../constants');
+
+const checkActivation = (activation_code) => {
+ const body = {
+ activation_code
+ };
+
+ const options = {
+ method: 'POST',
+ body,
+ uri: `${HOLLAEX_NETWORK_ENDPOINT}${HOLLAEX_NETWORK_BASE_URL}${HOLLAEX_NETWORK_PATH_ACTIVATE}`,
+ json: true
+ };
+ return rp(options);
+};
+
+const TABLE = 'Tiers';
+
+module.exports = {
+ up: (queryInterface) => {
+ return checkActivation(process.env.ACTIVATION_CODE)
+ .then((exchange) => {
+ let makerFee = 0.3;
+ let takerFee = 0.3;
+
+ if (exchange.collateral_level === 'zero') {
+ makerFee = 0.3;
+ takerFee = 0.3;
+ } else if (exchange.collateral_level === 'lite') {
+ makerFee = 0.1;
+ takerFee = 0.2;
+ } else if (exchange.collateral_level === 'member') {
+ makerFee = 0;
+ takerFee = 0.05;
+ }
+
+ const tiers = [
+ {
+ id: 1,
+ name: 'basic',
+ description: 'basic tier',
+ icon: '',
+ deposit_limit: 0,
+ withdrawal_limit: 0,
+ fees: JSON.stringify({
+ maker: {
+ default: makerFee
+ },
+ taker: {
+ default: takerFee
+ }
+ })
+ },
+ {
+ id: 2,
+ name: 'vip',
+ description: 'vip tier',
+ deposit_limit: 0,
+ icon: '',
+ withdrawal_limit: 0,
+ fees: JSON.stringify({
+ maker: {
+ default: makerFee
+ },
+ taker: {
+ default: takerFee
+ }
+ })
+ }
+ ];
+ queryInterface.bulkInsert(TABLE, tiers, {});
+ });
+ },
+ down: (queryInterface) => queryInterface.bulkDelete(TABLE)
+};
diff --git a/server/db/seedsHelper.js b/server/db/seedsHelper.js
new file mode 100644
index 0000000000..efb6c50c54
--- /dev/null
+++ b/server/db/seedsHelper.js
@@ -0,0 +1,44 @@
+'use strict';
+
+const {
+ generateHashSync,
+ generateAffiliationCode
+} = require('../utils/security');
+
+const generateUserObject = ({
+ email,
+ password,
+ is_admin,
+ is_supervisor,
+ is_support,
+ is_kyc,
+ ...rest
+}) => {
+ const now = new Date();
+
+ return {
+ email,
+ password: generateHashSync(password),
+ full_name: '',
+ gender: false,
+ nationality: '',
+ phone_number: '',
+ activated: true,
+ is_admin: is_admin || false,
+ is_supervisor: is_supervisor || false,
+ is_support: is_support || false,
+ is_kyc: is_kyc || false,
+ username: email.toLowerCase().substr(0, email.indexOf('@')),
+ affiliation_code: generateAffiliationCode(),
+ created_at: now,
+ updated_at: now,
+ ...rest
+ };
+};
+
+const generateOptionsObject = ({ email }) => ({ email });
+
+module.exports = {
+ generateUserObject,
+ generateOptionsObject
+};
\ No newline at end of file
diff --git a/server/db/triggers/create_verification-code_after_user.js b/server/db/triggers/create_verification-code_after_user.js
new file mode 100644
index 0000000000..9486fa2ec6
--- /dev/null
+++ b/server/db/triggers/create_verification-code_after_user.js
@@ -0,0 +1,23 @@
+const sql = `
+CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
+
+CREATE OR REPLACE FUNCTION create_verificationcode_after_user()
+RETURNS TRIGGER AS $create_verificationcode_after_user$
+BEGIN
+ INSERT INTO "VerificationCodes"
+ ("id","user_id","code","created_at","updated_at")
+ VALUES
+ (DEFAULT,new.id,uuid_generate_v4(),current_timestamp,current_timestamp);
+ RETURN NEW;
+END;
+$create_verificationcode_after_user$ LANGUAGE plpgsql;
+
+DROP TRIGGER IF EXISTS create_verificationcode_after_user
+ON "Users";
+
+CREATE TRIGGER create_verificationcode_after_user
+AFTER INSERT ON "Users"
+FOR EACH ROW EXECUTE PROCEDURE create_verificationcode_after_user();
+`;
+
+module.exports = sql;
\ No newline at end of file
diff --git a/server/db/triggers/update_userlevel_after_verify.js b/server/db/triggers/update_userlevel_after_verify.js
new file mode 100644
index 0000000000..374113de60
--- /dev/null
+++ b/server/db/triggers/update_userlevel_after_verify.js
@@ -0,0 +1,22 @@
+const sql = `
+CREATE OR REPLACE FUNCTION update_userlevel_after_verify()
+RETURNS TRIGGER AS $update_userlevel_after_verify$
+BEGIN
+ IF new.verified IS TRUE THEN
+ UPDATE "Users"
+ SET verification_level = 1, updated_at = current_timestamp
+ WHERE id = new.user_id;
+ END IF;
+ RETURN NEW;
+END;
+$update_userlevel_after_verify$ LANGUAGE plpgsql;
+
+DROP TRIGGER IF EXISTS update_userlevel_after_verify
+ON "VerificationCodes";
+
+CREATE TRIGGER update_userlevel_after_verify
+AFTER UPDATE ON "VerificationCodes"
+FOR EACH ROW EXECUTE PROCEDURE update_userlevel_after_verify();
+`;
+
+module.exports = sql;
diff --git a/server/docker-compose.yaml b/server/docker-compose.yaml
new file mode 100644
index 0000000000..7837fecedf
--- /dev/null
+++ b/server/docker-compose.yaml
@@ -0,0 +1,78 @@
+version: '3'
+services:
+ hollaex-kit-redis:
+ image: redis:5.0.5-alpine
+ depends_on:
+ - hollaex-kit-db
+ networks:
+ - hollaex-kit-network
+ ports:
+ - 6379:6379
+ environment:
+ - REDIS_PASSWORD=bitholla
+ command : ["sh", "-c", "redis-server --requirepass $${REDIS_PASSWORD}"]
+ hollaex-kit-db:
+ image: postgres:10.9
+ ports:
+ - 5432:5432
+ environment:
+ - POSTGRES_DB=hollaex
+ - POSTGRES_USER=admin
+ - POSTGRES_PASSWORD=root
+ networks:
+ - hollaex-kit-network
+ hollaex-kit-server:
+ image: hollaex-kit-server
+ ports:
+ - 10010:10010
+ - 10011:10011
+ build:
+ context: .
+ dockerfile: ./tools/Dockerfile.pm2
+ env_file:
+ - ./tools/hollaex-kit.env.local
+ entrypoint:
+ - pm2-runtime
+ - start
+ - ecosystem.config.js
+ - --env
+ - development
+ volumes:
+ - ./api:/app/api
+ - ./config:/app/config
+ - ./db:/app/db
+ - ./plugins.js:/app/plugins.js
+ - ./mail:/app/mail
+ - ./ws:/app/ws
+ - ./app.js:/app/app.js
+ - ./ecosystem.config.js:/app/ecosystem.config.js
+ - ./constants.js:/app/constants.js
+ - ./messages.js:/app/messages.js
+ - ./logs:/app/logs
+ - ./test:/app/test
+ - ./tools:/app/tools
+ - ./utils:/app/utils
+ - ./init.js:/app/init.js
+ depends_on:
+ - hollaex-kit-db
+ - hollaex-kit-redis
+ networks:
+ - hollaex-kit-network
+ hollaex-kit-nginx:
+ image: nginx:1.15.8-alpine
+ volumes:
+ - ./tools/nginx:/etc/nginx
+ - ./tools/nginx/conf.d:/etc/nginx/conf.d
+ - ./tools/nginx/logs:/var/log
+ - ./tools/nginx/static:/usr/share/nginx/html
+ ports:
+ - 80:80
+ environment:
+ - NGINX_PORT=80
+ depends_on:
+ - hollaex-kit-server
+ networks:
+ - hollaex-kit-network
+
+networks:
+ hollaex-kit-network:
\ No newline at end of file
diff --git a/server/ecosystem.config.js b/server/ecosystem.config.js
new file mode 100644
index 0000000000..22983e8853
--- /dev/null
+++ b/server/ecosystem.config.js
@@ -0,0 +1,82 @@
+const watch = process.env.NODE_ENV === 'production' ? false : true;
+const ignore_watch = ['logs', 'node_modules', 'tools', 'db/functions', 'db/triggers', 'storage'];
+const max_memory_restart = '4000M';
+const node_args = ['--max_old_space_size=4096'];
+const mode = process.env.DEPLOYMENT_MODE || 'all';
+const { initializeMode } = require('./utils');
+
+const api = {
+ name : 'api',
+ script : 'app.js',
+ error_file: '/dev/null',
+ out_file: '/dev/null',
+ watch,
+ ignore_watch,
+ exec_mode : 'cluster',
+ instance_var: 'INSTANCE_ID',
+ instances : '1',
+ max_memory_restart,
+ node_args,
+ env: {
+ COMMON_VARIABLE: 'true',
+ PORT: process.env.PORT || 10010,
+ }
+};
+
+const ws = {
+ // ws application
+ name : 'ws',
+ script : 'ws/index.js',
+ error_file: '/dev/null',
+ out_file: '/dev/null',
+ watch,
+ ignore_watch: ignore_watch.concat(['tools', 'queue']),
+ max_memory_restart,
+ node_args,
+ env: {
+ COMMON_VARIABLE: 'true',
+ PORT: process.env.WEBSOCKET_PORT || 10080,
+ }
+};
+
+const plugins = {
+ // plugins application
+ name : 'plugins',
+ script : 'plugins.js',
+ error_file: '/dev/null',
+ out_file: '/dev/null',
+ watch,
+ ignore_watch,
+ exec_mode : 'cluster',
+ instance_var: 'INSTANCE_ID',
+ instances : '1',
+ max_memory_restart,
+ node_args,
+ env: {
+ COMMON_VARIABLE: 'true',
+ PORT: process.env.PLUGIN_PORT || 10011,
+ }
+};
+
+var apps = [];
+const modes = initializeMode(mode);
+for (let m of modes) {
+ if (m === 'all') {
+ apps = [api, ws, plugins];
+ break;
+ } else if (m === 'api') {
+ apps.push(api);
+ } else if (m === 'ws') {
+ apps.push(ws);
+ } else if (m === 'plugins') {
+ apps.push(plugins);
+ }
+}
+
+module.exports = {
+ /**
+ * Application configuration section
+ * http://pm2.keymetrics.io/docs/usage/application-declaration/
+ */
+ apps
+};
diff --git a/server/entrypoint.sh b/server/entrypoint.sh
new file mode 100755
index 0000000000..c042848553
--- /dev/null
+++ b/server/entrypoint.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+echo $1
+if [ "$1" == 'api' ]; then
+ pm2-runtime start ecosystem.config.js --env production --only server
+elif [ "$1" == 'stream' ]; then
+ pm2-runtime start ecosystem.config.js --env production --only stream
+elif [ "$1" == 'plugins' ]; then
+ pm2-runtime start ecosystem.config.js --env production --only plugins
+else
+ pm2-runtime start ecosystem.config.js --env production
+fi
diff --git a/server/init.js b/server/init.js
new file mode 100644
index 0000000000..d8d63acd9a
--- /dev/null
+++ b/server/init.js
@@ -0,0 +1,210 @@
+'use strict';
+
+const { Network } = require('hollaex-node-lib');
+const { all } = require('bluebird');
+const rp = require('request-promise');
+const { loggerInit } = require('./config/logger');
+const { User, Status, Tier } = require('./db/models');
+
+const { subscriber, publisher } = require('./db/pubsub');
+const {
+ INIT_CHANNEL,
+ CONFIGURATION_CHANNEL,
+ WS_HUB_CHANNEL,
+ HOLLAEX_NETWORK_ENDPOINT,
+ HOLLAEX_NETWORK_BASE_URL,
+ HOLLAEX_NETWORK_PATH_ACTIVATE
+} = require('./constants');
+const { each } = require('lodash');
+
+let nodeLib;
+
+const getNodeLib = () => nodeLib;
+
+subscriber.on('message', (channel, message) => {
+ if (channel === INIT_CHANNEL) {
+ const { type } = JSON.parse(message);
+ switch(type) {
+ case 'refreshInit':
+ checkStatus();
+ publisher.publish(
+ WS_HUB_CHANNEL,
+ JSON.stringify({ action: 'restart' })
+ );
+ break;
+ default:
+ break;
+ }
+ }
+ return;
+});
+
+subscriber.subscribe(INIT_CHANNEL);
+
+const checkStatus = () => {
+ loggerInit.verbose('init/checkStatus', 'checking exchange status');
+
+ let configuration = {
+ coins: {},
+ pairs: {},
+ tiers: {},
+ kit: {
+ info: {},
+ color: {},
+ interface: {},
+ icons: {},
+ links: {},
+ strings: {},
+ captcha: {},
+ defaults: {},
+ features: {},
+ meta: {}
+ }
+ };
+
+ let secrets = {
+ security: {},
+ accounts: {},
+ captcha: {},
+ emails: {},
+ smtp: {}
+ };
+
+ let frozenUsers = {};
+
+ return Status.findOne({})
+ .then((status) => {
+ loggerInit.info('init/checkStatus');
+ if (!status) {
+ stop();
+ throw new Error('Exchange is not initialized yet');
+ } else if (status.blocked) {
+ stop();
+ throw new Error('Exchange is locked');
+ } else if (!status.activation_code) {
+ stop();
+ throw new Error('Exchange activation code is not set');
+ } else if (!status.api_key || !status.api_secret) {
+ stop();
+ throw new Error('Exchange keys are not set.');
+ } else if (!status.activated) {
+ stop();
+ throw new Error('Exchange is expired');
+ } else {
+ secrets = status.secrets;
+ configuration.kit = status.kit;
+ return all([
+ checkActivation( // added kit
+ status.name,
+ status.url,
+ status.activation_code,
+ status.kit_version,
+ status.constants,
+ status.kit
+ ),
+ Tier.findAll({ raw: true }),
+ status.dataValues
+ ]);
+ }
+ })
+ .then(([exchange, tiers, status]) => {
+ loggerInit.info('init/checkStatus/activation', exchange.name, exchange.active);
+ each(tiers, (tier) => {
+ configuration.tiers[tier.id] = tier;
+ });
+ each(exchange.coins, (coin) => {
+ configuration.coins[coin.symbol] = coin;
+ });
+ each(exchange.pairs, (pair) => {
+ configuration.pairs[pair.name] = pair;
+ });
+ configuration.kit.info = {
+ name: exchange.name,
+ active: exchange.active,
+ url: exchange.url,
+ is_trial: exchange.is_trial,
+ created_at: exchange.created_at,
+ expiry: exchange.expiry,
+ collateral_level: exchange.collateral_level,
+ status: true,
+ initialized: status.initialized
+ };
+ const networkNodeLib = new Network({
+ apiUrl: HOLLAEX_NETWORK_ENDPOINT,
+ baseUrl: HOLLAEX_NETWORK_BASE_URL,
+ apiKey: status.api_key,
+ apiSecret: status.api_secret,
+ exchange_id: exchange.id,
+ activation_code: exchange.activation_code
+ });
+
+ nodeLib = networkNodeLib;
+
+ return all([
+ User.findAll({
+ where: {
+ activated: false
+ }
+ }),
+ networkNodeLib
+ ]);
+ })
+ .then(([ users, networkNodeLib ]) => {
+ loggerInit.info('init/checkStatus/activation', users.length, 'users deactivated');
+ each(users, (user) => {
+ frozenUsers[user.dataValues.id] = true;
+ });
+ publisher.publish(
+ CONFIGURATION_CHANNEL,
+ JSON.stringify({
+ type: 'initial',
+ data: { configuration, secrets, frozenUsers }
+ })
+ );
+ loggerInit.info('init/checkStatus/activation complete');
+ return networkNodeLib;
+ })
+ .catch((err) => {
+ let message = 'Initialization failed';
+ if (err.message) {
+ message = err.message;
+ }
+ if (err.statusCode && err.statusCode === 402) {
+ message = err.error.message;
+ }
+ loggerInit.error('init/checkStatus Error ', message);
+ setTimeout(() => { process.exit(1); }, 60 * 1000 * 5);
+ });
+};
+
+const stop = () => {
+ publisher.publish(CONFIGURATION_CHANNEL, JSON.stringify({ type: 'stop' }));
+};
+
+const checkActivation = (name, url, activation_code, version, constants = {}, kit = {}) => {
+ const body = {
+ name,
+ url,
+ activation_code,
+ constants,
+ kit
+ };
+ if (version) {
+ // only sends version if its set
+ body.version = version;
+ }
+
+ const options = {
+ method: 'POST',
+ body,
+ uri: `${HOLLAEX_NETWORK_ENDPOINT}${HOLLAEX_NETWORK_BASE_URL}${HOLLAEX_NETWORK_PATH_ACTIVATE}`,
+ json: true
+ };
+ return rp(options);
+};
+
+module.exports = {
+ checkStatus,
+ checkActivation,
+ getNodeLib
+};
\ No newline at end of file
diff --git a/mail/constants.js b/server/mail/constants.js
similarity index 100%
rename from mail/constants.js
rename to server/mail/constants.js
diff --git a/mail/index.js b/server/mail/index.js
similarity index 69%
rename from mail/index.js
rename to server/mail/index.js
index ae1e171251..f0749d27ba 100644
--- a/mail/index.js
+++ b/server/mail/index.js
@@ -6,18 +6,20 @@ const { loggerEmail } = require('../config/logger');
const { getValidLanguage } = require('./utils');
const { MAILTYPE } = require('./strings');
const generateMessageContent = require('./templates');
-const { sendSMSDeposit } = require('../plugins/sms/helpers');
-const getStatusText = (status) => {
- return status ? 'COMPLETED' : 'PENDING';
-};
-const { GET_CONFIGURATION, DOMAIN } = require('../constants');
-const AUDIT_EMAIL = () => GET_CONFIGURATION().constants.accounts.admin;
-const SENDER_EMAIL = () => GET_CONFIGURATION().constants.emails.sender;
-const SEND_EMAIL_COPY = () => GET_CONFIGURATION().constants.emails.send_email_to_support;
-const API_NAME = () => GET_CONFIGURATION().constants.api_name;
+const { GET_KIT_CONFIG, GET_KIT_SECRETS, DOMAIN } = require('../constants');
+const AUDIT_EMAIL = () => GET_KIT_SECRETS().emails.audit;
+const SENDER_EMAIL = () => GET_KIT_SECRETS().emails.sender;
+const SEND_EMAIL_COPY = () => GET_KIT_SECRETS().emails.send_email_to_support;
+const API_NAME = () => GET_KIT_CONFIG().api_name;
const SUPPORT_SOURCE = () => `'${API_NAME()} Support <${SENDER_EMAIL()}>'`;
const BCC_ADDRESSES = () => SEND_EMAIL_COPY() ? [AUDIT_EMAIL()] : [];
-const DEFAULT_LANGUAGE = () => GET_CONFIGURATION().constants.defaults.language;
+const DEFAULT_LANGUAGE = () => {
+ try {
+ return GET_KIT_CONFIG().defaults.language;
+ } catch (err) {
+ return 'en';
+ }
+};
const sendEmail = (
type,
@@ -47,7 +49,10 @@ const sendEmail = (
case MAILTYPE.ACCOUNT_VERIFY:
case MAILTYPE.INVALID_ADDRESS:
case MAILTYPE.USER_DEACTIVATED:
- case MAILTYPE.WITHDRAWAL_REQUEST: {
+ case MAILTYPE.INVITED_OPERATOR:
+ case MAILTYPE.WITHDRAWAL_REQUEST:
+ case MAILTYPE.DEPOSIT:
+ case MAILTYPE.WITHDRAWAL: {
to.BccAddresses = BCC_ADDRESSES();
break;
}
@@ -56,21 +61,6 @@ const sendEmail = (
to.BccAddresses = BCC_ADDRESSES();
break;
}
- case MAILTYPE.DEPOSIT:
- case MAILTYPE.WITHDRAWAL: {
- data.status = getStatusText(data.status);
- if (data.phoneNumber && data.status === 'COMPLETED')
- sendSMSDeposit(
- type,
- data.currency,
- data.phoneNumber,
- data.amount,
- formatDate(),
- language
- );
- to.BccAddresses = BCC_ADDRESSES();
- break;
- }
case MAILTYPE.ALERT:
case MAILTYPE.SUSPICIOUS_DEPOSIT:
case MAILTYPE.USER_VERIFICATION:
diff --git a/mail/package.json b/server/mail/package.json
similarity index 100%
rename from mail/package.json
rename to server/mail/package.json
diff --git a/mail/strings/en.js b/server/mail/strings/en.js
similarity index 92%
rename from mail/strings/en.js
rename to server/mail/strings/en.js
index b8aa1f06b1..8ac6c86d39 100644
--- a/mail/strings/en.js
+++ b/server/mail/strings/en.js
@@ -1,7 +1,7 @@
'use strict';
-const { GET_CONFIGURATION } = require('../../constants');
-const API_NAME = () => GET_CONFIGURATION().constants.api_name;
+const { GET_KIT_CONFIG } = require('../../constants');
+const API_NAME = () => GET_KIT_CONFIG().api_name;
const COMMON = {
GREETING: (name) => `Dear ${name}`,
@@ -273,6 +273,25 @@ const SMS = {
`Your ${currency.toUpperCase()} withdrawal for amount ${amount} is confirmed`
};
+const INVITEDOPERATOR = {
+ TITLE: 'Operator Invite',
+ GREETING: (name) => COMMON.GREETING(name),
+ BODY: {
+ CREATED: {
+ 1: (role, invitingEmail) => `You've been invited as an operator to ${API_NAME()} with the role of ${role} by user ${invitingEmail}.`,
+ 2: 'Your temporary password is provided below. Make sure to change your password after logging in for security purposes.',
+ 3: (email) => `Email: ${email}`,
+ 4: (password) => `Password: ${password}`,
+ 5: 'Login'
+ },
+ EXISTING: {
+ 1: (role, invitingEmail) => `Your ${API_NAME()} account has been upgraded to the role of ${role} by user ${invitingEmail}.`,
+ 2: 'Login'
+ }
+ },
+ CLOSING: COMMON.CLOSING
+};
+
module.exports = {
FOOTER,
COMMON,
@@ -293,5 +312,6 @@ module.exports = {
CONTACTFORM,
USERDEACTIVATED,
ALERT,
- SMS
+ SMS,
+ INVITEDOPERATOR
};
diff --git a/mail/strings/es.js b/server/mail/strings/es.js
similarity index 100%
rename from mail/strings/es.js
rename to server/mail/strings/es.js
diff --git a/mail/strings/fa.js b/server/mail/strings/fa.js
similarity index 93%
rename from mail/strings/fa.js
rename to server/mail/strings/fa.js
index 5a9468fcc5..dc896d3a2c 100644
--- a/mail/strings/fa.js
+++ b/server/mail/strings/fa.js
@@ -1,7 +1,7 @@
'use strict';
-const { GET_CONFIGURATION } = require('../../constants');
-const API_NAME = () => GET_CONFIGURATION().constants.api_name;
+const { GET_KIT_CONFIG } = require('../../constants');
+const API_NAME = () => GET_KIT_CONFIG().api_name;
const COMMON = {
GREETING: (name) => `کاربر عزیز ${name}`,
@@ -249,6 +249,25 @@ const SMS = {
`برداشت ${currency.toUpperCase()} شما با مبلغ ${amount} مورد تایید قرار گرفت.`
};
+const INVITEDOPERATOR = {
+ TITLE: 'Operator Invite',
+ GREETING: (name) => COMMON.GREETING(name),
+ BODY: {
+ CREATED: {
+ 1: (role, invitingEmail) => `You've been invited as an operator to ${API_NAME()} with the role of ${role} by user ${invitingEmail}.`,
+ 2: 'Your temporary password is provided below. Make sure to change your password after logging in for security purposes.',
+ 3: (email) => `Email: ${email}`,
+ 4: (password) => `Password: ${password}`,
+ 5: 'Login'
+ },
+ EXISTING: {
+ 1: (role, invitingEmail) => `Your ${API_NAME()} account has been upgraded to the role of ${role} by user ${invitingEmail}.`,
+ 2: 'Login'
+ }
+ },
+ CLOSING: COMMON.CLOSING
+};
+
module.exports = {
FOOTER,
COMMON,
@@ -266,5 +285,6 @@ module.exports = {
USERVERIFICATION,
SUSPICIOUSDEPOSIT,
CONTACTFORM,
- SMS
+ SMS,
+ INVITEDOPERATOR
};
diff --git a/mail/strings/fr.js b/server/mail/strings/fr.js
similarity index 100%
rename from mail/strings/fr.js
rename to server/mail/strings/fr.js
diff --git a/mail/strings/id.js b/server/mail/strings/id.js
similarity index 100%
rename from mail/strings/id.js
rename to server/mail/strings/id.js
diff --git a/mail/strings/index.js b/server/mail/strings/index.js
similarity index 95%
rename from mail/strings/index.js
rename to server/mail/strings/index.js
index 33421ff0c4..25985d47b6 100644
--- a/mail/strings/index.js
+++ b/server/mail/strings/index.js
@@ -19,6 +19,7 @@ const MAILTYPE = {
USER_VERIFICATION: 'userVerification',
USER_DEACTIVATED: 'userDeactivated',
INVALID_ADDRESS: 'invalidAddress',
+ INVITED_OPERATOR: 'invitedOperator',
ALERT: 'alert'
};
@@ -32,7 +33,7 @@ const languageFile = (lang) => {
}
}
return langFile;
-}
+};
module.exports = {
FORMATDATE,
diff --git a/mail/strings/ja.js b/server/mail/strings/ja.js
similarity index 100%
rename from mail/strings/ja.js
rename to server/mail/strings/ja.js
diff --git a/mail/strings/ko.js b/server/mail/strings/ko.js
similarity index 92%
rename from mail/strings/ko.js
rename to server/mail/strings/ko.js
index 3e89711b12..6df67e0e0a 100644
--- a/mail/strings/ko.js
+++ b/server/mail/strings/ko.js
@@ -1,7 +1,7 @@
'use strict';
-const { GET_CONFIGURATION } = require('../../constants');
-const API_NAME = () => GET_CONFIGURATION().constants.api_name;
+const { GET_KIT_CONFIG } = require('../../constants');
+const API_NAME = () => GET_KIT_CONFIG().api_name;
const COMMON = {
GREETING: (name) => `${name}님`,
@@ -268,6 +268,25 @@ const SMS = {
`Your ${currency.toUpperCase()} withdrawal for amount ${amount} is confirmed`
};
+const INVITEDOPERATOR = {
+ TITLE: 'Operator Invite',
+ GREETING: (name) => COMMON.GREETING(name),
+ BODY: {
+ CREATED: {
+ 1: (role, invitingEmail) => `You've been invited as an operator to ${API_NAME()} with the role of ${role} by user ${invitingEmail}.`,
+ 2: 'Your temporary password is provided below. Make sure to change your password after logging in for security purposes.',
+ 3: (email) => `Email: ${email}`,
+ 4: (password) => `Password: ${password}`,
+ 5: 'Login'
+ },
+ EXISTING: {
+ 1: (role, invitingEmail) => `Your ${API_NAME()} account has been upgraded to the role of ${role} by user ${invitingEmail}.`,
+ 2: 'Login'
+ }
+ },
+ CLOSING: COMMON.CLOSING
+};
+
module.exports = {
FOOTER,
COMMON,
@@ -288,5 +307,6 @@ module.exports = {
CONTACTFORM,
USERDEACTIVATED,
ALERT,
- SMS
+ SMS,
+ INVITEDOPERATOR
};
diff --git a/mail/strings/vi.js b/server/mail/strings/vi.js
similarity index 100%
rename from mail/strings/vi.js
rename to server/mail/strings/vi.js
diff --git a/mail/strings/zh.js b/server/mail/strings/zh.js
similarity index 100%
rename from mail/strings/zh.js
rename to server/mail/strings/zh.js
diff --git a/mail/templates/accountUpgrade.js b/server/mail/templates/accountUpgrade.js
similarity index 100%
rename from mail/templates/accountUpgrade.js
rename to server/mail/templates/accountUpgrade.js
diff --git a/mail/templates/accountVerify.js b/server/mail/templates/accountVerify.js
similarity index 100%
rename from mail/templates/accountVerify.js
rename to server/mail/templates/accountVerify.js
diff --git a/mail/templates/alert.js b/server/mail/templates/alert.js
similarity index 100%
rename from mail/templates/alert.js
rename to server/mail/templates/alert.js
diff --git a/mail/templates/contactForm.js b/server/mail/templates/contactForm.js
similarity index 100%
rename from mail/templates/contactForm.js
rename to server/mail/templates/contactForm.js
diff --git a/mail/templates/deposit.js b/server/mail/templates/deposit.js
similarity index 82%
rename from mail/templates/deposit.js
rename to server/mail/templates/deposit.js
index c0030d2e77..b5d976cb17 100644
--- a/mail/templates/deposit.js
+++ b/server/mail/templates/deposit.js
@@ -1,6 +1,6 @@
'use strict';
-const { CONFIRMATION, EXPLORERS, CURRENCIES } = require('../../constants');
+const { CONFIRMATION, EXPLORERS, GET_COINS } = require('../../constants');
const fetchMessage = (email, data, language, domain) => {
return {
@@ -18,15 +18,13 @@ const html = (email, data, language, domain) => {
`;
- if (CURRENCIES.includes(data.currency)) {
+ if (Object.keys(GET_COINS()).includes(data.currency)) {
let explorers = '';
- if (EXPLORERS[data.currency]) {
- EXPLORERS[data.currency].forEach((explorer) => {
- explorers += `${explorer.name}`;
- });
- }
+ EXPLORERS(data.currency).forEach((explorer) => {
+ explorers += `${explorer.name}`;
+ });
result += `
@@ -68,7 +66,7 @@ const html = (email, data, language, domain) => {
const text = (email, data, language, domain) => {
const { DEPOSIT } = require('../strings').languageFile(language);
let result = `${DEPOSIT.GREETING(email)}`;
- if (CURRENCIES.includes(data.currency)) {
+ if (Object.keys(GET_COINS()).includes(data.currency)) {
result += `
${DEPOSIT.BODY[data.status](
data.amount,
diff --git a/mail/templates/depositCancel.js b/server/mail/templates/depositCancel.js
similarity index 100%
rename from mail/templates/depositCancel.js
rename to server/mail/templates/depositCancel.js
diff --git a/mail/templates/helpers/common.js b/server/mail/templates/helpers/common.js
similarity index 87%
rename from mail/templates/helpers/common.js
rename to server/mail/templates/helpers/common.js
index bd1460bc90..b8f742fe5d 100644
--- a/mail/templates/helpers/common.js
+++ b/server/mail/templates/helpers/common.js
@@ -5,10 +5,10 @@ const {
BITHOLLA_LOGO_BLACK,
EMAIL_ICONS
} = require('../../constants');
-const { DOMAIN, GET_CONFIGURATION } = require('../../../constants');
-const LOGO_PATH = () => GET_CONFIGURATION().constants.logo_path;
-const DEFAULT_LANGUAGE = () => GET_CONFIGURATION().constants.defaults.language;
-const LINKS = () => GET_CONFIGURATION().constants.links;
+const { DOMAIN, GET_KIT_CONFIG } = require('../../../constants');
+const LOGO_IMAGE = () => GET_KIT_CONFIG().logo_image;
+const DEFAULT_LANGUAGE = () => GET_KIT_CONFIG().defaults.language;
+const LINKS = () => GET_KIT_CONFIG().links;
const styles = require('./styles');
@@ -49,7 +49,7 @@ const footerTemplate = (language = DEFAULT_LANGUAGE(), domain = DOMAIN) => {
const RTL = 'direction: rtl;';
-const LOGO_TEMPLATE = ({ domain = DOMAIN, logoPath = LOGO_PATH() }) => `
+const LOGO_TEMPLATE = ({ domain = DOMAIN, logoPath = LOGO_IMAGE() }) => `
diff --git a/mail/templates/helpers/payloadTemplate.js b/server/mail/templates/helpers/payloadTemplate.js
similarity index 100%
rename from mail/templates/helpers/payloadTemplate.js
rename to server/mail/templates/helpers/payloadTemplate.js
diff --git a/mail/templates/helpers/styles.js b/server/mail/templates/helpers/styles.js
similarity index 100%
rename from mail/templates/helpers/styles.js
rename to server/mail/templates/helpers/styles.js
diff --git a/mail/templates/index.js b/server/mail/templates/index.js
similarity index 76%
rename from mail/templates/index.js
rename to server/mail/templates/index.js
index 98fd9d740f..d1c5218cf4 100644
--- a/mail/templates/index.js
+++ b/server/mail/templates/index.js
@@ -1,10 +1,10 @@
'use strict';
-const { DOMAIN, GET_CONFIGURATION } = require('../../constants');
-const DEFAULT_LANGUAGE = () => GET_CONFIGURATION().constants.defaults.language;
-const API_NAME = () => GET_CONFIGURATION().constants.api_name;
+const { DOMAIN, GET_KIT_CONFIG } = require('../../constants');
+const DEFAULT_LANGUAGE = () => GET_KIT_CONFIG().defaults.language;
+const API_NAME = () => GET_KIT_CONFIG().api_name;
const { TemplateEmail } = require('./helpers/common');
-const { MAILTYPE } = require('../strings');
+const { MAILTYPE, languageFile } = require('../strings');
const generateMessageContent = (
type,
@@ -13,7 +13,7 @@ const generateMessageContent = (
language = DEFAULT_LANGUAGE(),
domain = DOMAIN
) => {
- const STRINGS = require('../strings').languageFile(language);
+ const STRINGS = languageFile(language);
let title;
if (
type === MAILTYPE.WITHDRAWAL ||
diff --git a/mail/templates/invalidAddress.js b/server/mail/templates/invalidAddress.js
similarity index 100%
rename from mail/templates/invalidAddress.js
rename to server/mail/templates/invalidAddress.js
diff --git a/server/mail/templates/invitedOperator.js b/server/mail/templates/invitedOperator.js
new file mode 100644
index 0000000000..d736083a67
--- /dev/null
+++ b/server/mail/templates/invitedOperator.js
@@ -0,0 +1,83 @@
+'use strict';
+
+const { Button } = require('./helpers/common');
+
+const fetchMessage = (email, data, language, domain) => {
+ return {
+ html: html(email, data, language, domain),
+ text: text(email, data, language, domain)
+ };
+};
+
+const html = (email, data, language, domain) => {
+ const link = `${domain}/login`;
+ const { INVITEDOPERATOR } = require('../strings').languageFile(language);
+ const { invitingEmail, created, password, role } = data;
+ let body;
+ if (created) {
+ body = `
+
+ ${INVITEDOPERATOR.BODY.CREATED[1](role, invitingEmail)}
+
+
+ ${INVITEDOPERATOR.BODY.CREATED[2]}
+
+
+
${INVITEDOPERATOR.BODY.CREATED[3](email)}
+
${INVITEDOPERATOR.BODY.CREATED[4](password)}
+
+
+ ${Button(link, INVITEDOPERATOR.BODY.CREATED[5])}
+ `;
+ } else {
+ body = `
+
+ ${INVITEDOPERATOR.BODY.EXISTING[1](role, invitingEmail)}
+
+ ${Button(link, INVITEDOPERATOR.BODY.EXISTING[2])}
+ `;
+ }
+
+ return `
+
+
+ ${INVITEDOPERATOR.GREETING(email)}
+
+ ${body}
+
+ ${INVITEDOPERATOR.CLOSING[1]}
+ ${INVITEDOPERATOR.CLOSING[2]()}
+
+
+ `;
+};
+
+const text = (email, data, language, domain) => {
+ const link = `${domain}/login`;
+ const { INVITEDOPERATOR } = require('../strings').languageFile(language);
+ const { invitingEmail, created, password, role } = data;
+ let body;
+
+ if (created) {
+ body = `
+ ${INVITEDOPERATOR.BODY.CREATED[1](role, invitingEmail)}
+ ${INVITEDOPERATOR.BODY.CREATED[2]}
+ ${INVITEDOPERATOR.BODY.CREATED[3](email)}
+ ${INVITEDOPERATOR.BODY.CREATED[4](password)}
+ ${INVITEDOPERATOR.BODY.CREATED[5]}(${link})
+ `;
+ } else {
+ body = `
+ ${INVITEDOPERATOR.BODY.EXISTING[1](role, invitingEmail)}
+ ${INVITEDOPERATOR.BODY.EXISTING[2]}(${link})
+ `;
+ }
+
+ return `
+ ${INVITEDOPERATOR.GREETING(email)}
+ ${body}
+ ${INVITEDOPERATOR.CLOSING[1]} ${INVITEDOPERATOR.CLOSING[2]()}
+ `;
+};
+
+module.exports = fetchMessage;
diff --git a/mail/templates/login.js b/server/mail/templates/login.js
similarity index 100%
rename from mail/templates/login.js
rename to server/mail/templates/login.js
diff --git a/mail/templates/resetPassword.js b/server/mail/templates/resetPassword.js
similarity index 100%
rename from mail/templates/resetPassword.js
rename to server/mail/templates/resetPassword.js
diff --git a/mail/templates/signup.js b/server/mail/templates/signup.js
similarity index 100%
rename from mail/templates/signup.js
rename to server/mail/templates/signup.js
diff --git a/mail/templates/suspiciousDeposit.js b/server/mail/templates/suspiciousDeposit.js
similarity index 100%
rename from mail/templates/suspiciousDeposit.js
rename to server/mail/templates/suspiciousDeposit.js
diff --git a/mail/templates/userDeactivated.js b/server/mail/templates/userDeactivated.js
similarity index 100%
rename from mail/templates/userDeactivated.js
rename to server/mail/templates/userDeactivated.js
diff --git a/mail/templates/userVerification.js b/server/mail/templates/userVerification.js
similarity index 100%
rename from mail/templates/userVerification.js
rename to server/mail/templates/userVerification.js
diff --git a/mail/templates/userVerificationReject.js b/server/mail/templates/userVerificationReject.js
similarity index 100%
rename from mail/templates/userVerificationReject.js
rename to server/mail/templates/userVerificationReject.js
diff --git a/mail/templates/welcome.js b/server/mail/templates/welcome.js
similarity index 100%
rename from mail/templates/welcome.js
rename to server/mail/templates/welcome.js
diff --git a/mail/templates/withdrawal.js b/server/mail/templates/withdrawal.js
similarity index 84%
rename from mail/templates/withdrawal.js
rename to server/mail/templates/withdrawal.js
index 6a2107bd76..09faf217d9 100644
--- a/mail/templates/withdrawal.js
+++ b/server/mail/templates/withdrawal.js
@@ -1,6 +1,6 @@
'use strict';
-const { CURRENCIES, EXPLORERS } = require('../../constants');
+const { GET_COINS, EXPLORERS } = require('../../constants');
const fetchMessage = (email, data, language, domain) => {
return {
@@ -16,15 +16,14 @@ const html = (email, data, language, domain) => {
${WITHDRAWAL.GREETING(email)}
`;
- if (CURRENCIES.includes(data.currency)) {
+ if (Object.keys(GET_COINS()).includes(data.currency)) {
let explorers = '';
- if (EXPLORERS[data.currency]){
- EXPLORERS[data.currency].forEach((explorer) => {
- explorers += `${explorer.name}`;
- });
- }
+ EXPLORERS(data.currency).forEach((explorer) => {
+ explorers += `${explorer.name}`;
+ });
+
result += `
${WITHDRAWAL.BODY[data.status](
@@ -61,7 +60,7 @@ const html = (email, data, language, domain) => {
const text = (email, data, language, domain) => {
const { WITHDRAWAL } = require('../strings').languageFile(language);
let result = `${WITHDRAWAL.GREETING(email)}`;
- if (CURRENCIES.includes(data.currency)) {
+ if (Object.keys(GET_COINS()).includes(data.currency)) {
result += `
${WITHDRAWAL.BODY[data.status](
data.amount,
diff --git a/mail/templates/withdrawalRequest.js b/server/mail/templates/withdrawalRequest.js
similarity index 100%
rename from mail/templates/withdrawalRequest.js
rename to server/mail/templates/withdrawalRequest.js
diff --git a/mail/utils.js b/server/mail/utils.js
similarity index 54%
rename from mail/utils.js
rename to server/mail/utils.js
index c7c82af6d4..7e4e97003f 100644
--- a/mail/utils.js
+++ b/server/mail/utils.js
@@ -1,45 +1,19 @@
'use strict';
-const Promise = require('bluebird');
-// const ses = require('../config/aws')('ses');
-// const { loggerEmail } = require('../config/logger');
-
-// const sendAwsRawEmail = (params) =>
-// new Promise((resolve, reject) => {
-// ses.sendRawEmail(params, (err, data) => {
-// if (err) {
-// loggerEmail.error('mail/index/sendRawEmail', err);
-// reject(err);
-// }
-// resolve(data);
-// });
-// });
-
-// const sendAwsEmail = (params) =>
-// new Promise((resolve, reject) => {
-// ses.sendEmail(params, (err, data) => {
-// if (err) {
-// loggerEmail.error('mail/index/sendEmail', err);
-// reject(err);
-// }
-// resolve(data);
-// });
-// });
-
const momentTz = require('moment-timezone');
const moment = require('moment');
const geoip = require('geoip-lite');
const { FORMATDATE } = require('./strings');
-const { GET_CONFIGURATION, GET_SECRETS } = require('../constants');
+const { GET_KIT_CONFIG, GET_KIT_SECRETS } = require('../constants');
-const DEFAULT_LANGUAGE = () => GET_CONFIGURATION().constants.defaults.language;
-const VALID_LANGUAGES = () => GET_CONFIGURATION().constants.valid_languages;
-const DEFAULT_TIMEZONE = () => GET_CONFIGURATION().constants.emails.timezone;
+const DEFAULT_LANGUAGE = () => GET_KIT_CONFIG().defaults.language;
+const VALID_LANGUAGES = () => GET_KIT_CONFIG().valid_languages;
+const DEFAULT_TIMEZONE = () => GET_KIT_SECRETS().emails.timezone;
-const SMTP_SERVER = () => GET_SECRETS().smtp.server;
-const SMTP_PORT = () => parseInt(GET_SECRETS().smtp.port);
-const SMTP_USER = () => GET_SECRETS().smtp.user;
-const SMTP_PASSWORD = () => GET_SECRETS().smtp.password;
+const SMTP_SERVER = () => GET_KIT_SECRETS().smtp.server;
+const SMTP_PORT = () => parseInt(GET_KIT_SECRETS().smtp.port);
+const SMTP_USER = () => GET_KIT_SECRETS().smtp.user;
+const SMTP_PASSWORD = () => GET_KIT_SECRETS().smtp.password;
const formatTimezone = (date, timezone = DEFAULT_TIMEZONE()) => {
let tzTime;
@@ -95,7 +69,7 @@ const sendSMTPEmail = (params) => {
};
const getValidLanguage = (language = DEFAULT_LANGUAGE()) => {
- if (VALID_LANGUAGES().indexOf(language) > -1) {
+ if (VALID_LANGUAGES() && VALID_LANGUAGES().indexOf(language) > -1) {
return language;
}
return DEFAULT_LANGUAGE();
diff --git a/server/messages.js b/server/messages.js
new file mode 100644
index 0000000000..96dff2deee
--- /dev/null
+++ b/server/messages.js
@@ -0,0 +1,181 @@
+'use strict';
+
+exports.INSUFFICIENT_BALANCE_ORDER =
+ 'Insufficient balance to perform the order';
+exports.MISSING_ORDER = 'Missing order';
+exports.INVALID_USER_ID = 'Invalid user.';
+exports.USER_NOT_FOUND = 'User not found';
+exports.USER_NOT_REGISTERED_ON_NETWORK = 'User is not registered on the network';
+exports.SIGNUP_NOT_AVAILABLE = 'Sign up not available';
+exports.USER_NOT_VERIFIED = 'User is not verified';
+exports.USER_NOT_ACTIVATED = 'User is not activated';
+exports.USER_EXISTS = 'User already exists';
+exports.USER_REGISTERED = 'User successfully registered';
+exports.INVALID_CREDENTIALS = 'Credentials incorrect';
+exports.USER_VERIFIED = 'User is now verified';
+exports.INVALID_PASSWORD =
+ 'Invalid password. It has to contain at least 8 characters, at least one digit and one character.';
+exports.VERIFICATION_EMAIL_MESSAGE = 'A verification code has been sent to your email with the code';
+exports.PROVIDE_VALID_EMAIL = 'Please provide a valid email';
+exports.PROVIDE_VALID_EMAIL_CODE = 'Provide a valid email or a valid verification code';
+exports.INVALID_VERIFICATION_CODE = 'Invalid verification code';
+
+exports.BANK_SUCCESS_MESSAGE = 'Deposit confirmed';
+exports.BANK_ERROR_MESSAGE_DEPOSIT_CONFIRMED = 'Deposit already confirmed';
+exports.BANK_ERROR_MESSAGE = 'Error requesting the deposit information';
+exports.BANK_ERROR_MESSAGE_OUT_LIMITS = 'Amount is out of the limits';
+exports.BANK_ERROR_MESSAGE_INVALID_STATUS = 'Invalid status';
+exports.BANK_ERROR_MESSAGE_VERIFY_DEPOSIT = 'Error confirming the deposit';
+exports.BANK_ERROR_MESSAGE_VERIFY_PAYMENT = 'Error confirming the payment';
+exports.BANK_ERROR_MESSAGE_FAILED_WITHDRAWAL = 'Error confirming the payment';
+exports.BANK_NOT_APPROVED_USER_DATA =
+ 'User can not perform this operation. Required user data has not been verified';
+exports.BANK_WITHDRAW_PENDING = 'Deposit request confirmed';
+exports.BANK_WITHDRAW_COMPLETE = 'Deposit completed';
+exports.INSUFFICIENT_BALANCE = 'Insufficent balance.';
+exports.INVALID_WITHDRAWAL_TOKEN = 'Withdrawal token is incorrect';
+exports.UNAUTHORIZED_WITHDRAWAL_TOKEN = 'Unauthorized withdrawal token';
+exports.EXPIRED_WITHDRAWAL_TOKEN = 'Expired withdrawal token';
+
+exports.TOKEN_NOT_FOUND = 'Token not found';
+exports.TOKEN_REVOKED = 'Token is already revoked';
+exports.TOKEN_REMOVED = 'Token is successfully revoked';
+exports.TOKEN_OTP_ENABLED = 'OTP must be enabled to create a token';
+exports.INVALID_OTP_CODE = 'Invalid OTP Code';
+
+exports.WALLET_ERROR_500 =
+ 'Internal error. Withdrawal failed. Please try again in few minutes.';
+exports.WALLET_ERROR_FEE = 'The fee is set really off. Please change your fee.';
+exports.WALLET_ERROR_ABSURD_FEE = 'Transaction has absurd fees';
+exports.TRANSACTION_SUSPICIOUS = 'Transaction is suspicious';
+
+exports.ERROR_INVALID_SYMBOL = 'Invalid symbols';
+
+exports.QUICK_TRADE_OUT_OF_LIMITS = 'Order size is out of the limits';
+exports.QUICK_TRADE_TOKEN_USED = 'Token has been used';
+exports.QUICK_TRADE_QUOTE_EXPIRED = 'Quote has expired';
+exports.QUICK_TRADE_QUOTE_INVALID = 'Invalid quote';
+exports.QUICK_TRADE_QUOTE_CALCULATING_ERROR = 'Error calculating the quote';
+exports.QUICK_TRADE_ORDER_CAN_NOT_BE_FILLED =
+ 'The order with the current size can not be filled';
+exports.QUICK_TRADE_INSUFFICIENT_BALANCE =
+ 'Insufficient balance to perform the order';
+exports.QUICK_TRADE_DISABLED = 'Broker service is currently disabled';
+
+exports.TRADE_MARKET_ORDER_CAN_NOT_BE_PROCESSED =
+ 'The market order can not be processed';
+
+exports.ERROR_USER_DONT_MATCH_DEPOSIT = 'Deposit user do not match.';
+exports.ERROR_CARD_DONT_MATCH_DEPOSIT =
+ 'Card used for payment does not match the user card';
+exports.ERROR_USER_PENDING_VERIFICATION = 'User data is pending verification';
+exports.ERROR_USER_ALREADY_VERIFIED = 'User already verified';
+exports.ERROR_INVALID_CARD_USER = 'Card Number has no linked name';
+exports.ERROR_INVALID_CARD_NUMBER = 'Invalid Card number';
+exports.ERROR_INVALID_TIMEFRAME = '\'start_date\' cannot occur after \'end_date\'';
+exports.ERROR_INVALID_TIMEFRAME_ENTRY = 'Invalid date format';
+exports.ERROR_NAMES_DONT_MATCH = 'Card Owner and Sheba Name do not match';
+exports.ERROR_MISSING_CARD_OWNER = 'Missing Card Owner';
+exports.ERROR_CHANGE_USER_INFO =
+ 'You are not allowed to change your information';
+exports.ERROR_MAX_BANKS = 'Not allowed to create new banks';
+exports.LEVEL_UPGRADE_NOT_ALLOWED = 'You are now allowed to upgrade your level. Please contact support.';
+exports.LEVEL_UPGRADE_NOT_ELIGIBLE = 'You are not eligible for level upgrade.';
+
+exports.SERVICE_NOT_AVAILABLE = 'Service not available';
+
+exports.INVALID_CAPTCHA = 'Invalid captcha';
+exports.INVALID_USERNAME =
+ 'Invalid username. Username must be 3-15 characters length and only contains lowercase charaters, numbers or underscore';
+exports.USERNAME_CANNOT_BE_CHANGED = 'Username can not be changed';
+exports.USENAME_IS_TAKEN =
+ 'Username is already taken. Select a different username';
+exports.NOT_USER_FOUND_IN_TRANSACTION = 'No user is related to the transaction';
+exports.USER_DONT_MATCH_TRANSACTION =
+ 'Address does not match transaction address';
+exports.SAME_ADDRESS_REUSED = 'More than one user is using this address';
+exports.SERVICE_NOT_SUPPORTED = 'This service is not supported';
+exports.DEFAULT_REJECTION_NOTE = 'Unspecified';
+
+exports.MULTIPLE_API_KEY = 'Multiple API Key methods are provided';
+exports.API_KEY_NULL = 'Access Denied: API Key is not provided';
+exports.API_REQUEST_EXPIRED = 'Access Denied: API request is expired';
+exports.API_SIGNATURE_NULL = 'Access Denied: API Signature is not provided';
+exports.API_KEY_INVALID = 'Access Denied: Invalid API Key';
+exports.API_KEY_OUT_OF_SCOPE = 'Unauthorized Access. You are not allowed to access this service with this key';
+exports.API_KEY_EXPIRED = 'Access Denied: API Key is expired';
+exports.API_KEY_INACTIVE = 'Access Denied: API Key is frozen';
+exports.API_SIGNATURE_INVALID = 'Access Denied: Invalid API Signature';
+
+// PLUGINS
+exports.PLUGIN_NOT_ENABLED = (plugin) => `Plugin ${plugin} not enabled`;
+exports.MAX_BANKS_EXCEEDED = 'User can have a maximum of three banks';
+exports.BANK_NOT_FOUND = 'Bank account not found';
+exports.BANK_ALREADY_VERIFIED = 'Bank account is already verified';
+
+exports.SMS_INVALID_PHONE = 'Invalid mobile phone number';
+exports.ID_EMAIL_REQUIRED = 'Missing parameters. ID and email required';
+exports.PENDING_APPROVAL_DENY = 'You are not allowed to upload a document while its pending or approved';
+exports.IMAGE_NOT_FOUND = 'ID image not found';
+
+exports.SMS_ERROR = 'Error sending SMS';
+exports.SMS_PHONE_DONT_MATCH = 'The phone number provided is incorrect';
+exports.SMS_CODE_INVALID = 'The code provided is invalid';
+exports.SMS_CODE_EXPIRED = 'The code provided has expired or has been used';
+exports.INVALID_PHONE_NUMBER = 'Invalid phone number';
+exports.SMS_SUCCESS = 'SMS has been sent';
+exports.PHONE_VERIFIED = 'Phone number has been verified';
+
+exports.WS_WELCOME = 'Welcome!';
+exports.WS_EMPTY_MESSAGE = 'message can not be empty';
+exports.WS_WRONG_CHANNEL_FROMAT = 'channel format is incorrect. The format is ::';
+exports.WS_EXCHANGE_NOT_SUPPORTED = 'exchange is not supported';
+exports.WS_EVENT_NOT_SUPPORTED = 'event is not supported';
+exports.WS_SYMBOL_NOT_SUPPORTED = 'symbol is not supported';
+exports.WS_WRONG_INPUT = 'Error: wrong input';
+exports.WS_AUTHENTICATION_REQUIRED = 'Bearer or HMAC authentication required';
+exports.WS_ALREADY_AUTHENTICATED = 'Already authenticated';
+exports.WS_USER_AUTHENTICATED = (email) => `User ${email} authenticated`;
+exports.WS_MISSING_HEADER = 'Bearer or api-key authentication required';
+exports.WS_INVALID_TOPIC = (topic) => `Topic ${topic} is not supported`;
+
+exports.ACCESS_DENIED = (msg) => `Access denied: ${msg}`;
+exports.NOT_AUTHORIZED = 'User is not authorized to access this endpoint';
+exports.TOKEN_EXPIRED = 'Token is expired';
+exports.INVALID_TOKEN = 'Token is invalid';
+exports.MISSING_HEADER = 'Bearer or api-key authentication required';
+exports.DEACTIVATED_USER = 'This account is deactivated';
+exports.WRONG_LIMIT = 'Value "limit" must be an integer';
+exports.WRONG_PAGE = 'Value "page" must be an integer';
+exports.WRONG_ORDER_BY = 'Value "order_by" cannot include whitespaces';
+exports.WRONG_ORDER = 'Value "order" must be one of: ["asc", "desc"]';
+exports.SAME_PASSWORD = 'New password must be different from previous password';
+exports.VERIFICATION_CODE_USED = 'Verification code already used';
+exports.USERNAME_IS_TAKEN = 'Username is already taken. Select a different username';
+exports.TOKEN_OTP_MUST_BE_ENABLED = 'OTP must be enabled to create a token';
+exports.CODE_NOT_FOUND = 'Code not found';
+exports.CODE_USED = 'Code is already used';
+exports.ACCOUNT_NOT_VERIFIED = 'Account is not verified';
+exports.INVALID_SYMBOL = (symbol) => `Invalid symbol: ${symbol}`;
+exports.INVALID_COIN = (coin) => `Invalid coin: ${coin}`;
+exports.INVALID_AMOUNT = (amount) => `Invalid amount: ${amount}`;
+exports.WITHDRAWAL_DISABLED_FOR_COIN = (coin) => `Withdrawals are disabled for coin: ${coin}`;
+exports.UPGRADE_VERIFICATION_LEVEL = (level) => `Verification level must be at or above ${level}`;
+exports.INVALID_VERIFICATION_LEVEL = (level) => `Invalid verification level: ${level}`;
+exports.NO_NEW_DATA = 'No new data given';
+exports.SUPPORT_DISABLED = 'Cannot send email to support at this time';
+exports.COMMUNICATOR_CANNOT_UPDATE = (value) => `Communicator operators cannot update value: ${value}`;
+exports.MASK_VALUE_GIVEN = 'Masked value given';
+exports.NO_DATA_FOR_CSV = 'No data to convert to CSV';
+exports.USER_IS_VERIFIED = 'User is already verified';
+exports.PROVIDE_USER_CREDENTIALS = 'Please provide a a user\'s kit id, network id, or email';
+exports.PROVIDE_KIT_ID = 'Please provide a user\'s kit id';
+exports.PROVIDE_NETWORK_ID = 'Please provide a user\'s network id';
+exports.CANNOT_DEACTIVATE_ADMIN = 'Main admin account cannot be deactivated';
+exports.USER_ALREADY_DEACTIVATED = 'User account is already deactivated';
+exports.USER_NOT_DEACTIVATED = 'User account is not deactivated';
+exports.CANNOT_CHANGE_ADMIN_ROLE = 'Main admin account role cannot be changed';
+exports.PROVIDE_TABLE_NAME = 'Please provide a table name';
+exports.INVALID_PLUGIN = (plugin) => `Invalid plugin: ${plugin}`;
+exports.PLUGIN_ALREADY_ENABELD = (plugin) => `Plugin ${plugin} already enabled`;
+exports.PLUGIN_ALREADY_DISABLED = (plugin) => `Plugin ${plugin} already disabled`;
diff --git a/server/package-lock.json b/server/package-lock.json
new file mode 100644
index 0000000000..876f20e13b
--- /dev/null
+++ b/server/package-lock.json
@@ -0,0 +1,12432 @@
+{
+ "version": "2.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "requires": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+ "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw=="
+ },
+ "@babel/highlight": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+ "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.10.4",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ }
+ },
+ "@sailshq/lodash": {
+ "version": "3.10.4",
+ "resolved": "https://registry.npmjs.org/@sailshq/lodash/-/lodash-3.10.4.tgz",
+ "integrity": "sha512-YXJqp9gdHcZKAmBY/WnwFpPtNQp2huD/ME2YMurH2YHJvxrVzYsmpKw/pb7yINArRpp8E++fwbQd3ajYXGA45Q=="
+ },
+ "@types/geojson": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-1.0.6.tgz",
+ "integrity": "sha512-Xqg/lIZMrUd0VRmSRbCAewtwGZiAk3mEUDvV4op1tGl+LvyPcb/MIOSxTl9z+9+J+R4/vpjiCAT4xeKzH9ji1w=="
+ },
+ "@types/node": {
+ "version": "14.6.2",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.6.2.tgz",
+ "integrity": "sha512-onlIwbaeqvZyniGPfdw/TEhKIh79pz66L1q06WUQqJLnAb6wbjvOtepLYTGHTqzdXgBYIE3ZdmqHDGsRsbBz7A=="
+ },
+ "@types/normalize-package-data": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
+ "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA=="
+ },
+ "accepts": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+ "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+ "requires": {
+ "mime-types": "~2.1.24",
+ "negotiator": "0.6.2"
+ }
+ },
+ "after": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
+ "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8="
+ },
+ "after-all-results": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/after-all-results/-/after-all-results-2.0.0.tgz",
+ "integrity": "sha1-asL8ICtQD4jaj09VMM+hAPTGotA="
+ },
+ "ajv": {
+ "version": "6.12.5",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz",
+ "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==",
+ "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"
+ }
+ },
+ "amp": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/amp/-/amp-0.3.1.tgz",
+ "integrity": "sha1-at+NWKdPNh6CwfqNOJwHnhOfxH0="
+ },
+ "amp-message": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/amp-message/-/amp-message-0.1.2.tgz",
+ "integrity": "sha1-p48cmJlQh602GSpBKY5NtJ49/EU=",
+ "requires": {
+ "amp": "0.3.1"
+ }
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ },
+ "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": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "anymatch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+ "requires": {
+ "micromatch": "^3.1.4",
+ "normalize-path": "^2.1.1"
+ },
+ "dependencies": {
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "requires": {
+ "remove-trailing-separator": "^1.0.1"
+ }
+ }
+ }
+ },
+ "append-field": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
+ "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY="
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ },
+ "dependencies": {
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+ }
+ }
+ },
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
+ },
+ "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=="
+ },
+ "arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
+ },
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
+ },
+ "arraybuffer.slice": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
+ "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog=="
+ },
+ "asn1": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+ "requires": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ },
+ "assertion-error": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw=="
+ },
+ "assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
+ },
+ "async": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+ "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+ "requires": {
+ "lodash": "^4.17.14"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "4.17.20",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
+ "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="
+ }
+ }
+ },
+ "async-cache": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/async-cache/-/async-cache-1.1.0.tgz",
+ "integrity": "sha1-SppaidBl7F2OUlS9nulrp2xTK1o=",
+ "requires": {
+ "lru-cache": "^4.0.0"
+ }
+ },
+ "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=="
+ },
+ "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=="
+ },
+ "async-listener": {
+ "version": "0.6.10",
+ "resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.10.tgz",
+ "integrity": "sha512-gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw==",
+ "requires": {
+ "semver": "^5.3.0",
+ "shimmer": "^1.1.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ }
+ }
+ },
+ "async-value": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/async-value/-/async-value-1.2.2.tgz",
+ "integrity": "sha1-hFF6Hny2saW14YH6Mb4QQ3t/sSU="
+ },
+ "async-value-promise": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/async-value-promise/-/async-value-promise-1.1.1.tgz",
+ "integrity": "sha512-c2RFDKjJle1rHa0YxN9Ysu97/QBu3Wa+NOejJxsX+1qVDJrkD3JL/GN1B3gaILAEXJXbu/4Z1lcoCHFESe/APA==",
+ "requires": {
+ "async-value": "^1.2.2"
+ }
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ },
+ "atob": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
+ },
+ "await-event": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/await-event/-/await-event-2.1.0.tgz",
+ "integrity": "sha1-eOn5JoS65AIvn6C18xShFVD5qnY="
+ },
+ "awesome-phonenumber": {
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/awesome-phonenumber/-/awesome-phonenumber-2.2.5.tgz",
+ "integrity": "sha512-CHVEWEtXhaUB4ZGki/MQOlxK9wX+x3rw0/OARxB/srJTBP7b8nZjuE69WKQIUmciYdYGP2qywFPyubewJnFLbQ=="
+ },
+ "aws-sdk": {
+ "version": "2.205.0",
+ "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.205.0.tgz",
+ "integrity": "sha1-GpNzAlPivgJ6S9OvkkjL2gVz3oA=",
+ "requires": {
+ "buffer": "4.9.1",
+ "events": "^1.1.1",
+ "jmespath": "0.15.0",
+ "querystring": "0.2.0",
+ "sax": "1.2.1",
+ "url": "0.10.3",
+ "uuid": "3.1.0",
+ "xml2js": "0.4.17",
+ "xmlbuilder": "4.2.1"
+ },
+ "dependencies": {
+ "uuid": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
+ "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g=="
+ }
+ }
+ },
+ "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="
+ },
+ "aws4": {
+ "version": "1.10.1",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz",
+ "integrity": "sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA=="
+ },
+ "backo2": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
+ "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc="
+ },
+ "bagpipes": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/bagpipes/-/bagpipes-0.0.6.tgz",
+ "integrity": "sha1-CWvRDCBi65RYVvkZtxApRVeOR/0=",
+ "requires": {
+ "async": "^1.4.2",
+ "debug": "^2.1.2",
+ "jspath": "^0.3.1",
+ "lodash": "^3.5.0",
+ "machinepack-http": "^2.3.0",
+ "mustache": "^2.1.3",
+ "pipeworks": "^1.3.0"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "lodash": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
+ "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ },
+ "base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "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",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "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==",
+ "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==",
+ "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==",
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "base64-arraybuffer": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
+ "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg="
+ },
+ "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=="
+ },
+ "base64id": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz",
+ "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY="
+ },
+ "basic-auth": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz",
+ "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==",
+ "requires": {
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+ "requires": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "bcryptjs": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz",
+ "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms="
+ },
+ "better-assert": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
+ "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
+ "requires": {
+ "callsite": "1.0.0"
+ }
+ },
+ "binary-extensions": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw=="
+ },
+ "binary-search": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/binary-search/-/binary-search-1.3.6.tgz",
+ "integrity": "sha512-nbE1WxOTTrUWIfsfZ4aHGYu5DOuNkbxGokjV6Z2kxfJK3uaAb8zNK1muzOeipoLHZjInT4Br88BHpzevc681xA=="
+ },
+ "bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "optional": true,
+ "requires": {
+ "file-uri-to-path": "1.0.0"
+ }
+ },
+ "blessed": {
+ "version": "0.1.81",
+ "resolved": "https://registry.npmjs.org/blessed/-/blessed-0.1.81.tgz",
+ "integrity": "sha1-+WLWh+wsNpVwrnGvhDJW5tDKESk="
+ },
+ "blob": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz",
+ "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig=="
+ },
+ "bluebird": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz",
+ "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw=="
+ },
+ "body-parser": {
+ "version": "1.18.2",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
+ "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
+ "requires": {
+ "bytes": "3.0.0",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "~1.1.1",
+ "http-errors": "~1.6.2",
+ "iconv-lite": "0.4.19",
+ "on-finished": "~2.3.0",
+ "qs": "6.5.1",
+ "raw-body": "2.3.2",
+ "type-is": "~1.6.15"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "boom": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz",
+ "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=",
+ "requires": {
+ "hoek": "4.x.x"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "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",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "breadth-filter": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/breadth-filter/-/breadth-filter-2.0.0.tgz",
+ "integrity": "sha512-thQShDXnFWSk2oVBixRCyrWsFoV5tfOpWKHmxwafHQDNxCfDBk539utpvytNjmlFrTMqz41poLwJvA1MW3z0MQ==",
+ "requires": {
+ "object.entries": "^1.0.4"
+ }
+ },
+ "browser-stdout": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz",
+ "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=",
+ "dev": true
+ },
+ "buffer": {
+ "version": "4.9.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
+ "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
+ "requires": {
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4",
+ "isarray": "^1.0.0"
+ }
+ },
+ "buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI="
+ },
+ "buffer-equal-constant-time": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
+ "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
+ },
+ "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=="
+ },
+ "buffer-writer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-1.0.1.tgz",
+ "integrity": "sha1-Iqk2kB4wKa/NdUfrRIfOtpejvwg="
+ },
+ "busboy": {
+ "version": "0.2.14",
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz",
+ "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=",
+ "requires": {
+ "dicer": "0.2.5",
+ "readable-stream": "1.1.x"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ }
+ }
+ },
+ "bytes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
+ },
+ "cache-base": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "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"
+ }
+ },
+ "callsite": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
+ "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA="
+ },
+ "camelize": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz",
+ "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs="
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
+ },
+ "chai": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz",
+ "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==",
+ "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"
+ }
+ },
+ "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": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "charm": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/charm/-/charm-0.1.2.tgz",
+ "integrity": "sha1-BsIe7RobBq62dVPNxT4jJ0usIpY="
+ },
+ "check-error": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
+ "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII="
+ },
+ "chokidar": {
+ "version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+ "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
+ "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"
+ }
+ },
+ "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==",
+ "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",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "cli-table-redemption": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cli-table-redemption/-/cli-table-redemption-1.0.1.tgz",
+ "integrity": "sha512-SjVCciRyx01I4azo2K2rcc0NP/wOceXGzG1ZpYkEulbbIxDA/5YWv0oxG2HtQ4v8zPC6bgbRI7SbNaTZCxMNkg==",
+ "requires": {
+ "chalk": "^1.1.3"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "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"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
+ }
+ }
+ },
+ "cls-bluebird": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cls-bluebird/-/cls-bluebird-2.1.0.tgz",
+ "integrity": "sha1-N+8eCAqP+1XC9BZPU28ZGeeWiu4=",
+ "requires": {
+ "is-bluebird": "^1.0.2",
+ "shimmer": "^1.1.0"
+ }
+ },
+ "co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
+ },
+ "collection-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+ "requires": {
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
+ }
+ },
+ "color": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz",
+ "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==",
+ "requires": {
+ "color-convert": "^1.9.1",
+ "color-string": "^1.5.2"
+ }
+ },
+ "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": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+ },
+ "color-string": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz",
+ "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==",
+ "requires": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
+ "colornames": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/colornames/-/colornames-1.1.1.tgz",
+ "integrity": "sha1-+IiQMGhcfE/54qVZ9Qd+t2qBb5Y="
+ },
+ "colors": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
+ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="
+ },
+ "colorspace": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz",
+ "integrity": "sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==",
+ "requires": {
+ "color": "3.0.x",
+ "text-hex": "1.0.x"
+ }
+ },
+ "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": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "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=="
+ },
+ "complex.js": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/complex.js/-/complex.js-2.0.4.tgz",
+ "integrity": "sha512-Syl95HpxUTS0QjwNxencZsKukgh1zdS9uXeXX2Us0pHaqBR6kiZZi0AkZ9VpZFwHJyVIUVzI4EumjWdXP3fy6w=="
+ },
+ "component-bind": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
+ "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E="
+ },
+ "component-emitter": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+ "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
+ },
+ "component-inherit": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",
+ "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM="
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ },
+ "dependencies": {
+ "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",
+ "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"
+ }
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "config": {
+ "version": "1.31.0",
+ "resolved": "https://registry.npmjs.org/config/-/config-1.31.0.tgz",
+ "integrity": "sha512-Ep/l9Rd1J9IPueztJfpbOqVzuKHQh4ZODMNt9xqTYdBBNRXbV4oTu34kCkkfdRVcDq0ohtpaeXGgb+c0LQxFRA==",
+ "requires": {
+ "json5": "^1.0.1"
+ }
+ },
+ "console-log-level": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/console-log-level/-/console-log-level-1.4.1.tgz",
+ "integrity": "sha512-VZzbIORbP+PPcN/gg3DXClTLPLg5Slwd5fL2MIc+o1qZ4BXBvWyc6QxPk6T/Mkr6IVjRpoAGf32XxP3ZWMVRcQ=="
+ },
+ "container-info": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/container-info/-/container-info-1.0.1.tgz",
+ "integrity": "sha512-wk/+uJvPHOFG+JSwQS+fw6H6yw3Oyc8Kw9L4O2MN817uA90OqJ59nlZbbLPqDudsjJ7Tetee3pwExdKpd2ahjQ=="
+ },
+ "content-disposition": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
+ "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ="
+ },
+ "content-security-policy-builder": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/content-security-policy-builder/-/content-security-policy-builder-2.0.0.tgz",
+ "integrity": "sha512-j+Nhmj1yfZAikJLImCvPJFE29x/UuBi+/MWqggGGc515JKaZrjuei2RhULJmy0MsstW3E3htl002bwmBNMKr7w=="
+ },
+ "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=="
+ },
+ "continuation-local-storage": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz",
+ "integrity": "sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA==",
+ "requires": {
+ "async-listener": "^0.6.0",
+ "emitter-listener": "^1.1.1"
+ }
+ },
+ "convert-to-ecmascript-compatible-varname": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/convert-to-ecmascript-compatible-varname/-/convert-to-ecmascript-compatible-varname-0.1.5.tgz",
+ "integrity": "sha1-9npJOMUjNENWQlBHnGcBS6yHhJk="
+ },
+ "cookie": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
+ "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA=="
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
+ },
+ "cookiejar": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz",
+ "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA=="
+ },
+ "copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
+ },
+ "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=="
+ },
+ "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="
+ },
+ "cors": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+ "requires": {
+ "object-assign": "^4",
+ "vary": "^1"
+ }
+ },
+ "cron": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/cron/-/cron-1.8.2.tgz",
+ "integrity": "sha512-Gk2c4y6xKEO8FSAUTklqtfSr7oTq0CiPQeLBG5Fl0qoXpZyMcj1SG59YL+hqq04bu6/IuEA7lMkYDAplQNKkyg==",
+ "requires": {
+ "moment-timezone": "^0.5.x"
+ }
+ },
+ "cryptiles": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.4.tgz",
+ "integrity": "sha512-8I1sgZHfVwcSOY6mSGpVU3lw/GSIZvusg8dD2+OGehCJpOhQRLNcH0qb9upQnOH4XhgxxFJSg6E2kx95deb1Tw==",
+ "requires": {
+ "boom": "5.x.x"
+ },
+ "dependencies": {
+ "boom": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz",
+ "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==",
+ "requires": {
+ "hoek": "4.x.x"
+ }
+ }
+ }
+ },
+ "cycle": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz",
+ "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI="
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "dasherize": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dasherize/-/dasherize-2.0.0.tgz",
+ "integrity": "sha1-bYCcnNDPe7iVLYD8hPoT1H3bEwg="
+ },
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "decimal.js": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-9.0.1.tgz",
+ "integrity": "sha512-2h0iKbJwnImBk4TGk7CG1xadoA0g3LDPlQhQzbZ221zvG0p2YVUedbKIPsOZXKZGx6YmZMJKYOalpCMxSdDqTQ=="
+ },
+ "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="
+ },
+ "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": {
+ "type-detect": "^4.0.0"
+ }
+ },
+ "deep-metrics": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/deep-metrics/-/deep-metrics-0.0.1.tgz",
+ "integrity": "sha512-732WmZgCWxOkf4QBvrCjPPuT6wTEzaGye/4JqYsU/sO0J53UNX4PBwK0JV262BZ5cxgLmKhU+NlrtKdPDgybkg==",
+ "requires": {
+ "semver": "^5.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ }
+ }
+ },
+ "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==",
+ "requires": {
+ "object-keys": "^1.0.12"
+ }
+ },
+ "define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "requires": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "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==",
+ "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==",
+ "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==",
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+ },
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
+ },
+ "destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
+ },
+ "diagnostics": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz",
+ "integrity": "sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ==",
+ "requires": {
+ "colorspace": "1.1.x",
+ "enabled": "1.0.x",
+ "kuler": "1.0.x"
+ }
+ },
+ "dicer": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz",
+ "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=",
+ "requires": {
+ "readable-stream": "1.1.x",
+ "streamsearch": "0.1.2"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ }
+ }
+ },
+ "diff": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz",
+ "integrity": "sha1-yc45Okt8vQsFinJck98pkCeGj/k=",
+ "dev": true
+ },
+ "dns-prefetch-control": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/dns-prefetch-control/-/dns-prefetch-control-0.1.0.tgz",
+ "integrity": "sha1-YN20V3dOF48flBXwyrsOhbCzALI="
+ },
+ "dont-sniff-mimetype": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/dont-sniff-mimetype/-/dont-sniff-mimetype-1.0.0.tgz",
+ "integrity": "sha1-WTKJDcn04vGeXrAqIAJuXl78j1g="
+ },
+ "dottie": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.2.tgz",
+ "integrity": "sha512-fmrwR04lsniq/uSr8yikThDTrM7epXHBAAjH9TbeH3rEA8tdCO7mRzB9hdmdGyJCxF8KERo9CITcm3kGuoyMhg=="
+ },
+ "double-ended-queue": {
+ "version": "2.1.0-0",
+ "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz",
+ "integrity": "sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw="
+ },
+ "ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+ "requires": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ },
+ "dependencies": {
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
+ }
+ }
+ },
+ "ecdsa-sig-formatter": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
+ "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
+ },
+ "elastic-apm-http-client": {
+ "version": "9.4.0",
+ "resolved": "https://registry.npmjs.org/elastic-apm-http-client/-/elastic-apm-http-client-9.4.0.tgz",
+ "integrity": "sha512-/jOZDyfzLNwHrNkPAI+AspLg0TXYXODWT+I1eoAWRCB7gP1vKvzUQAsP5iChodVqCbAj1eUNXB0KrvM6b07Thw==",
+ "requires": {
+ "breadth-filter": "^2.0.0",
+ "container-info": "^1.0.1",
+ "end-of-stream": "^1.4.4",
+ "fast-safe-stringify": "^2.0.7",
+ "fast-stream-to-buffer": "^1.0.0",
+ "pump": "^3.0.0",
+ "readable-stream": "^3.4.0",
+ "stream-chopper": "^3.0.1",
+ "unicode-byte-truncate": "^1.0.0"
+ }
+ },
+ "elastic-apm-node": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/elastic-apm-node/-/elastic-apm-node-3.5.0.tgz",
+ "integrity": "sha512-s0masF1sJSrUFwydd2Nrk888BRA/YSxUvQFSrO2Pbd69+iqnjC9Yd9yQvAwfaI0HF4ViVqDXqmmZ1l3FqYgb1Q==",
+ "requires": {
+ "after-all-results": "^2.0.0",
+ "async-value-promise": "^1.1.1",
+ "basic-auth": "^2.0.1",
+ "console-log-level": "^1.4.1",
+ "cookie": "^0.4.0",
+ "core-util-is": "^1.0.2",
+ "elastic-apm-http-client": "^9.3.0",
+ "end-of-stream": "^1.4.4",
+ "error-stack-parser": "^2.0.6",
+ "fast-safe-stringify": "^2.0.7",
+ "http-headers": "^3.0.2",
+ "http-request-to-url": "^1.0.0",
+ "is-native": "^1.0.1",
+ "measured-reporting": "^1.51.1",
+ "monitor-event-loop-delay": "^1.0.0",
+ "object-filter-sequence": "^1.0.0",
+ "object-identity-map": "^1.0.2",
+ "original-url": "^1.2.3",
+ "read-pkg-up": "^7.0.1",
+ "redact-secrets": "^1.0.0",
+ "relative-microtime": "^2.0.0",
+ "require-ancestors": "^1.0.0",
+ "require-in-the-middle": "^5.0.3",
+ "semver": "^6.3.0",
+ "set-cookie-serde": "^1.0.0",
+ "shallow-clone-shim": "^2.0.0",
+ "sql-summary": "^1.0.1",
+ "stackman": "^4.0.0",
+ "traceparent": "^1.0.0",
+ "unicode-byte-truncate": "^1.0.0"
+ }
+ },
+ "emitter-listener": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz",
+ "integrity": "sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==",
+ "requires": {
+ "shimmer": "^1.2.0"
+ }
+ },
+ "enabled": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz",
+ "integrity": "sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M=",
+ "requires": {
+ "env-variable": "0.0.x"
+ }
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
+ },
+ "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==",
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "engine.io": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.1.5.tgz",
+ "integrity": "sha512-D06ivJkYxyRrcEe0bTpNnBQNgP9d3xog+qZlLbui8EsMr/DouQpf5o9FzJnWYHEYE0YsFHllUv2R1dkgYZXHcA==",
+ "requires": {
+ "accepts": "~1.3.4",
+ "base64id": "1.0.0",
+ "cookie": "0.3.1",
+ "debug": "~3.1.0",
+ "engine.io-parser": "~2.1.0",
+ "uws": "~9.14.0",
+ "ws": "~3.3.1"
+ },
+ "dependencies": {
+ "cookie": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
+ "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
+ },
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "ws": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
+ "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
+ "requires": {
+ "async-limiter": "~1.0.0",
+ "safe-buffer": "~5.1.0",
+ "ultron": "~1.1.0"
+ }
+ }
+ }
+ },
+ "engine.io-client": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.3.2.tgz",
+ "integrity": "sha512-y0CPINnhMvPuwtqXfsGuWE8BB66+B6wTtCofQDRecMQPYX3MYUZXFNKDhdrSe3EVjgOu4V3rxdeqN/Tr91IgbQ==",
+ "requires": {
+ "component-emitter": "1.2.1",
+ "component-inherit": "0.0.3",
+ "debug": "~3.1.0",
+ "engine.io-parser": "~2.1.1",
+ "has-cors": "1.1.0",
+ "indexof": "0.0.1",
+ "parseqs": "0.0.5",
+ "parseuri": "0.0.5",
+ "ws": "~6.1.0",
+ "xmlhttprequest-ssl": "~1.5.4",
+ "yeast": "0.1.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "engine.io-parser": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz",
+ "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==",
+ "requires": {
+ "after": "0.8.2",
+ "arraybuffer.slice": "~0.0.7",
+ "base64-arraybuffer": "0.1.5",
+ "blob": "0.0.5",
+ "has-binary2": "~1.0.2"
+ }
+ },
+ "env-variable": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/env-variable/-/env-variable-0.0.6.tgz",
+ "integrity": "sha512-bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg=="
+ },
+ "error-callsites": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/error-callsites/-/error-callsites-2.0.3.tgz",
+ "integrity": "sha512-v036z4IEffZFE5kBkV5/F2MzhLnG0vuDyN+VXpzCf4yWXvX/1WJCI0A+TGTr8HWzBfCw5k8gr9rwAo09V+obTA=="
+ },
+ "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": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "error-stack-parser": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz",
+ "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==",
+ "requires": {
+ "stackframe": "^1.1.1"
+ }
+ },
+ "es-abstract": {
+ "version": "1.17.6",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz",
+ "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==",
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.2.0",
+ "is-regex": "^1.1.0",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimend": "^1.0.1",
+ "string.prototype.trimstart": "^1.0.1"
+ }
+ },
+ "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==",
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
+ },
+ "escape-latex": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/escape-latex/-/escape-latex-1.2.0.tgz",
+ "integrity": "sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw=="
+ },
+ "escape-regexp": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/escape-regexp/-/escape-regexp-0.0.1.tgz",
+ "integrity": "sha1-9EvaEtRbvfnLf4Yu5+SCez3TIlQ="
+ },
+ "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="
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
+ },
+ "eventemitter2": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-1.0.5.tgz",
+ "integrity": "sha1-+YNhBRexc3wLncZDvsqTiTwE3xg="
+ },
+ "events": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
+ "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ="
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "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",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "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=",
+ "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=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "expect-ct": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/expect-ct/-/expect-ct-0.1.0.tgz",
+ "integrity": "sha1-UnNWeN4YUwiQ2Ne5XwrGNkCVgJQ="
+ },
+ "express": {
+ "version": "4.16.2",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz",
+ "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=",
+ "requires": {
+ "accepts": "~1.3.4",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.18.2",
+ "content-disposition": "0.5.2",
+ "content-type": "~1.0.4",
+ "cookie": "0.3.1",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~1.1.1",
+ "encodeurl": "~1.0.1",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "1.1.0",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.2",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.2",
+ "qs": "6.5.1",
+ "range-parser": "~1.2.0",
+ "safe-buffer": "5.1.1",
+ "send": "0.16.1",
+ "serve-static": "1.13.1",
+ "setprototypeof": "1.1.0",
+ "statuses": "~1.3.1",
+ "type-is": "~1.6.15",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "dependencies": {
+ "cookie": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
+ "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "safe-buffer": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
+ "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
+ }
+ }
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+ },
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "requires": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "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==",
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "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",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "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=",
+ "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==",
+ "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==",
+ "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==",
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
+ },
+ "fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+ },
+ "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=="
+ },
+ "fast-safe-stringify": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz",
+ "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA=="
+ },
+ "fast-stream-to-buffer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fast-stream-to-buffer/-/fast-stream-to-buffer-1.0.0.tgz",
+ "integrity": "sha512-bI/544WUQlD2iXBibQbOMSmG07Hay7YrpXlKaeGTPT7H7pC0eitt3usak5vUwEvCGK/O7rUAM3iyQValGU22TQ==",
+ "requires": {
+ "end-of-stream": "^1.4.1"
+ }
+ },
+ "fclone": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/fclone/-/fclone-1.0.11.tgz",
+ "integrity": "sha1-EOhdo4v+p/xZk0HClu4ddyZu5kA="
+ },
+ "fd-slicer": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+ "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
+ "requires": {
+ "pend": "~1.2.0"
+ }
+ },
+ "fecha": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz",
+ "integrity": "sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg=="
+ },
+ "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==",
+ "optional": true
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "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",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "finalhandler": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz",
+ "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=",
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.1",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.2",
+ "statuses": "~1.3.1",
+ "unpipe": "~1.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "flat": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.0.tgz",
+ "integrity": "sha512-6KSMM+cHHzXC/hpldXApL2S8Uz+QZv+tq5o/L0KQYleoG+GcwrnIJhTWC7tCOiKQp8D/fIvryINU1OZCCwevjA==",
+ "requires": {
+ "is-buffer": "~2.0.4"
+ }
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
+ },
+ "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==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "formidable": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz",
+ "integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q=="
+ },
+ "forwarded": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
+ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
+ },
+ "forwarded-parse": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/forwarded-parse/-/forwarded-parse-2.1.0.tgz",
+ "integrity": "sha512-as9a7Xelt0CvdUy7/qxrY73dZq2vMx49F556fwjjFrUyzq5uHHfeLgD2cCq/6P4ZvusGZzjD6aL2NdgGdS5Cew=="
+ },
+ "fraction.js": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.0.4.tgz",
+ "integrity": "sha512-aK/oGatyYLTtXRHjfEsytX5fieeR5H4s8sLorzcT12taFS+dbMZejnvm9gRa8mZAPwci24ucjq9epDyaq5u8Iw=="
+ },
+ "fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "requires": {
+ "map-cache": "^0.2.2"
+ }
+ },
+ "frameguard": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/frameguard/-/frameguard-3.0.0.tgz",
+ "integrity": "sha1-e8rUae57lukdEs6zlZx4I1qScuk="
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "fsevents": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
+ "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
+ "optional": true,
+ "requires": {
+ "bindings": "^1.5.0",
+ "nan": "^2.12.1"
+ }
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "generic-pool": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.4.3.tgz",
+ "integrity": "sha1-eAw29p360FpaBF3Te+etyhGk9v8="
+ },
+ "geoip-lite": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/geoip-lite/-/geoip-lite-1.4.1.tgz",
+ "integrity": "sha512-uhPTk7ndEAnqpvNhcSQh51dIrMTGOmOPKIi4KgIHtuJbgaAGgON1Q1UFGhu4YSCnN1DVWTLqcpoL9/746x6Nqg==",
+ "requires": {
+ "async": "^2.1.1",
+ "colors": "^1.1.2",
+ "iconv-lite": "^0.4.13",
+ "ip-address": "^5.8.9",
+ "lazy": "^1.0.11",
+ "rimraf": "^2.5.2",
+ "yauzl": "^2.9.2"
+ }
+ },
+ "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="
+ },
+ "get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "gkt": {
+ "version": "https://tgz.pm2.io/gkt-1.0.0.tgz",
+ "integrity": "sha512-zr6QQnzLt3Ja0t0XI8gws2kn7zV2p0l/D3kreNvS6hFZhVU5g+uY/30l42jbgt0XGcNBEmBDGJR71J692V92tA==",
+ "optional": true
+ },
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "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"
+ }
+ },
+ "glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "requires": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ },
+ "dependencies": {
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "requires": {
+ "is-extglob": "^2.1.0"
+ }
+ }
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw=="
+ },
+ "graceful-readlink": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
+ "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
+ "dev": true
+ },
+ "graphlib": {
+ "version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz",
+ "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==",
+ "requires": {
+ "lodash": "^4.17.15"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "4.17.20",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
+ "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="
+ }
+ }
+ },
+ "growl": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz",
+ "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=",
+ "dev": true
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
+ },
+ "har-validator": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
+ "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
+ "requires": {
+ "ajv": "^6.12.3",
+ "har-schema": "^2.0.0"
+ }
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "has-binary2": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz",
+ "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==",
+ "requires": {
+ "isarray": "2.0.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
+ "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
+ }
+ }
+ },
+ "has-cors": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
+ "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk="
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
+ },
+ "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=="
+ },
+ "has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+ "requires": {
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
+ }
+ },
+ "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=",
+ "requires": {
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
+ "dependencies": {
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ },
+ "kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "hawk": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz",
+ "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==",
+ "requires": {
+ "boom": "4.x.x",
+ "cryptiles": "3.x.x",
+ "hoek": "4.x.x",
+ "sntp": "2.x.x"
+ }
+ },
+ "he": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
+ "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
+ "dev": true
+ },
+ "helmet": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.12.0.tgz",
+ "integrity": "sha512-CgkctpvreQLL6X3EL2Igs/92+75ZFIsrob9/Rdwf2hQCBGH/DxLk4xFPxAAl6jYnnus/YXfFEVXHEJf8TJTwlA==",
+ "requires": {
+ "dns-prefetch-control": "0.1.0",
+ "dont-sniff-mimetype": "1.0.0",
+ "expect-ct": "0.1.0",
+ "frameguard": "3.0.0",
+ "helmet-csp": "2.7.0",
+ "hide-powered-by": "1.0.0",
+ "hpkp": "2.0.0",
+ "hsts": "2.1.0",
+ "ienoopen": "1.0.0",
+ "nocache": "2.0.0",
+ "referrer-policy": "1.1.0",
+ "x-xss-protection": "1.1.0"
+ }
+ },
+ "helmet-csp": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/helmet-csp/-/helmet-csp-2.7.0.tgz",
+ "integrity": "sha512-IGIAkWnxjRbgMXFA2/kmDqSIrIaSfZ6vhMHlSHw7jm7Gm9nVVXqwJ2B1YEpYrJsLrqY+w2Bbimk7snux9+sZAw==",
+ "requires": {
+ "camelize": "1.0.0",
+ "content-security-policy-builder": "2.0.0",
+ "dasherize": "2.0.0",
+ "lodash.reduce": "4.6.0",
+ "platform": "1.3.5"
+ }
+ },
+ "hide-powered-by": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hide-powered-by/-/hide-powered-by-1.0.0.tgz",
+ "integrity": "sha1-SoWtZYgfYoV/xwr3F0oRhNzM4ys="
+ },
+ "hoek": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz",
+ "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA=="
+ },
+ "hollaex-node-lib": {
+ "version": "github:bitholla/hollaex-node-lib#48bee2cf3f7d7ea0d000598df1f3d16c307d6b7a",
+ "from": "github:bitholla/hollaex-node-lib#2.0",
+ "requires": {
+ "lodash": "4.17.13",
+ "moment": "2.24.0",
+ "request": "2.88.0",
+ "request-promise": "4.2.2",
+ "socket.io-client": "2.2.0"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "4.17.13",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.13.tgz",
+ "integrity": "sha512-vm3/XWXfWtRua0FkUyEHBZy8kCPjErNBT9fJx8Zvs+U6zjqPbTUOpkaoum3O5uiA8sm+yNMHXfYkTUHFoMxFNA=="
+ },
+ "moment": {
+ "version": "2.24.0",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
+ "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg=="
+ },
+ "qs": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
+ },
+ "request": {
+ "version": "2.88.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
+ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
+ "requires": {
+ "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"
+ }
+ },
+ "uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
+ }
+ }
+ },
+ "hollaex-tools-lib": {
+ "version": "github:bitholla/hollaex-tools-lib#3ca999c585417bbf7caf5b5d75840abd48e05660",
+ "from": "github:bitholla/hollaex-tools-lib#develop",
+ "requires": {
+ "bcryptjs": "2.4.3",
+ "bluebird": "3.7.2",
+ "flat": "5.0.0",
+ "hollaex-node-lib": "github:bitholla/hollaex-node-lib#2.0",
+ "json2csv": "4.5.4",
+ "jsonwebtoken": "8.5.1",
+ "lodash": "4.17.15",
+ "otp": "0.1.3",
+ "request": "2.83.0",
+ "request-promise": "4.2.2",
+ "validator": "13.1.1"
+ },
+ "dependencies": {
+ "bluebird": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
+ },
+ "jsonwebtoken": {
+ "version": "8.5.1",
+ "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
+ "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
+ "requires": {
+ "jws": "^3.2.2",
+ "lodash.includes": "^4.3.0",
+ "lodash.isboolean": "^3.0.3",
+ "lodash.isinteger": "^4.0.4",
+ "lodash.isnumber": "^3.0.3",
+ "lodash.isplainobject": "^4.0.6",
+ "lodash.isstring": "^4.0.1",
+ "lodash.once": "^4.0.0",
+ "ms": "^2.1.1",
+ "semver": "^5.6.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.15",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ },
+ "validator": {
+ "version": "13.1.1",
+ "resolved": "https://registry.npmjs.org/validator/-/validator-13.1.1.tgz",
+ "integrity": "sha512-8GfPiwzzRoWTg7OV1zva1KvrSemuMkv07MA9TTl91hfhe+wKrsrgVN4H2QSFd/U/FhiU3iWPYVgvbsOGwhyFWw=="
+ }
+ }
+ },
+ "hosted-git-info": {
+ "version": "2.8.8",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz",
+ "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg=="
+ },
+ "hpkp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/hpkp/-/hpkp-2.0.0.tgz",
+ "integrity": "sha1-EOFCJk52IVpdMMROxD3mTe5tFnI="
+ },
+ "hsts": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/hsts/-/hsts-2.1.0.tgz",
+ "integrity": "sha512-zXhh/DqgrTXJ7erTN6Fh5k/xjMhDGXCqdYN3wvxUvGUQvnxcFfUd8E+6vLg/nk3ss1TYMb+DhRl25fYABioTvA=="
+ },
+ "http": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/http/-/http-0.0.0.tgz",
+ "integrity": "sha1-huYybSnF0Dnen6xYSkVon5KfT3I="
+ },
+ "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=",
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.0",
+ "statuses": ">= 1.4.0 < 2"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ },
+ "statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
+ }
+ }
+ },
+ "http-headers": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/http-headers/-/http-headers-3.0.2.tgz",
+ "integrity": "sha512-87E1I+2Wg4dxxz4rcxElo3dxO/w1ZtgL1yA0Sb6vH3qU16vRKq1NjWQv9SCY3ly2OQROcoxHZOUpmelS+k6wOw==",
+ "requires": {
+ "next-line": "^1.1.0"
+ }
+ },
+ "http-request-to-url": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/http-request-to-url/-/http-request-to-url-1.0.0.tgz",
+ "integrity": "sha512-YYx0lKXG9+T1fT2q3ZgXLczMI3jW09g9BvIA6L3BG0tFqGm83Ka/+RUZGANRG7Ut/yueD7LPcZQ/+pA5ndNajw==",
+ "requires": {
+ "await-event": "^2.1.0",
+ "socket-location": "^1.0.0"
+ }
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.19",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
+ "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
+ },
+ "ieee754": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
+ "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
+ },
+ "ienoopen": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/ienoopen/-/ienoopen-1.0.0.tgz",
+ "integrity": "sha1-NGpCj0dKrI9QzzeE6i0PFvYr2ms="
+ },
+ "in-publish": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz",
+ "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ=="
+ },
+ "indexof": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
+ "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10="
+ },
+ "inflection": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.12.0.tgz",
+ "integrity": "sha1-ogCTVlbW9fa8TcdQLhrstwMihBY="
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "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=="
+ },
+ "install": {
+ "version": "0.10.4",
+ "resolved": "https://registry.npmjs.org/install/-/install-0.10.4.tgz",
+ "integrity": "sha512-+IRyOastuPmLVx9zlVXJoKErSqz1Ma5at9A7S8yfsj3W+Kg95faPoh3bPDtMrZ/grz4PRmXzrswmlzfLlYyLOw=="
+ },
+ "interpret": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
+ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA=="
+ },
+ "ip-address": {
+ "version": "5.9.4",
+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-5.9.4.tgz",
+ "integrity": "sha512-dHkI3/YNJq4b/qQaz+c8LuarD3pY24JqZWfjB8aZx1gtpc2MDILu9L9jpZe1sHpzo/yWFweQVn+U//FhazUxmw==",
+ "requires": {
+ "jsbn": "1.1.0",
+ "lodash": "^4.17.15",
+ "sprintf-js": "1.1.2"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "4.17.20",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
+ "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="
+ }
+ }
+ },
+ "ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
+ },
+ "is": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/is/-/is-3.3.0.tgz",
+ "integrity": "sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg=="
+ },
+ "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=",
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
+ },
+ "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=",
+ "requires": {
+ "binary-extensions": "^1.0.0"
+ }
+ },
+ "is-bluebird": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-bluebird/-/is-bluebird-1.0.2.tgz",
+ "integrity": "sha1-CWQ5Bg9KpBGr7hkUOoTWpVNG1uI="
+ },
+ "is-buffer": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
+ "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A=="
+ },
+ "is-callable": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz",
+ "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw=="
+ },
+ "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=",
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "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=="
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
+ "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=="
+ }
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
+ },
+ "is-finite": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz",
+ "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w=="
+ },
+ "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==",
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-integer": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-integer/-/is-integer-1.0.7.tgz",
+ "integrity": "sha1-a96Bqs3feLZZtmKdYpytxRqIbVw=",
+ "requires": {
+ "is-finite": "^1.0.0"
+ }
+ },
+ "is-native": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-native/-/is-native-1.0.1.tgz",
+ "integrity": "sha1-zRjMFi6EUNaDtbq+eayZwUVElnU=",
+ "requires": {
+ "is-nil": "^1.0.0",
+ "to-source-code": "^1.0.0"
+ }
+ },
+ "is-nil": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-nil/-/is-nil-1.0.1.tgz",
+ "integrity": "sha1-LauingtYUGOHXntTnQcfWxWTeWk="
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "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==",
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "is-regex": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
+ "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
+ "requires": {
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "is-secret": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-secret/-/is-secret-1.2.1.tgz",
+ "integrity": "sha512-VtBantcgKL2a64fDeCmD1JlkHToh3v0bVOhyJZ5aGTjxtCgrdNcjaC9GaaRFXi19gA4/pYFpnuyoscIgQCFSMQ=="
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
+ },
+ "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==",
+ "requires": {
+ "has-symbols": "^1.0.1"
+ }
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+ },
+ "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=="
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "isemail": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/isemail/-/isemail-1.2.0.tgz",
+ "integrity": "sha1-vgPfjMPineTSxd9lASY/H6RZXpo="
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
+ },
+ "javascript-natural-sort": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz",
+ "integrity": "sha1-+eIwPUUH9tdDVac2ZNFED7Wg71k="
+ },
+ "jmespath": {
+ "version": "0.15.0",
+ "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz",
+ "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc="
+ },
+ "joi": {
+ "version": "6.10.1",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-6.10.1.tgz",
+ "integrity": "sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY=",
+ "requires": {
+ "hoek": "2.x.x",
+ "isemail": "1.x.x",
+ "moment": "2.x.x",
+ "topo": "1.x.x"
+ },
+ "dependencies": {
+ "hoek": {
+ "version": "2.16.3",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
+ "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
+ }
+ }
+ },
+ "js-string-escape": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz",
+ "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8="
+ },
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ },
+ "js-yaml": {
+ "version": "3.14.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz",
+ "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==",
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "jsbn": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz",
+ "integrity": "sha1-sBMHyym2GKHtJux56RH4A8TaAEA="
+ },
+ "json-parse-even-better-errors": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.0.tgz",
+ "integrity": "sha512-o3aP+RsWDJZayj1SbHNQAI8x0v3T3SKiGoZlNYfbUP1S3omJQ6i9CnqADqkSPaOAxwua4/1YWx5CM7oiChJt2Q=="
+ },
+ "json-refs": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/json-refs/-/json-refs-2.1.7.tgz",
+ "integrity": "sha1-uesB/in16j6Sh48VrqEK04taz4k=",
+ "requires": {
+ "commander": "^2.9.0",
+ "graphlib": "^2.1.1",
+ "js-yaml": "^3.8.3",
+ "native-promise-only": "^0.8.1",
+ "path-loader": "^1.0.2",
+ "slash": "^1.0.0",
+ "uri-js": "^3.0.2"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+ },
+ "uri-js": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-3.0.2.tgz",
+ "integrity": "sha1-+QuFhQf4HepNz7s8TD2/orVX+qo=",
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ }
+ }
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
+ },
+ "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=="
+ },
+ "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="
+ },
+ "json2csv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/json2csv/-/json2csv-4.5.4.tgz",
+ "integrity": "sha512-YxBhY4Lmn8IvVZ36nqg5omxneLy9JlorkqW1j/EDCeqvmi+CQ4uM+wsvXlcIqvGDewIPXMC/O/oF8DX9EH5aoA==",
+ "requires": {
+ "commander": "^2.15.1",
+ "jsonparse": "^1.3.1",
+ "lodash.get": "^4.4.2"
+ }
+ },
+ "json3": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz",
+ "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=",
+ "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"
+ }
+ },
+ "jsonparse": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
+ "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA="
+ },
+ "jsonwebtoken": {
+ "version": "7.4.3",
+ "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-7.4.3.tgz",
+ "integrity": "sha1-d/UCHeBYtgWheD+hKD6ZgS5kVjg=",
+ "requires": {
+ "joi": "^6.10.1",
+ "jws": "^3.1.4",
+ "lodash.once": "^4.0.0",
+ "ms": "^2.0.0",
+ "xtend": "^4.0.1"
+ }
+ },
+ "jspath": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/jspath/-/jspath-0.3.4.tgz",
+ "integrity": "sha1-2J0+0uh0NP5s0ASyQskS35aXNSQ="
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ }
+ },
+ "jwa": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
+ "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
+ "requires": {
+ "buffer-equal-constant-time": "1.0.1",
+ "ecdsa-sig-formatter": "1.0.11",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "jws": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
+ "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
+ "requires": {
+ "jwa": "^1.4.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
+ },
+ "kuler": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/kuler/-/kuler-1.0.1.tgz",
+ "integrity": "sha512-J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ==",
+ "requires": {
+ "colornames": "^1.1.1"
+ }
+ },
+ "lazy": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz",
+ "integrity": "sha1-2qBoIGKCVCwIgojpdcKXwa53tpA="
+ },
+ "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="
+ },
+ "load-source-map": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/load-source-map/-/load-source-map-1.0.0.tgz",
+ "integrity": "sha1-MY9JkFzopwnft8w/FvPv47zx3QU=",
+ "requires": {
+ "in-publish": "^2.0.0",
+ "semver": "^5.3.0",
+ "source-map": "^0.5.6"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ }
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.5",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz",
+ "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw=="
+ },
+ "lodash-compat": {
+ "version": "3.10.2",
+ "resolved": "https://registry.npmjs.org/lodash-compat/-/lodash-compat-3.10.2.tgz",
+ "integrity": "sha1-xpQBKKnTD46QLNLPmf0Muk7PwYM="
+ },
+ "lodash._arraypool": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash._arraypool/-/lodash._arraypool-2.4.1.tgz",
+ "integrity": "sha1-6I7suS4ruEyQZWEv2VigcZzUf5Q="
+ },
+ "lodash._baseassign": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz",
+ "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=",
+ "dev": true,
+ "requires": {
+ "lodash._basecopy": "^3.0.0",
+ "lodash.keys": "^3.0.0"
+ },
+ "dependencies": {
+ "lodash.isarray": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
+ "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=",
+ "dev": true
+ },
+ "lodash.keys": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
+ "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
+ "dev": true,
+ "requires": {
+ "lodash._getnative": "^3.0.0",
+ "lodash.isarguments": "^3.0.0",
+ "lodash.isarray": "^3.0.0"
+ }
+ }
+ }
+ },
+ "lodash._basebind": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash._basebind/-/lodash._basebind-2.4.1.tgz",
+ "integrity": "sha1-6UC5690nwyfgqNqxtVkWxTQelXU=",
+ "requires": {
+ "lodash._basecreate": "~2.4.1",
+ "lodash._setbinddata": "~2.4.1",
+ "lodash._slice": "~2.4.1",
+ "lodash.isobject": "~2.4.1"
+ }
+ },
+ "lodash._baseclone": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-2.4.1.tgz",
+ "integrity": "sha1-MPgj5X4X43NdODvWK2Czh1Q7QYY=",
+ "requires": {
+ "lodash._getarray": "~2.4.1",
+ "lodash._releasearray": "~2.4.1",
+ "lodash._slice": "~2.4.1",
+ "lodash.assign": "~2.4.1",
+ "lodash.foreach": "~2.4.1",
+ "lodash.forown": "~2.4.1",
+ "lodash.isarray": "~2.4.1",
+ "lodash.isobject": "~2.4.1"
+ }
+ },
+ "lodash._basecopy": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
+ "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=",
+ "dev": true
+ },
+ "lodash._basecreate": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-2.4.1.tgz",
+ "integrity": "sha1-+Ob1tXip405UEXm1a47uv0oofgg=",
+ "requires": {
+ "lodash._isnative": "~2.4.1",
+ "lodash.isobject": "~2.4.1",
+ "lodash.noop": "~2.4.1"
+ }
+ },
+ "lodash._basecreatecallback": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash._basecreatecallback/-/lodash._basecreatecallback-2.4.1.tgz",
+ "integrity": "sha1-fQsmdknLKeehOdAQO3wR+uhOSFE=",
+ "requires": {
+ "lodash._setbinddata": "~2.4.1",
+ "lodash.bind": "~2.4.1",
+ "lodash.identity": "~2.4.1",
+ "lodash.support": "~2.4.1"
+ }
+ },
+ "lodash._basecreatewrapper": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash._basecreatewrapper/-/lodash._basecreatewrapper-2.4.1.tgz",
+ "integrity": "sha1-TTHy595+E0+/KAN2K4FQsyUZZm8=",
+ "requires": {
+ "lodash._basecreate": "~2.4.1",
+ "lodash._setbinddata": "~2.4.1",
+ "lodash._slice": "~2.4.1",
+ "lodash.isobject": "~2.4.1"
+ }
+ },
+ "lodash._createwrapper": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash._createwrapper/-/lodash._createwrapper-2.4.1.tgz",
+ "integrity": "sha1-UdaVeXPaTtVW43KQ2MGhjFPeFgc=",
+ "requires": {
+ "lodash._basebind": "~2.4.1",
+ "lodash._basecreatewrapper": "~2.4.1",
+ "lodash._slice": "~2.4.1",
+ "lodash.isfunction": "~2.4.1"
+ }
+ },
+ "lodash._getarray": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash._getarray/-/lodash._getarray-2.4.1.tgz",
+ "integrity": "sha1-+vH3+BD6mFolHCGHQESBCUg55e4=",
+ "requires": {
+ "lodash._arraypool": "~2.4.1"
+ }
+ },
+ "lodash._getnative": {
+ "version": "3.9.1",
+ "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
+ "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=",
+ "dev": true
+ },
+ "lodash._isiterateecall": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
+ "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=",
+ "dev": true
+ },
+ "lodash._isnative": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash._isnative/-/lodash._isnative-2.4.1.tgz",
+ "integrity": "sha1-PqZAS3hKe+g2x7V1gOHN95sUgyw="
+ },
+ "lodash._maxpoolsize": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash._maxpoolsize/-/lodash._maxpoolsize-2.4.1.tgz",
+ "integrity": "sha1-nUgvRjuOZq++WcLBTtsRcGAXIzQ="
+ },
+ "lodash._objecttypes": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz",
+ "integrity": "sha1-fAt/admKH3ZSn4kLDNsbTf7BHBE="
+ },
+ "lodash._releasearray": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash._releasearray/-/lodash._releasearray-2.4.1.tgz",
+ "integrity": "sha1-phOWMNdtFTawfdyAliiJsIL2pkE=",
+ "requires": {
+ "lodash._arraypool": "~2.4.1",
+ "lodash._maxpoolsize": "~2.4.1"
+ }
+ },
+ "lodash._setbinddata": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash._setbinddata/-/lodash._setbinddata-2.4.1.tgz",
+ "integrity": "sha1-98IAzRuS7yNrOZ7s9zxkjReqlNI=",
+ "requires": {
+ "lodash._isnative": "~2.4.1",
+ "lodash.noop": "~2.4.1"
+ }
+ },
+ "lodash._shimkeys": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz",
+ "integrity": "sha1-bpzJZm/wgfC1psl4uD4kLmlJ0gM=",
+ "requires": {
+ "lodash._objecttypes": "~2.4.1"
+ }
+ },
+ "lodash._slice": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash._slice/-/lodash._slice-2.4.1.tgz",
+ "integrity": "sha1-dFz0GlNZexj2iImFREBe+isG2Q8="
+ },
+ "lodash.assign": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-2.4.1.tgz",
+ "integrity": "sha1-hMOVlt1xGBqXsGUpE6fJZ15Jsao=",
+ "requires": {
+ "lodash._basecreatecallback": "~2.4.1",
+ "lodash._objecttypes": "~2.4.1",
+ "lodash.keys": "~2.4.1"
+ }
+ },
+ "lodash.bind": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-2.4.1.tgz",
+ "integrity": "sha1-XRn6AFyMTSNvr0dCx7eh/Kvikmc=",
+ "requires": {
+ "lodash._createwrapper": "~2.4.1",
+ "lodash._slice": "~2.4.1"
+ }
+ },
+ "lodash.clonedeep": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-2.4.1.tgz",
+ "integrity": "sha1-8pIDtAsS/uCkXTYxZIJZvrq8eGg=",
+ "requires": {
+ "lodash._baseclone": "~2.4.1",
+ "lodash._basecreatecallback": "~2.4.1"
+ }
+ },
+ "lodash.create": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz",
+ "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=",
+ "dev": true,
+ "requires": {
+ "lodash._baseassign": "^3.0.0",
+ "lodash._basecreate": "^3.0.0",
+ "lodash._isiterateecall": "^3.0.0"
+ },
+ "dependencies": {
+ "lodash._basecreate": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz",
+ "integrity": "sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=",
+ "dev": true
+ }
+ }
+ },
+ "lodash.defaultsdeep": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz",
+ "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA=="
+ },
+ "lodash.findindex": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.findindex/-/lodash.findindex-4.6.0.tgz",
+ "integrity": "sha1-oyRd7mH7m24GJLU1ElYku2nBEQY="
+ },
+ "lodash.foreach": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-2.4.1.tgz",
+ "integrity": "sha1-/j/Do0yGyUyrb5UiVgKCdB4BYwk=",
+ "requires": {
+ "lodash._basecreatecallback": "~2.4.1",
+ "lodash.forown": "~2.4.1"
+ }
+ },
+ "lodash.forown": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash.forown/-/lodash.forown-2.4.1.tgz",
+ "integrity": "sha1-eLQer+FAX6lmRZ6kGT/VAtCEUks=",
+ "requires": {
+ "lodash._basecreatecallback": "~2.4.1",
+ "lodash._objecttypes": "~2.4.1",
+ "lodash.keys": "~2.4.1"
+ }
+ },
+ "lodash.get": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk="
+ },
+ "lodash.identity": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash.identity/-/lodash.identity-2.4.1.tgz",
+ "integrity": "sha1-ZpTP+mX++TH3wxzobHRZfPVg9PE="
+ },
+ "lodash.includes": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
+ "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8="
+ },
+ "lodash.isarguments": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
+ "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=",
+ "dev": true
+ },
+ "lodash.isarray": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-2.4.1.tgz",
+ "integrity": "sha1-tSoybB9i9tfac6MdVAHfbvRPD6E=",
+ "requires": {
+ "lodash._isnative": "~2.4.1"
+ }
+ },
+ "lodash.isboolean": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
+ "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY="
+ },
+ "lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA="
+ },
+ "lodash.isfunction": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-2.4.1.tgz",
+ "integrity": "sha1-LP1XXHPkmKtX4xm3f6Aq3vE6lNE="
+ },
+ "lodash.isinteger": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
+ "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M="
+ },
+ "lodash.isnumber": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
+ "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w="
+ },
+ "lodash.isobject": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-2.4.1.tgz",
+ "integrity": "sha1-Wi5H/mmVPx7mMafrof5k0tBlWPU=",
+ "requires": {
+ "lodash._objecttypes": "~2.4.1"
+ }
+ },
+ "lodash.isplainobject": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
+ "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
+ },
+ "lodash.isstring": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
+ "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE="
+ },
+ "lodash.keys": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz",
+ "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=",
+ "requires": {
+ "lodash._isnative": "~2.4.1",
+ "lodash._shimkeys": "~2.4.1",
+ "lodash.isobject": "~2.4.1"
+ }
+ },
+ "lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
+ },
+ "lodash.noop": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash.noop/-/lodash.noop-2.4.1.tgz",
+ "integrity": "sha1-T7VPgWZS5a4Q6PcvcXo4jHMmU4o="
+ },
+ "lodash.once": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
+ "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w="
+ },
+ "lodash.reduce": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz",
+ "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs="
+ },
+ "lodash.support": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/lodash.support/-/lodash.support-2.4.1.tgz",
+ "integrity": "sha1-Mg4LZwMWc8KNeiu12eAzGkUkBRU=",
+ "requires": {
+ "lodash._isnative": "~2.4.1"
+ }
+ },
+ "logform": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz",
+ "integrity": "sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==",
+ "requires": {
+ "colors": "^1.2.1",
+ "fast-safe-stringify": "^2.0.4",
+ "fecha": "^4.2.0",
+ "ms": "^2.1.1",
+ "triple-beam": "^1.3.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"
+ }
+ },
+ "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==",
+ "requires": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "machine": {
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/machine/-/machine-10.4.0.tgz",
+ "integrity": "sha1-m1Ys5GeCEzKCijd9GQ65NrTkB7I=",
+ "requires": {
+ "convert-to-ecmascript-compatible-varname": "^0.1.0",
+ "debug": "^2.1.1",
+ "lodash": "^3.8.0",
+ "object-hash": "~0.3.0",
+ "rttc": "^7.2.1",
+ "switchback": "^2.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "lodash": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
+ "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "machinepack-http": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/machinepack-http/-/machinepack-http-2.4.0.tgz",
+ "integrity": "sha1-CnhcF9xrnBuaxAiBvu+uiudIVek=",
+ "requires": {
+ "lodash": "^3.9.2",
+ "machine": "^10.3.1",
+ "machinepack-urls": "^4.0.0",
+ "request": "^2.55.0"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
+ "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="
+ }
+ }
+ },
+ "machinepack-urls": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/machinepack-urls/-/machinepack-urls-4.1.0.tgz",
+ "integrity": "sha1-0l4y6Xw8LLiVaLqMmNIp1cMF45E=",
+ "requires": {
+ "lodash": "^3.9.2",
+ "machine": "^9.0.3"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "lodash": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
+ "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="
+ },
+ "machine": {
+ "version": "9.1.2",
+ "resolved": "https://registry.npmjs.org/machine/-/machine-9.1.2.tgz",
+ "integrity": "sha1-hL+Pt3ZqlqplqpbWbpUJ62oFqDQ=",
+ "requires": {
+ "convert-to-ecmascript-compatible-varname": "^0.1.0",
+ "debug": "^2.1.1",
+ "lodash": "^3.8.0",
+ "object-hash": "~0.3.0",
+ "rttc": "^4.0.0",
+ "switchback": "^1.1.3"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "rttc": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/rttc/-/rttc-4.5.2.tgz",
+ "integrity": "sha1-umo+komLQnTxI7usSUhddhajfLw=",
+ "requires": {
+ "lodash": "^3.8.0"
+ }
+ },
+ "switchback": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/switchback/-/switchback-1.1.3.tgz",
+ "integrity": "sha1-EscBCTSNailvc5upEO64U/i25jE=",
+ "requires": {
+ "lodash": "~2.4.1"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4="
+ }
+ }
+ }
+ }
+ },
+ "map-cache": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8="
+ },
+ "map-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+ "requires": {
+ "object-visit": "^1.0.0"
+ }
+ },
+ "mapcap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/mapcap/-/mapcap-1.0.0.tgz",
+ "integrity": "sha512-KcNlZSlFPx+r1jYZmxEbTVymG+dIctf10WmWkuhrhrblM+KMoF77HelwihL5cxYlORye79KoR4IlOOk99lUJ0g=="
+ },
+ "mathjs": {
+ "version": "3.20.2",
+ "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-3.20.2.tgz",
+ "integrity": "sha512-3f6/+uf1cUtIz1rYFz775wekl/UEDSQ3mU6xdxW7qzpvvhc2v28i3UtLsGTRB+u8OqDWoSX6Dz8gehaGFs6tCA==",
+ "requires": {
+ "complex.js": "2.0.4",
+ "decimal.js": "9.0.1",
+ "escape-latex": "^1.0.0",
+ "fraction.js": "4.0.4",
+ "javascript-natural-sort": "0.7.1",
+ "seed-random": "2.2.0",
+ "tiny-emitter": "2.0.2",
+ "typed-function": "0.10.7"
+ }
+ },
+ "measured-core": {
+ "version": "1.51.1",
+ "resolved": "https://registry.npmjs.org/measured-core/-/measured-core-1.51.1.tgz",
+ "integrity": "sha512-DZQP9SEwdqqYRvT2slMK81D/7xwdxXosZZBtLVfPSo6y5P672FBTbzHVdN4IQyUkUpcVOR9pIvtUy5Ryl7NKyg==",
+ "requires": {
+ "binary-search": "^1.3.3",
+ "optional-js": "^2.0.0"
+ }
+ },
+ "measured-reporting": {
+ "version": "1.51.1",
+ "resolved": "https://registry.npmjs.org/measured-reporting/-/measured-reporting-1.51.1.tgz",
+ "integrity": "sha512-JCt+2u6XT1I5lG3SuYqywE0e62DJuAzBcfMzWGUhIYtPQV2Vm4HiYt/durqmzsAbZV181CEs+o/jMKWJKkYIWw==",
+ "requires": {
+ "console-log-level": "^1.4.1",
+ "mapcap": "^1.0.0",
+ "measured-core": "^1.51.1",
+ "optional-js": "^2.0.0"
+ }
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
+ },
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
+ },
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "requires": {
+ "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"
+ }
+ },
+ "mime": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
+ "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
+ },
+ "mime-db": {
+ "version": "1.44.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
+ "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
+ },
+ "mime-types": {
+ "version": "2.1.27",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
+ "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
+ "requires": {
+ "mime-db": "1.44.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+ },
+ "mixin-deep": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+ "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+ "requires": {
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
+ },
+ "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==",
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
+ "mocha": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.5.3.tgz",
+ "integrity": "sha512-/6na001MJWEtYxHOV1WLfsmR4YIynkUEhBwzsb+fk2qmQ3iqsi258l/Q2MWHJMImAcNpZ8DEdYAK72NHoIQ9Eg==",
+ "dev": true,
+ "requires": {
+ "browser-stdout": "1.3.0",
+ "commander": "2.9.0",
+ "debug": "2.6.8",
+ "diff": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "glob": "7.1.1",
+ "growl": "1.9.2",
+ "he": "1.1.1",
+ "json3": "3.3.2",
+ "lodash.create": "3.1.1",
+ "mkdirp": "0.5.1",
+ "supports-color": "3.1.2"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
+ "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
+ "dev": true,
+ "requires": {
+ "graceful-readlink": ">= 1.0.0"
+ }
+ },
+ "debug": {
+ "version": "2.6.8",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
+ "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
+ "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.2",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz",
+ "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "module-details-from-path": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz",
+ "integrity": "sha1-EUyUlnPiqKNenTV4hSeqN7Z52is="
+ },
+ "moment": {
+ "version": "2.21.0",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.21.0.tgz",
+ "integrity": "sha512-TCZ36BjURTeFTM/CwRcViQlfkMvL1/vFISuNLO5GkcVm1+QHfbSiNqZuWeMFjj1/3+uAjXswgRk30j1kkLYJBQ=="
+ },
+ "moment-timezone": {
+ "version": "0.5.28",
+ "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.28.tgz",
+ "integrity": "sha512-TDJkZvAyKIVWg5EtVqRzU97w0Rb0YVbfpqyjgu6GwXCAohVRqwZjf4fOzDE6p1Ch98Sro/8hQQi65WDXW5STPw==",
+ "requires": {
+ "moment": ">= 2.9.0"
+ }
+ },
+ "monitor-event-loop-delay": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/monitor-event-loop-delay/-/monitor-event-loop-delay-1.0.0.tgz",
+ "integrity": "sha512-YRIr1exCIfBDLZle8WHOfSo7Xg3M+phcZfq9Fx1L6Abo+atGp7cge5pM7PjyBn4s1oZI/BRD4EMrzQBbPpVb5Q=="
+ },
+ "morgan": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.0.tgz",
+ "integrity": "sha1-0B+mxlhZt2/PMbPLU6OCGjEdgFE=",
+ "requires": {
+ "basic-auth": "~2.0.0",
+ "debug": "2.6.9",
+ "depd": "~1.1.1",
+ "on-finished": "~2.3.0",
+ "on-headers": "~1.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "multer": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz",
+ "integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==",
+ "requires": {
+ "append-field": "^1.0.0",
+ "busboy": "^0.2.11",
+ "concat-stream": "^1.5.2",
+ "mkdirp": "^0.5.1",
+ "object-assign": "^4.1.1",
+ "on-finished": "^2.3.0",
+ "type-is": "^1.6.4",
+ "xtend": "^4.0.0"
+ }
+ },
+ "mustache": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/mustache/-/mustache-2.3.2.tgz",
+ "integrity": "sha512-KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ=="
+ },
+ "mute-stream": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
+ },
+ "nan": {
+ "version": "2.14.1",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz",
+ "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==",
+ "optional": true
+ },
+ "nanomatch": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+ "requires": {
+ "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"
+ }
+ },
+ "native-promise-only": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz",
+ "integrity": "sha1-IKMYwwy0X3H+et+/eyHJnBRy7xE="
+ },
+ "needle": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/needle/-/needle-2.5.0.tgz",
+ "integrity": "sha512-o/qITSDR0JCyCKEQ1/1bnUXMmznxabbwi/Y4WwJElf+evwJNFNwIDMCCt5IigFVxgeGBJESLohGtIS9gEzo1fA==",
+ "requires": {
+ "debug": "^3.2.6",
+ "iconv-lite": "^0.4.4",
+ "sax": "^1.2.4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
+ }
+ }
+ },
+ "negotiator": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+ "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
+ },
+ "next-line": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/next-line/-/next-line-1.1.0.tgz",
+ "integrity": "sha1-/K5XhTBStqm66CCOQN19PC0wRgM="
+ },
+ "nocache": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/nocache/-/nocache-2.0.0.tgz",
+ "integrity": "sha1-ICtIAhoMTL3i34DeFaF0Q8i0OYA="
+ },
+ "node-cron": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/node-cron/-/node-cron-2.0.3.tgz",
+ "integrity": "sha512-eJI+QitXlwcgiZwNNSRbqsjeZMp5shyajMR81RZCqeW0ZDEj4zU9tpd4nTh/1JsBiKbF8d08FCewiipDmVIYjg==",
+ "requires": {
+ "opencollective-postinstall": "^2.0.0",
+ "tz-offset": "0.0.1"
+ }
+ },
+ "nodemailer": {
+ "version": "6.4.6",
+ "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.4.6.tgz",
+ "integrity": "sha512-/kJ+FYVEm2HuUlw87hjSqTss+GU35D4giOpdSfGp7DO+5h6RlJj7R94YaYHOkoxu1CSaM0d3WRBtCzwXrY6MKA=="
+ },
+ "normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ }
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
+ },
+ "notepack.io": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/notepack.io/-/notepack.io-2.1.3.tgz",
+ "integrity": "sha512-AgSt+cP5XMooho1Ppn8NB3FFaVWefV+qZoZncYTUSch2GAEwlYLcIIbT5YVkMlFeNHnfwOvc4HDlbvrB5BRxXA=="
+ },
+ "npm": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/npm/-/npm-5.7.1.tgz",
+ "integrity": "sha512-r1grvv6mcEt+nlMzMWPc5n/z5q8NNuBWj0TGFp1PBSFCl6ubnAoUGBsucYsnZYT7MOJn0ha1ptEjmdBoAdJ+SA==",
+ "requires": {
+ "JSONStream": "^1.3.2",
+ "abbrev": "~1.1.1",
+ "ansi-regex": "~3.0.0",
+ "ansicolors": "~0.3.2",
+ "ansistyles": "~0.1.3",
+ "aproba": "~1.2.0",
+ "archy": "~1.0.0",
+ "bin-links": "^1.1.0",
+ "bluebird": "~3.5.1",
+ "cacache": "^10.0.4",
+ "call-limit": "~1.1.0",
+ "chownr": "~1.0.1",
+ "cli-table2": "~0.2.0",
+ "cmd-shim": "~2.0.2",
+ "columnify": "~1.5.4",
+ "config-chain": "~1.1.11",
+ "debuglog": "*",
+ "detect-indent": "~5.0.0",
+ "dezalgo": "~1.0.3",
+ "editor": "~1.0.0",
+ "find-npm-prefix": "^1.0.2",
+ "fs-vacuum": "~1.2.10",
+ "fs-write-stream-atomic": "~1.0.10",
+ "gentle-fs": "^2.0.1",
+ "glob": "~7.1.2",
+ "graceful-fs": "~4.1.11",
+ "has-unicode": "~2.0.1",
+ "hosted-git-info": "~2.5.0",
+ "iferr": "~0.1.5",
+ "imurmurhash": "*",
+ "inflight": "~1.0.6",
+ "inherits": "~2.0.3",
+ "ini": "^1.3.5",
+ "init-package-json": "~1.10.1",
+ "is-cidr": "~1.0.0",
+ "lazy-property": "~1.0.0",
+ "libcipm": "^1.3.3",
+ "libnpx": "~9.7.1",
+ "lockfile": "~1.0.3",
+ "lodash._baseindexof": "*",
+ "lodash._baseuniq": "~4.6.0",
+ "lodash._bindcallback": "*",
+ "lodash._cacheindexof": "*",
+ "lodash._createcache": "*",
+ "lodash._getnative": "*",
+ "lodash.clonedeep": "~4.5.0",
+ "lodash.restparam": "*",
+ "lodash.union": "~4.6.0",
+ "lodash.uniq": "~4.5.0",
+ "lodash.without": "~4.4.0",
+ "lru-cache": "~4.1.1",
+ "meant": "~1.0.1",
+ "mississippi": "^2.0.0",
+ "mkdirp": "~0.5.1",
+ "move-concurrently": "^1.0.1",
+ "nopt": "~4.0.1",
+ "normalize-package-data": "~2.4.0",
+ "npm-cache-filename": "~1.0.2",
+ "npm-install-checks": "~3.0.0",
+ "npm-lifecycle": "~2.0.0",
+ "npm-package-arg": "~6.0.0",
+ "npm-packlist": "~1.1.10",
+ "npm-profile": "^3.0.1",
+ "npm-registry-client": "~8.5.0",
+ "npm-user-validate": "~1.0.0",
+ "npmlog": "~4.1.2",
+ "once": "~1.4.0",
+ "opener": "~1.4.3",
+ "osenv": "^0.1.5",
+ "pacote": "^7.3.3",
+ "path-is-inside": "~1.0.2",
+ "promise-inflight": "~1.0.1",
+ "qrcode-terminal": "~0.11.0",
+ "query-string": "^5.1.0",
+ "qw": "~1.0.1",
+ "read": "~1.0.7",
+ "read-cmd-shim": "~1.0.1",
+ "read-installed": "~4.0.3",
+ "read-package-json": "~2.0.12",
+ "read-package-tree": "~5.1.6",
+ "readable-stream": "^2.3.4",
+ "readdir-scoped-modules": "*",
+ "request": "~2.83.0",
+ "retry": "~0.10.1",
+ "rimraf": "~2.6.2",
+ "safe-buffer": "~5.1.1",
+ "semver": "^5.5.0",
+ "sha": "~2.0.1",
+ "slide": "~1.1.6",
+ "sorted-object": "~2.0.1",
+ "sorted-union-stream": "~2.1.3",
+ "ssri": "^5.2.4",
+ "strip-ansi": "~4.0.0",
+ "tar": "^4.3.3",
+ "text-table": "~0.2.0",
+ "uid-number": "0.0.6",
+ "umask": "~1.1.0",
+ "unique-filename": "~1.1.0",
+ "unpipe": "~1.0.0",
+ "update-notifier": "~2.3.0",
+ "uuid": "^3.2.1",
+ "validate-npm-package-license": "*",
+ "validate-npm-package-name": "~3.0.0",
+ "which": "~1.3.0",
+ "worker-farm": "^1.5.2",
+ "wrappy": "~1.0.2",
+ "write-file-atomic": "~2.1.0"
+ },
+ "dependencies": {
+ "JSONStream": {
+ "version": "1.3.2",
+ "bundled": true,
+ "requires": {
+ "jsonparse": "^1.2.0",
+ "through": ">=2.2.7 <3"
+ },
+ "dependencies": {
+ "jsonparse": {
+ "version": "1.3.1",
+ "bundled": true
+ },
+ "through": {
+ "version": "2.3.8",
+ "bundled": true
+ }
+ }
+ },
+ "abbrev": {
+ "version": "1.1.1",
+ "bundled": true
+ },
+ "ansi-regex": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "ansicolors": {
+ "version": "0.3.2",
+ "bundled": true
+ },
+ "ansistyles": {
+ "version": "0.1.3",
+ "bundled": true
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "bundled": true
+ },
+ "archy": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "bin-links": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "bluebird": "^3.5.0",
+ "cmd-shim": "^2.0.2",
+ "fs-write-stream-atomic": "^1.0.10",
+ "gentle-fs": "^2.0.0",
+ "graceful-fs": "^4.1.11",
+ "slide": "^1.1.6"
+ }
+ },
+ "bluebird": {
+ "version": "3.5.1",
+ "bundled": true
+ },
+ "cacache": {
+ "version": "10.0.4",
+ "bundled": 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"
+ },
+ "dependencies": {
+ "y18n": {
+ "version": "4.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "call-limit": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "chownr": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "cli-table2": {
+ "version": "0.2.0",
+ "bundled": true,
+ "requires": {
+ "colors": "^1.1.2",
+ "lodash": "^3.10.1",
+ "string-width": "^1.0.1"
+ },
+ "dependencies": {
+ "colors": {
+ "version": "1.1.2",
+ "bundled": true,
+ "optional": true
+ },
+ "lodash": {
+ "version": "3.10.1",
+ "bundled": true
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ },
+ "dependencies": {
+ "code-point-at": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ },
+ "dependencies": {
+ "number-is-nan": {
+ "version": "1.0.1",
+ "bundled": true
+ }
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "bundled": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "bundled": true
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "cmd-shim": {
+ "version": "2.0.2",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "mkdirp": "~0.5.0"
+ }
+ },
+ "columnify": {
+ "version": "1.5.4",
+ "bundled": true,
+ "requires": {
+ "strip-ansi": "^3.0.0",
+ "wcwidth": "^1.0.0"
+ },
+ "dependencies": {
+ "strip-ansi": {
+ "version": "3.0.1",
+ "bundled": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "bundled": true
+ }
+ }
+ },
+ "wcwidth": {
+ "version": "1.0.1",
+ "bundled": true,
+ "requires": {
+ "defaults": "^1.0.3"
+ },
+ "dependencies": {
+ "defaults": {
+ "version": "1.0.3",
+ "bundled": true,
+ "requires": {
+ "clone": "^1.0.2"
+ },
+ "dependencies": {
+ "clone": {
+ "version": "1.0.2",
+ "bundled": true
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "config-chain": {
+ "version": "1.1.11",
+ "bundled": true,
+ "requires": {
+ "ini": "^1.3.4",
+ "proto-list": "~1.2.1"
+ },
+ "dependencies": {
+ "proto-list": {
+ "version": "1.2.4",
+ "bundled": true
+ }
+ }
+ },
+ "debuglog": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "detect-indent": {
+ "version": "5.0.0",
+ "bundled": true
+ },
+ "dezalgo": {
+ "version": "1.0.3",
+ "bundled": true,
+ "requires": {
+ "asap": "^2.0.0",
+ "wrappy": "1"
+ },
+ "dependencies": {
+ "asap": {
+ "version": "2.0.5",
+ "bundled": true
+ }
+ }
+ },
+ "editor": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "find-npm-prefix": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "fs-vacuum": {
+ "version": "1.2.10",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "path-is-inside": "^1.0.1",
+ "rimraf": "^2.5.2"
+ }
+ },
+ "fs-write-stream-atomic": {
+ "version": "1.0.10",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "iferr": "^0.1.5",
+ "imurmurhash": "^0.1.4",
+ "readable-stream": "1 || 2"
+ }
+ },
+ "gentle-fs": {
+ "version": "2.0.1",
+ "bundled": true,
+ "requires": {
+ "aproba": "^1.1.2",
+ "fs-vacuum": "^1.2.10",
+ "graceful-fs": "^4.1.11",
+ "iferr": "^0.1.5",
+ "mkdirp": "^0.5.1",
+ "path-is-inside": "^1.0.2",
+ "read-cmd-shim": "^1.0.1",
+ "slide": "^1.1.6"
+ }
+ },
+ "glob": {
+ "version": "7.1.2",
+ "bundled": 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"
+ },
+ "dependencies": {
+ "fs.realpath": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "bundled": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "1.1.8",
+ "bundled": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ },
+ "dependencies": {
+ "balanced-match": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "bundled": true
+ }
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "bundled": true
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "bundled": true
+ },
+ "hosted-git-info": {
+ "version": "2.5.0",
+ "bundled": true
+ },
+ "iferr": {
+ "version": "0.1.5",
+ "bundled": true
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "bundled": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "bundled": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "bundled": true
+ },
+ "ini": {
+ "version": "1.3.5",
+ "bundled": true
+ },
+ "init-package-json": {
+ "version": "1.10.1",
+ "bundled": true,
+ "requires": {
+ "glob": "^7.1.1",
+ "npm-package-arg": "^4.0.0 || ^5.0.0",
+ "promzard": "^0.3.0",
+ "read": "~1.0.1",
+ "read-package-json": "1 || 2",
+ "semver": "2.x || 3.x || 4 || 5",
+ "validate-npm-package-license": "^3.0.1",
+ "validate-npm-package-name": "^3.0.0"
+ },
+ "dependencies": {
+ "npm-package-arg": {
+ "version": "5.1.2",
+ "bundled": true,
+ "requires": {
+ "hosted-git-info": "^2.4.2",
+ "osenv": "^0.1.4",
+ "semver": "^5.1.0",
+ "validate-npm-package-name": "^3.0.0"
+ }
+ },
+ "promzard": {
+ "version": "0.3.0",
+ "bundled": true,
+ "requires": {
+ "read": "1"
+ }
+ }
+ }
+ },
+ "is-cidr": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "cidr-regex": "1.0.6"
+ },
+ "dependencies": {
+ "cidr-regex": {
+ "version": "1.0.6",
+ "bundled": true
+ }
+ }
+ },
+ "lazy-property": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "libcipm": {
+ "version": "1.3.3",
+ "bundled": true,
+ "requires": {
+ "bin-links": "^1.1.0",
+ "bluebird": "^3.5.1",
+ "find-npm-prefix": "^1.0.2",
+ "graceful-fs": "^4.1.11",
+ "lock-verify": "^2.0.0",
+ "npm-lifecycle": "^2.0.0",
+ "npm-logical-tree": "^1.2.1",
+ "npm-package-arg": "^6.0.0",
+ "pacote": "^7.3.3",
+ "protoduck": "^5.0.0",
+ "read-package-json": "^2.0.12",
+ "rimraf": "^2.6.2",
+ "worker-farm": "^1.5.2"
+ },
+ "dependencies": {
+ "find-npm-prefix": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "lock-verify": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "npm-package-arg": "^5.1.2",
+ "semver": "^5.4.1"
+ },
+ "dependencies": {
+ "npm-package-arg": {
+ "version": "5.1.2",
+ "bundled": true,
+ "requires": {
+ "hosted-git-info": "^2.4.2",
+ "osenv": "^0.1.4",
+ "semver": "^5.1.0",
+ "validate-npm-package-name": "^3.0.0"
+ }
+ }
+ }
+ },
+ "npm-logical-tree": {
+ "version": "1.2.1",
+ "bundled": true
+ },
+ "protoduck": {
+ "version": "5.0.0",
+ "bundled": true,
+ "requires": {
+ "genfun": "^4.0.1"
+ },
+ "dependencies": {
+ "genfun": {
+ "version": "4.0.1",
+ "bundled": true
+ }
+ }
+ },
+ "worker-farm": {
+ "version": "1.5.2",
+ "bundled": true,
+ "requires": {
+ "errno": "^0.1.4",
+ "xtend": "^4.0.1"
+ },
+ "dependencies": {
+ "errno": {
+ "version": "0.1.7",
+ "bundled": true,
+ "requires": {
+ "prr": "~1.0.1"
+ },
+ "dependencies": {
+ "prr": {
+ "version": "1.0.1",
+ "bundled": true
+ }
+ }
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "libnpx": {
+ "version": "9.7.1",
+ "bundled": true,
+ "requires": {
+ "dotenv": "^4.0.0",
+ "npm-package-arg": "^5.1.2",
+ "rimraf": "^2.6.1",
+ "safe-buffer": "^5.1.0",
+ "update-notifier": "^2.2.0",
+ "which": "^1.2.14",
+ "y18n": "^3.2.1",
+ "yargs": "^8.0.2"
+ },
+ "dependencies": {
+ "dotenv": {
+ "version": "4.0.0",
+ "bundled": true
+ },
+ "npm-package-arg": {
+ "version": "5.1.2",
+ "bundled": true,
+ "requires": {
+ "hosted-git-info": "^2.4.2",
+ "osenv": "^0.1.4",
+ "semver": "^5.1.0",
+ "validate-npm-package-name": "^3.0.0"
+ }
+ },
+ "y18n": {
+ "version": "3.2.1",
+ "bundled": true
+ },
+ "yargs": {
+ "version": "8.0.2",
+ "bundled": true,
+ "requires": {
+ "camelcase": "^4.1.0",
+ "cliui": "^3.2.0",
+ "decamelize": "^1.1.1",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^2.0.0",
+ "read-pkg-up": "^2.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",
+ "yargs-parser": "^7.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "4.1.0",
+ "bundled": true
+ },
+ "cliui": {
+ "version": "3.2.0",
+ "bundled": true,
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wrap-ansi": "^2.0.0"
+ },
+ "dependencies": {
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ },
+ "dependencies": {
+ "code-point-at": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ },
+ "dependencies": {
+ "number-is-nan": {
+ "version": "1.0.1",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "bundled": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "bundled": true
+ }
+ }
+ },
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ }
+ }
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "bundled": true
+ },
+ "get-caller-file": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "os-locale": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "execa": "^0.7.0",
+ "lcid": "^1.0.0",
+ "mem": "^1.1.0"
+ },
+ "dependencies": {
+ "execa": {
+ "version": "0.7.0",
+ "bundled": true,
+ "requires": {
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.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": "5.1.0",
+ "bundled": true,
+ "requires": {
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "dependencies": {
+ "shebang-command": {
+ "version": "1.2.0",
+ "bundled": true,
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ },
+ "dependencies": {
+ "shebang-regex": {
+ "version": "1.0.0",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "bundled": true,
+ "requires": {
+ "path-key": "^2.0.0"
+ },
+ "dependencies": {
+ "path-key": {
+ "version": "2.0.1",
+ "bundled": true
+ }
+ }
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "bundled": true
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "lcid": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "invert-kv": "^1.0.0"
+ },
+ "dependencies": {
+ "invert-kv": {
+ "version": "1.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "mem": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "mimic-fn": "^1.0.0"
+ },
+ "dependencies": {
+ "mimic-fn": {
+ "version": "1.1.0",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "read-pkg-up": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "find-up": "^2.0.0",
+ "read-pkg": "^2.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "locate-path": "^2.0.0"
+ },
+ "dependencies": {
+ "locate-path": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "dependencies": {
+ "p-locate": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "p-limit": "^1.1.0"
+ },
+ "dependencies": {
+ "p-limit": {
+ "version": "1.1.0",
+ "bundled": true
+ }
+ }
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "read-pkg": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "load-json-file": "^2.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^2.0.0"
+ },
+ "dependencies": {
+ "load-json-file": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "strip-bom": "^3.0.0"
+ },
+ "dependencies": {
+ "parse-json": {
+ "version": "2.2.0",
+ "bundled": true,
+ "requires": {
+ "error-ex": "^1.2.0"
+ },
+ "dependencies": {
+ "error-ex": {
+ "version": "1.3.1",
+ "bundled": true,
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ },
+ "dependencies": {
+ "is-arrayish": {
+ "version": "0.2.1",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "pify": {
+ "version": "2.3.0",
+ "bundled": true
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "path-type": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "pify": "^2.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "2.3.0",
+ "bundled": true
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "bundled": true
+ },
+ "require-main-filename": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "bundled": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "yargs-parser": {
+ "version": "7.0.0",
+ "bundled": true,
+ "requires": {
+ "camelcase": "^4.1.0"
+ }
+ }
+ }
+ }
+ }
+ },
+ "lockfile": {
+ "version": "1.0.3",
+ "bundled": true
+ },
+ "lodash._baseindexof": {
+ "version": "3.1.0",
+ "bundled": true
+ },
+ "lodash._baseuniq": {
+ "version": "4.6.0",
+ "bundled": true,
+ "requires": {
+ "lodash._createset": "~4.0.0",
+ "lodash._root": "~3.0.0"
+ },
+ "dependencies": {
+ "lodash._createset": {
+ "version": "4.0.3",
+ "bundled": true
+ },
+ "lodash._root": {
+ "version": "3.0.1",
+ "bundled": true
+ }
+ }
+ },
+ "lodash._bindcallback": {
+ "version": "3.0.1",
+ "bundled": true
+ },
+ "lodash._cacheindexof": {
+ "version": "3.0.2",
+ "bundled": true
+ },
+ "lodash._createcache": {
+ "version": "3.1.2",
+ "bundled": true,
+ "requires": {
+ "lodash._getnative": "^3.0.0"
+ }
+ },
+ "lodash._getnative": {
+ "version": "3.9.1",
+ "bundled": true
+ },
+ "lodash.clonedeep": {
+ "version": "4.5.0",
+ "bundled": true
+ },
+ "lodash.restparam": {
+ "version": "3.6.1",
+ "bundled": true
+ },
+ "lodash.union": {
+ "version": "4.6.0",
+ "bundled": true
+ },
+ "lodash.uniq": {
+ "version": "4.5.0",
+ "bundled": true
+ },
+ "lodash.without": {
+ "version": "4.4.0",
+ "bundled": true
+ },
+ "lru-cache": {
+ "version": "4.1.1",
+ "bundled": true,
+ "requires": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ },
+ "dependencies": {
+ "pseudomap": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "bundled": true
+ }
+ }
+ },
+ "meant": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "mississippi": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "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"
+ },
+ "dependencies": {
+ "concat-stream": {
+ "version": "1.6.0",
+ "bundled": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ },
+ "dependencies": {
+ "typedarray": {
+ "version": "0.0.6",
+ "bundled": true
+ }
+ }
+ },
+ "duplexify": {
+ "version": "3.5.3",
+ "bundled": true,
+ "requires": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ },
+ "dependencies": {
+ "stream-shift": {
+ "version": "1.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "end-of-stream": {
+ "version": "1.4.1",
+ "bundled": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "flush-write-stream": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.4"
+ }
+ },
+ "from2": {
+ "version": "2.3.0",
+ "bundled": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0"
+ }
+ },
+ "parallel-transform": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "cyclist": "~0.2.2",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.1.5"
+ },
+ "dependencies": {
+ "cyclist": {
+ "version": "0.2.2",
+ "bundled": true
+ }
+ }
+ },
+ "pump": {
+ "version": "2.0.1",
+ "bundled": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "pumpify": {
+ "version": "1.4.0",
+ "bundled": true,
+ "requires": {
+ "duplexify": "^3.5.3",
+ "inherits": "^2.0.3",
+ "pump": "^2.0.0"
+ }
+ },
+ "stream-each": {
+ "version": "1.2.2",
+ "bundled": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "stream-shift": "^1.0.0"
+ },
+ "dependencies": {
+ "stream-shift": {
+ "version": "1.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "through2": {
+ "version": "2.0.3",
+ "bundled": true,
+ "requires": {
+ "readable-stream": "^2.1.5",
+ "xtend": "~4.0.1"
+ },
+ "dependencies": {
+ "xtend": {
+ "version": "4.0.1",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "bundled": true,
+ "requires": {
+ "minimist": "0.0.8"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "0.0.8",
+ "bundled": true
+ }
+ }
+ },
+ "move-concurrently": {
+ "version": "1.0.1",
+ "bundled": true,
+ "requires": {
+ "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"
+ },
+ "dependencies": {
+ "copy-concurrently": {
+ "version": "1.0.5",
+ "bundled": true,
+ "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"
+ }
+ },
+ "run-queue": {
+ "version": "1.0.3",
+ "bundled": true,
+ "requires": {
+ "aproba": "^1.1.1"
+ }
+ }
+ }
+ },
+ "node-gyp": {
+ "version": "3.6.2",
+ "bundled": true,
+ "requires": {
+ "fstream": "^1.0.0",
+ "glob": "^7.0.3",
+ "graceful-fs": "^4.1.2",
+ "minimatch": "^3.0.2",
+ "mkdirp": "^0.5.0",
+ "nopt": "2 || 3",
+ "npmlog": "0 || 1 || 2 || 3 || 4",
+ "osenv": "0",
+ "request": "2",
+ "rimraf": "2",
+ "semver": "~5.3.0",
+ "tar": "^2.0.0",
+ "which": "1"
+ },
+ "dependencies": {
+ "fstream": {
+ "version": "1.0.11",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "inherits": "~2.0.0",
+ "mkdirp": ">=0.5 0",
+ "rimraf": "2"
+ }
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "bundled": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "1.1.8",
+ "bundled": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ },
+ "dependencies": {
+ "balanced-match": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "nopt": {
+ "version": "3.0.6",
+ "bundled": true,
+ "requires": {
+ "abbrev": "1"
+ }
+ },
+ "semver": {
+ "version": "5.3.0",
+ "bundled": true
+ },
+ "tar": {
+ "version": "2.2.1",
+ "bundled": true,
+ "requires": {
+ "block-stream": "*",
+ "fstream": "^1.0.2",
+ "inherits": "2"
+ },
+ "dependencies": {
+ "block-stream": {
+ "version": "0.0.9",
+ "bundled": true,
+ "requires": {
+ "inherits": "~2.0.0"
+ }
+ }
+ }
+ }
+ }
+ },
+ "nopt": {
+ "version": "4.0.1",
+ "bundled": true,
+ "requires": {
+ "abbrev": "1",
+ "osenv": "^0.1.4"
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.4.0",
+ "bundled": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "is-builtin-module": "^1.0.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ },
+ "dependencies": {
+ "is-builtin-module": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "builtin-modules": "^1.0.0"
+ },
+ "dependencies": {
+ "builtin-modules": {
+ "version": "1.1.1",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "npm-cache-filename": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "npm-install-checks": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "semver": "^2.3.0 || 3.x || 4 || 5"
+ }
+ },
+ "npm-lifecycle": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "byline": "^5.0.0",
+ "graceful-fs": "^4.1.11",
+ "node-gyp": "^3.6.2",
+ "resolve-from": "^4.0.0",
+ "slide": "^1.1.6",
+ "uid-number": "0.0.6",
+ "umask": "^1.1.0",
+ "which": "^1.3.0"
+ },
+ "dependencies": {
+ "byline": {
+ "version": "5.0.0",
+ "bundled": true
+ },
+ "resolve-from": {
+ "version": "4.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "npm-package-arg": {
+ "version": "6.0.0",
+ "bundled": true,
+ "requires": {
+ "hosted-git-info": "^2.5.0",
+ "osenv": "^0.1.4",
+ "semver": "^5.4.1",
+ "validate-npm-package-name": "^3.0.0"
+ }
+ },
+ "npm-packlist": {
+ "version": "1.1.10",
+ "bundled": true,
+ "requires": {
+ "ignore-walk": "^3.0.1",
+ "npm-bundled": "^1.0.1"
+ },
+ "dependencies": {
+ "ignore-walk": {
+ "version": "3.0.1",
+ "bundled": true,
+ "requires": {
+ "minimatch": "^3.0.4"
+ },
+ "dependencies": {
+ "minimatch": {
+ "version": "3.0.4",
+ "bundled": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "1.1.8",
+ "bundled": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ },
+ "dependencies": {
+ "balanced-match": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "bundled": true
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "npm-bundled": {
+ "version": "1.0.3",
+ "bundled": true
+ }
+ }
+ },
+ "npm-profile": {
+ "version": "3.0.1",
+ "bundled": true,
+ "requires": {
+ "aproba": "^1.1.2",
+ "make-fetch-happen": "^2.5.0"
+ },
+ "dependencies": {
+ "make-fetch-happen": {
+ "version": "2.6.0",
+ "bundled": true,
+ "requires": {
+ "agentkeepalive": "^3.3.0",
+ "cacache": "^10.0.0",
+ "http-cache-semantics": "^3.8.0",
+ "http-proxy-agent": "^2.0.0",
+ "https-proxy-agent": "^2.1.0",
+ "lru-cache": "^4.1.1",
+ "mississippi": "^1.2.0",
+ "node-fetch-npm": "^2.0.2",
+ "promise-retry": "^1.1.1",
+ "socks-proxy-agent": "^3.0.1",
+ "ssri": "^5.0.0"
+ },
+ "dependencies": {
+ "agentkeepalive": {
+ "version": "3.3.0",
+ "bundled": true,
+ "requires": {
+ "humanize-ms": "^1.2.1"
+ },
+ "dependencies": {
+ "humanize-ms": {
+ "version": "1.2.1",
+ "bundled": true,
+ "requires": {
+ "ms": "^2.0.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.1",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "http-cache-semantics": {
+ "version": "3.8.1",
+ "bundled": true
+ },
+ "http-proxy-agent": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "agent-base": "4",
+ "debug": "2"
+ },
+ "dependencies": {
+ "agent-base": {
+ "version": "4.2.0",
+ "bundled": true,
+ "requires": {
+ "es6-promisify": "^5.0.0"
+ },
+ "dependencies": {
+ "es6-promisify": {
+ "version": "5.0.0",
+ "bundled": true,
+ "requires": {
+ "es6-promise": "^4.0.3"
+ },
+ "dependencies": {
+ "es6-promise": {
+ "version": "4.2.4",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "bundled": true,
+ "requires": {
+ "ms": "2.0.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.0.0",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "https-proxy-agent": {
+ "version": "2.1.1",
+ "bundled": true,
+ "requires": {
+ "agent-base": "^4.1.0",
+ "debug": "^3.1.0"
+ },
+ "dependencies": {
+ "agent-base": {
+ "version": "4.2.0",
+ "bundled": true,
+ "requires": {
+ "es6-promisify": "^5.0.0"
+ },
+ "dependencies": {
+ "es6-promisify": {
+ "version": "5.0.0",
+ "bundled": true,
+ "requires": {
+ "es6-promise": "^4.0.3"
+ },
+ "dependencies": {
+ "es6-promise": {
+ "version": "4.2.4",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "debug": {
+ "version": "3.1.0",
+ "bundled": true,
+ "requires": {
+ "ms": "2.0.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.0.0",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "mississippi": {
+ "version": "1.3.1",
+ "bundled": true,
+ "requires": {
+ "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": "^1.0.0",
+ "pumpify": "^1.3.3",
+ "stream-each": "^1.1.0",
+ "through2": "^2.0.0"
+ },
+ "dependencies": {
+ "concat-stream": {
+ "version": "1.6.0",
+ "bundled": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ },
+ "dependencies": {
+ "typedarray": {
+ "version": "0.0.6",
+ "bundled": true
+ }
+ }
+ },
+ "duplexify": {
+ "version": "3.5.3",
+ "bundled": true,
+ "requires": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ },
+ "dependencies": {
+ "stream-shift": {
+ "version": "1.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "end-of-stream": {
+ "version": "1.4.1",
+ "bundled": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "flush-write-stream": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.4"
+ }
+ },
+ "from2": {
+ "version": "2.3.0",
+ "bundled": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0"
+ }
+ },
+ "parallel-transform": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "cyclist": "~0.2.2",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.1.5"
+ },
+ "dependencies": {
+ "cyclist": {
+ "version": "0.2.2",
+ "bundled": true
+ }
+ }
+ },
+ "pump": {
+ "version": "1.0.3",
+ "bundled": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "pumpify": {
+ "version": "1.4.0",
+ "bundled": true,
+ "requires": {
+ "duplexify": "^3.5.3",
+ "inherits": "^2.0.3",
+ "pump": "^2.0.0"
+ },
+ "dependencies": {
+ "pump": {
+ "version": "2.0.1",
+ "bundled": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ }
+ }
+ },
+ "stream-each": {
+ "version": "1.2.2",
+ "bundled": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "stream-shift": "^1.0.0"
+ },
+ "dependencies": {
+ "stream-shift": {
+ "version": "1.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "through2": {
+ "version": "2.0.3",
+ "bundled": true,
+ "requires": {
+ "readable-stream": "^2.1.5",
+ "xtend": "~4.0.1"
+ },
+ "dependencies": {
+ "xtend": {
+ "version": "4.0.1",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "node-fetch-npm": {
+ "version": "2.0.2",
+ "bundled": true,
+ "requires": {
+ "encoding": "^0.1.11",
+ "json-parse-better-errors": "^1.0.0",
+ "safe-buffer": "^5.1.1"
+ },
+ "dependencies": {
+ "encoding": {
+ "version": "0.1.12",
+ "bundled": true,
+ "requires": {
+ "iconv-lite": "~0.4.13"
+ },
+ "dependencies": {
+ "iconv-lite": {
+ "version": "0.4.19",
+ "bundled": true
+ }
+ }
+ },
+ "json-parse-better-errors": {
+ "version": "1.0.1",
+ "bundled": true
+ }
+ }
+ },
+ "promise-retry": {
+ "version": "1.1.1",
+ "bundled": true,
+ "requires": {
+ "err-code": "^1.0.0",
+ "retry": "^0.10.0"
+ },
+ "dependencies": {
+ "err-code": {
+ "version": "1.1.2",
+ "bundled": true
+ }
+ }
+ },
+ "socks-proxy-agent": {
+ "version": "3.0.1",
+ "bundled": true,
+ "requires": {
+ "agent-base": "^4.1.0",
+ "socks": "^1.1.10"
+ },
+ "dependencies": {
+ "agent-base": {
+ "version": "4.2.0",
+ "bundled": true,
+ "requires": {
+ "es6-promisify": "^5.0.0"
+ },
+ "dependencies": {
+ "es6-promisify": {
+ "version": "5.0.0",
+ "bundled": true,
+ "requires": {
+ "es6-promise": "^4.0.3"
+ },
+ "dependencies": {
+ "es6-promise": {
+ "version": "4.2.4",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "socks": {
+ "version": "1.1.10",
+ "bundled": true,
+ "requires": {
+ "ip": "^1.1.4",
+ "smart-buffer": "^1.0.13"
+ },
+ "dependencies": {
+ "ip": {
+ "version": "1.1.5",
+ "bundled": true
+ },
+ "smart-buffer": {
+ "version": "1.1.15",
+ "bundled": true
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "npm-registry-client": {
+ "version": "8.5.0",
+ "bundled": true,
+ "requires": {
+ "concat-stream": "^1.5.2",
+ "graceful-fs": "^4.1.6",
+ "normalize-package-data": "~1.0.1 || ^2.0.0",
+ "npm-package-arg": "^3.0.0 || ^4.0.0 || ^5.0.0",
+ "npmlog": "2 || ^3.1.0 || ^4.0.0",
+ "once": "^1.3.3",
+ "request": "^2.74.0",
+ "retry": "^0.10.0",
+ "semver": "2 >=2.2.1 || 3.x || 4 || 5",
+ "slide": "^1.1.3",
+ "ssri": "^4.1.2"
+ },
+ "dependencies": {
+ "concat-stream": {
+ "version": "1.6.0",
+ "bundled": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ },
+ "dependencies": {
+ "typedarray": {
+ "version": "0.0.6",
+ "bundled": true
+ }
+ }
+ },
+ "npm-package-arg": {
+ "version": "5.1.2",
+ "bundled": true,
+ "requires": {
+ "hosted-git-info": "^2.4.2",
+ "osenv": "^0.1.4",
+ "semver": "^5.1.0",
+ "validate-npm-package-name": "^3.0.0"
+ }
+ },
+ "ssri": {
+ "version": "4.1.6",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "^5.1.0"
+ }
+ }
+ }
+ },
+ "npm-user-validate": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "bundled": true,
+ "requires": {
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
+ },
+ "dependencies": {
+ "are-we-there-yet": {
+ "version": "1.1.4",
+ "bundled": true,
+ "requires": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ },
+ "dependencies": {
+ "delegates": {
+ "version": "1.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "bundled": 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"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "bundled": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "bundled": true
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ },
+ "dependencies": {
+ "code-point-at": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ },
+ "dependencies": {
+ "number-is-nan": {
+ "version": "1.0.1",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "bundled": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "bundled": true
+ }
+ }
+ },
+ "wide-align": {
+ "version": "1.1.2",
+ "bundled": true,
+ "requires": {
+ "string-width": "^1.0.2"
+ }
+ }
+ }
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "bundled": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "opener": {
+ "version": "1.4.3",
+ "bundled": true
+ },
+ "osenv": {
+ "version": "0.1.5",
+ "bundled": true,
+ "requires": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ },
+ "dependencies": {
+ "os-homedir": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "bundled": true
+ }
+ }
+ },
+ "pacote": {
+ "version": "7.3.3",
+ "bundled": true,
+ "requires": {
+ "bluebird": "^3.5.1",
+ "cacache": "^10.0.2",
+ "get-stream": "^3.0.0",
+ "glob": "^7.1.2",
+ "lru-cache": "^4.1.1",
+ "make-fetch-happen": "^2.6.0",
+ "minimatch": "^3.0.4",
+ "mississippi": "^2.0.0",
+ "normalize-package-data": "^2.4.0",
+ "npm-package-arg": "^6.0.0",
+ "npm-packlist": "^1.1.10",
+ "npm-pick-manifest": "^2.1.0",
+ "osenv": "^0.1.4",
+ "promise-inflight": "^1.0.1",
+ "promise-retry": "^1.1.1",
+ "protoduck": "^5.0.0",
+ "safe-buffer": "^5.1.1",
+ "semver": "^5.5.0",
+ "ssri": "^5.2.1",
+ "tar": "^4.3.3",
+ "unique-filename": "^1.1.0",
+ "which": "^1.3.0"
+ },
+ "dependencies": {
+ "get-stream": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "make-fetch-happen": {
+ "version": "2.6.0",
+ "bundled": true,
+ "requires": {
+ "agentkeepalive": "^3.3.0",
+ "cacache": "^10.0.0",
+ "http-cache-semantics": "^3.8.0",
+ "http-proxy-agent": "^2.0.0",
+ "https-proxy-agent": "^2.1.0",
+ "lru-cache": "^4.1.1",
+ "mississippi": "^1.2.0",
+ "node-fetch-npm": "^2.0.2",
+ "promise-retry": "^1.1.1",
+ "socks-proxy-agent": "^3.0.1",
+ "ssri": "^5.0.0"
+ },
+ "dependencies": {
+ "agentkeepalive": {
+ "version": "3.3.0",
+ "bundled": true,
+ "requires": {
+ "humanize-ms": "^1.2.1"
+ },
+ "dependencies": {
+ "humanize-ms": {
+ "version": "1.2.1",
+ "bundled": true,
+ "requires": {
+ "ms": "^2.0.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.1",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "http-cache-semantics": {
+ "version": "3.8.1",
+ "bundled": true
+ },
+ "http-proxy-agent": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "agent-base": "4",
+ "debug": "2"
+ },
+ "dependencies": {
+ "agent-base": {
+ "version": "4.2.0",
+ "bundled": true,
+ "requires": {
+ "es6-promisify": "^5.0.0"
+ },
+ "dependencies": {
+ "es6-promisify": {
+ "version": "5.0.0",
+ "bundled": true,
+ "requires": {
+ "es6-promise": "^4.0.3"
+ },
+ "dependencies": {
+ "es6-promise": {
+ "version": "4.2.4",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "bundled": true,
+ "requires": {
+ "ms": "2.0.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.0.0",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "https-proxy-agent": {
+ "version": "2.1.1",
+ "bundled": true,
+ "requires": {
+ "agent-base": "^4.1.0",
+ "debug": "^3.1.0"
+ },
+ "dependencies": {
+ "agent-base": {
+ "version": "4.2.0",
+ "bundled": true,
+ "requires": {
+ "es6-promisify": "^5.0.0"
+ },
+ "dependencies": {
+ "es6-promisify": {
+ "version": "5.0.0",
+ "bundled": true,
+ "requires": {
+ "es6-promise": "^4.0.3"
+ },
+ "dependencies": {
+ "es6-promise": {
+ "version": "4.2.4",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "debug": {
+ "version": "3.1.0",
+ "bundled": true,
+ "requires": {
+ "ms": "2.0.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.0.0",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "mississippi": {
+ "version": "1.3.1",
+ "bundled": true,
+ "requires": {
+ "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": "^1.0.0",
+ "pumpify": "^1.3.3",
+ "stream-each": "^1.1.0",
+ "through2": "^2.0.0"
+ },
+ "dependencies": {
+ "concat-stream": {
+ "version": "1.6.0",
+ "bundled": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ },
+ "dependencies": {
+ "typedarray": {
+ "version": "0.0.6",
+ "bundled": true
+ }
+ }
+ },
+ "duplexify": {
+ "version": "3.5.3",
+ "bundled": true,
+ "requires": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ },
+ "dependencies": {
+ "stream-shift": {
+ "version": "1.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "end-of-stream": {
+ "version": "1.4.1",
+ "bundled": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "flush-write-stream": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.4"
+ }
+ },
+ "from2": {
+ "version": "2.3.0",
+ "bundled": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0"
+ }
+ },
+ "parallel-transform": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "cyclist": "~0.2.2",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.1.5"
+ },
+ "dependencies": {
+ "cyclist": {
+ "version": "0.2.2",
+ "bundled": true
+ }
+ }
+ },
+ "pump": {
+ "version": "1.0.3",
+ "bundled": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "pumpify": {
+ "version": "1.4.0",
+ "bundled": true,
+ "requires": {
+ "duplexify": "^3.5.3",
+ "inherits": "^2.0.3",
+ "pump": "^2.0.0"
+ },
+ "dependencies": {
+ "pump": {
+ "version": "2.0.1",
+ "bundled": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ }
+ }
+ },
+ "stream-each": {
+ "version": "1.2.2",
+ "bundled": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "stream-shift": "^1.0.0"
+ },
+ "dependencies": {
+ "stream-shift": {
+ "version": "1.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "through2": {
+ "version": "2.0.3",
+ "bundled": true,
+ "requires": {
+ "readable-stream": "^2.1.5",
+ "xtend": "~4.0.1"
+ },
+ "dependencies": {
+ "xtend": {
+ "version": "4.0.1",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "node-fetch-npm": {
+ "version": "2.0.2",
+ "bundled": true,
+ "requires": {
+ "encoding": "^0.1.11",
+ "json-parse-better-errors": "^1.0.0",
+ "safe-buffer": "^5.1.1"
+ },
+ "dependencies": {
+ "encoding": {
+ "version": "0.1.12",
+ "bundled": true,
+ "requires": {
+ "iconv-lite": "~0.4.13"
+ },
+ "dependencies": {
+ "iconv-lite": {
+ "version": "0.4.19",
+ "bundled": true
+ }
+ }
+ },
+ "json-parse-better-errors": {
+ "version": "1.0.1",
+ "bundled": true
+ }
+ }
+ },
+ "socks-proxy-agent": {
+ "version": "3.0.1",
+ "bundled": true,
+ "requires": {
+ "agent-base": "^4.1.0",
+ "socks": "^1.1.10"
+ },
+ "dependencies": {
+ "agent-base": {
+ "version": "4.2.0",
+ "bundled": true,
+ "requires": {
+ "es6-promisify": "^5.0.0"
+ },
+ "dependencies": {
+ "es6-promisify": {
+ "version": "5.0.0",
+ "bundled": true,
+ "requires": {
+ "es6-promise": "^4.0.3"
+ },
+ "dependencies": {
+ "es6-promise": {
+ "version": "4.2.4",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "socks": {
+ "version": "1.1.10",
+ "bundled": true,
+ "requires": {
+ "ip": "^1.1.4",
+ "smart-buffer": "^1.0.13"
+ },
+ "dependencies": {
+ "ip": {
+ "version": "1.1.5",
+ "bundled": true
+ },
+ "smart-buffer": {
+ "version": "1.1.15",
+ "bundled": true
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "bundled": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "1.1.11",
+ "bundled": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ },
+ "dependencies": {
+ "balanced-match": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "mississippi": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "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"
+ },
+ "dependencies": {
+ "concat-stream": {
+ "version": "1.6.0",
+ "bundled": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ },
+ "dependencies": {
+ "typedarray": {
+ "version": "0.0.6",
+ "bundled": true
+ }
+ }
+ },
+ "duplexify": {
+ "version": "3.5.3",
+ "bundled": true,
+ "requires": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ },
+ "dependencies": {
+ "stream-shift": {
+ "version": "1.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "end-of-stream": {
+ "version": "1.4.1",
+ "bundled": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "flush-write-stream": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.4"
+ }
+ },
+ "from2": {
+ "version": "2.3.0",
+ "bundled": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0"
+ }
+ },
+ "parallel-transform": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "cyclist": "~0.2.2",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.1.5"
+ },
+ "dependencies": {
+ "cyclist": {
+ "version": "0.2.2",
+ "bundled": true
+ }
+ }
+ },
+ "pump": {
+ "version": "2.0.1",
+ "bundled": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "pumpify": {
+ "version": "1.4.0",
+ "bundled": true,
+ "requires": {
+ "duplexify": "^3.5.3",
+ "inherits": "^2.0.3",
+ "pump": "^2.0.0"
+ }
+ },
+ "stream-each": {
+ "version": "1.2.2",
+ "bundled": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "stream-shift": "^1.0.0"
+ },
+ "dependencies": {
+ "stream-shift": {
+ "version": "1.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "through2": {
+ "version": "2.0.3",
+ "bundled": true,
+ "requires": {
+ "readable-stream": "^2.1.5",
+ "xtend": "~4.0.1"
+ },
+ "dependencies": {
+ "xtend": {
+ "version": "4.0.1",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "npm-pick-manifest": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "npm-package-arg": "^6.0.0",
+ "semver": "^5.4.1"
+ }
+ },
+ "promise-retry": {
+ "version": "1.1.1",
+ "bundled": true,
+ "requires": {
+ "err-code": "^1.0.0",
+ "retry": "^0.10.0"
+ },
+ "dependencies": {
+ "err-code": {
+ "version": "1.1.2",
+ "bundled": true
+ }
+ }
+ },
+ "protoduck": {
+ "version": "5.0.0",
+ "bundled": true,
+ "requires": {
+ "genfun": "^4.0.1"
+ },
+ "dependencies": {
+ "genfun": {
+ "version": "4.0.1",
+ "bundled": true
+ }
+ }
+ },
+ "semver": {
+ "version": "5.5.0",
+ "bundled": true
+ }
+ }
+ },
+ "path-is-inside": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "promise-inflight": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "qrcode-terminal": {
+ "version": "0.11.0",
+ "bundled": true
+ },
+ "query-string": {
+ "version": "5.1.0",
+ "bundled": true,
+ "requires": {
+ "decode-uri-component": "^0.2.0",
+ "object-assign": "^4.1.0",
+ "strict-uri-encode": "^1.0.0"
+ },
+ "dependencies": {
+ "decode-uri-component": {
+ "version": "0.2.0",
+ "bundled": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "bundled": true
+ },
+ "strict-uri-encode": {
+ "version": "1.1.0",
+ "bundled": true
+ }
+ }
+ },
+ "qw": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "read": {
+ "version": "1.0.7",
+ "bundled": true,
+ "requires": {
+ "mute-stream": "~0.0.4"
+ },
+ "dependencies": {
+ "mute-stream": {
+ "version": "0.0.7",
+ "bundled": true
+ }
+ }
+ },
+ "read-cmd-shim": {
+ "version": "1.0.1",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "^4.1.2"
+ }
+ },
+ "read-installed": {
+ "version": "4.0.3",
+ "bundled": true,
+ "requires": {
+ "debuglog": "^1.0.1",
+ "graceful-fs": "^4.1.2",
+ "read-package-json": "^2.0.0",
+ "readdir-scoped-modules": "^1.0.0",
+ "semver": "2 || 3 || 4 || 5",
+ "slide": "~1.1.3",
+ "util-extend": "^1.0.1"
+ },
+ "dependencies": {
+ "util-extend": {
+ "version": "1.0.3",
+ "bundled": true
+ }
+ }
+ },
+ "read-package-json": {
+ "version": "2.0.12",
+ "bundled": true,
+ "requires": {
+ "glob": "^7.1.1",
+ "graceful-fs": "^4.1.2",
+ "json-parse-better-errors": "^1.0.0",
+ "normalize-package-data": "^2.0.0",
+ "slash": "^1.0.0"
+ },
+ "dependencies": {
+ "json-parse-better-errors": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "slash": {
+ "version": "1.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "read-package-tree": {
+ "version": "5.1.6",
+ "bundled": true,
+ "requires": {
+ "debuglog": "^1.0.1",
+ "dezalgo": "^1.0.0",
+ "once": "^1.3.0",
+ "read-package-json": "^2.0.0",
+ "readdir-scoped-modules": "^1.0.0"
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.4",
+ "bundled": true,
+ "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.0.3",
+ "util-deprecate": "~1.0.1"
+ },
+ "dependencies": {
+ "core-util-is": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "string_decoder": {
+ "version": "1.0.3",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "bundled": true
+ }
+ }
+ },
+ "readdir-scoped-modules": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "debuglog": "^1.0.1",
+ "dezalgo": "^1.0.0",
+ "graceful-fs": "^4.1.2",
+ "once": "^1.3.0"
+ }
+ },
+ "request": {
+ "version": "2.83.0",
+ "bundled": true,
+ "requires": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.6.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.5",
+ "extend": "~3.0.1",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.1",
+ "har-validator": "~5.0.3",
+ "hawk": "~6.0.2",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.17",
+ "oauth-sign": "~0.8.2",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.1",
+ "safe-buffer": "^5.1.1",
+ "stringstream": "~0.0.5",
+ "tough-cookie": "~2.3.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.1.0"
+ },
+ "dependencies": {
+ "aws-sign2": {
+ "version": "0.7.0",
+ "bundled": true
+ },
+ "aws4": {
+ "version": "1.6.0",
+ "bundled": true
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "bundled": true
+ },
+ "combined-stream": {
+ "version": "1.0.5",
+ "bundled": true,
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ },
+ "dependencies": {
+ "delayed-stream": {
+ "version": "1.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "extend": {
+ "version": "3.0.1",
+ "bundled": true
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "bundled": true
+ },
+ "form-data": {
+ "version": "2.3.1",
+ "bundled": true,
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.5",
+ "mime-types": "^2.1.12"
+ },
+ "dependencies": {
+ "asynckit": {
+ "version": "0.4.0",
+ "bundled": true
+ }
+ }
+ },
+ "har-validator": {
+ "version": "5.0.3",
+ "bundled": true,
+ "requires": {
+ "ajv": "^5.1.0",
+ "har-schema": "^2.0.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "5.2.3",
+ "bundled": true,
+ "requires": {
+ "co": "^4.6.0",
+ "fast-deep-equal": "^1.0.0",
+ "json-schema-traverse": "^0.3.0",
+ "json-stable-stringify": "^1.0.1"
+ },
+ "dependencies": {
+ "co": {
+ "version": "4.6.0",
+ "bundled": true
+ },
+ "fast-deep-equal": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "json-schema-traverse": {
+ "version": "0.3.1",
+ "bundled": true
+ },
+ "json-stable-stringify": {
+ "version": "1.0.1",
+ "bundled": true,
+ "requires": {
+ "jsonify": "~0.0.0"
+ },
+ "dependencies": {
+ "jsonify": {
+ "version": "0.0.0",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "hawk": {
+ "version": "6.0.2",
+ "bundled": true,
+ "requires": {
+ "boom": "4.x.x",
+ "cryptiles": "3.x.x",
+ "hoek": "4.x.x",
+ "sntp": "2.x.x"
+ },
+ "dependencies": {
+ "boom": {
+ "version": "4.3.1",
+ "bundled": true,
+ "requires": {
+ "hoek": "4.x.x"
+ }
+ },
+ "cryptiles": {
+ "version": "3.1.2",
+ "bundled": true,
+ "requires": {
+ "boom": "5.x.x"
+ },
+ "dependencies": {
+ "boom": {
+ "version": "5.2.0",
+ "bundled": true,
+ "requires": {
+ "hoek": "4.x.x"
+ }
+ }
+ }
+ },
+ "hoek": {
+ "version": "4.2.0",
+ "bundled": true
+ },
+ "sntp": {
+ "version": "2.0.2",
+ "bundled": true,
+ "requires": {
+ "hoek": "4.x.x"
+ }
+ }
+ }
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "bundled": true,
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ },
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "bundled": true,
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ },
+ "dependencies": {
+ "extsprintf": {
+ "version": "1.3.0",
+ "bundled": true
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "bundled": true
+ },
+ "verror": {
+ "version": "1.10.0",
+ "bundled": true,
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ },
+ "dependencies": {
+ "core-util-is": {
+ "version": "1.0.2",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "sshpk": {
+ "version": "1.13.1",
+ "bundled": true,
+ "requires": {
+ "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",
+ "tweetnacl": "~0.14.0"
+ },
+ "dependencies": {
+ "asn1": {
+ "version": "0.2.3",
+ "bundled": true
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.1",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "bundled": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "ecc-jsbn": {
+ "version": "0.1.1",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "jsbn": "~0.1.0"
+ }
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "bundled": true,
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "bundled": true,
+ "optional": true
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "bundled": true,
+ "optional": true
+ }
+ }
+ }
+ }
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "bundled": true
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "bundled": true
+ },
+ "mime-types": {
+ "version": "2.1.17",
+ "bundled": true,
+ "requires": {
+ "mime-db": "~1.30.0"
+ },
+ "dependencies": {
+ "mime-db": {
+ "version": "1.30.0",
+ "bundled": true
+ }
+ }
+ },
+ "oauth-sign": {
+ "version": "0.8.2",
+ "bundled": true
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "bundled": true
+ },
+ "qs": {
+ "version": "6.5.1",
+ "bundled": true
+ },
+ "stringstream": {
+ "version": "0.0.5",
+ "bundled": true
+ },
+ "tough-cookie": {
+ "version": "2.3.3",
+ "bundled": true,
+ "requires": {
+ "punycode": "^1.4.1"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.4.1",
+ "bundled": true
+ }
+ }
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ }
+ }
+ },
+ "retry": {
+ "version": "0.10.1",
+ "bundled": true
+ },
+ "rimraf": {
+ "version": "2.6.2",
+ "bundled": true,
+ "requires": {
+ "glob": "^7.0.5"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.1",
+ "bundled": true
+ },
+ "semver": {
+ "version": "5.5.0",
+ "bundled": true
+ },
+ "sha": {
+ "version": "2.0.1",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "slide": {
+ "version": "1.1.6",
+ "bundled": true
+ },
+ "sorted-object": {
+ "version": "2.0.1",
+ "bundled": true
+ },
+ "sorted-union-stream": {
+ "version": "2.1.3",
+ "bundled": true,
+ "requires": {
+ "from2": "^1.3.0",
+ "stream-iterate": "^1.1.0"
+ },
+ "dependencies": {
+ "from2": {
+ "version": "1.3.0",
+ "bundled": true,
+ "requires": {
+ "inherits": "~2.0.1",
+ "readable-stream": "~1.1.10"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "1.1.14",
+ "bundled": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ },
+ "dependencies": {
+ "core-util-is": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "bundled": true
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "stream-iterate": {
+ "version": "1.2.0",
+ "bundled": true,
+ "requires": {
+ "readable-stream": "^2.1.5",
+ "stream-shift": "^1.0.0"
+ },
+ "dependencies": {
+ "stream-shift": {
+ "version": "1.0.0",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "ssri": {
+ "version": "5.2.4",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "bundled": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "tar": {
+ "version": "4.3.3",
+ "bundled": true,
+ "requires": {
+ "chownr": "^1.0.1",
+ "fs-minipass": "^1.2.3",
+ "minipass": "^2.2.1",
+ "minizlib": "^1.1.0",
+ "mkdirp": "^0.5.0",
+ "yallist": "^3.0.2"
+ },
+ "dependencies": {
+ "fs-minipass": {
+ "version": "1.2.5",
+ "bundled": true,
+ "requires": {
+ "minipass": "^2.2.1"
+ }
+ },
+ "minipass": {
+ "version": "2.2.1",
+ "bundled": true,
+ "requires": {
+ "yallist": "^3.0.0"
+ }
+ },
+ "minizlib": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "minipass": "^2.2.1"
+ }
+ },
+ "yallist": {
+ "version": "3.0.2",
+ "bundled": true
+ }
+ }
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "bundled": true
+ },
+ "uid-number": {
+ "version": "0.0.6",
+ "bundled": true
+ },
+ "umask": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "unique-filename": {
+ "version": "1.1.0",
+ "bundled": true,
+ "requires": {
+ "unique-slug": "^2.0.0"
+ },
+ "dependencies": {
+ "unique-slug": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "imurmurhash": "^0.1.4"
+ }
+ }
+ }
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "update-notifier": {
+ "version": "2.3.0",
+ "bundled": true,
+ "requires": {
+ "boxen": "^1.2.1",
+ "chalk": "^2.0.1",
+ "configstore": "^3.0.0",
+ "import-lazy": "^2.1.0",
+ "is-installed-globally": "^0.1.0",
+ "is-npm": "^1.0.0",
+ "latest-version": "^3.0.0",
+ "semver-diff": "^2.0.0",
+ "xdg-basedir": "^3.0.0"
+ },
+ "dependencies": {
+ "boxen": {
+ "version": "1.2.1",
+ "bundled": true,
+ "requires": {
+ "ansi-align": "^2.0.0",
+ "camelcase": "^4.0.0",
+ "chalk": "^2.0.1",
+ "cli-boxes": "^1.0.0",
+ "string-width": "^2.0.0",
+ "term-size": "^1.2.0",
+ "widest-line": "^1.0.0"
+ },
+ "dependencies": {
+ "ansi-align": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "string-width": "^2.0.0"
+ }
+ },
+ "camelcase": {
+ "version": "4.1.0",
+ "bundled": true
+ },
+ "cli-boxes": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "bundled": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "term-size": {
+ "version": "1.2.0",
+ "bundled": true,
+ "requires": {
+ "execa": "^0.7.0"
+ },
+ "dependencies": {
+ "execa": {
+ "version": "0.7.0",
+ "bundled": true,
+ "requires": {
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.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": "5.1.0",
+ "bundled": true,
+ "requires": {
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "dependencies": {
+ "shebang-command": {
+ "version": "1.2.0",
+ "bundled": true,
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ },
+ "dependencies": {
+ "shebang-regex": {
+ "version": "1.0.0",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "bundled": true,
+ "requires": {
+ "path-key": "^2.0.0"
+ },
+ "dependencies": {
+ "path-key": {
+ "version": "2.0.1",
+ "bundled": true
+ }
+ }
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "bundled": true
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "widest-line": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "string-width": "^1.0.1"
+ },
+ "dependencies": {
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ },
+ "dependencies": {
+ "code-point-at": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ },
+ "dependencies": {
+ "number-is-nan": {
+ "version": "1.0.1",
+ "bundled": true
+ }
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "bundled": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "bundled": true
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "chalk": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "ansi-styles": "^3.1.0",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.0",
+ "bundled": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ },
+ "dependencies": {
+ "color-convert": {
+ "version": "1.9.0",
+ "bundled": true,
+ "requires": {
+ "color-name": "^1.1.1"
+ },
+ "dependencies": {
+ "color-name": {
+ "version": "1.1.3",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "bundled": true
+ },
+ "supports-color": {
+ "version": "4.4.0",
+ "bundled": true,
+ "requires": {
+ "has-flag": "^2.0.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "2.0.0",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "configstore": {
+ "version": "3.1.1",
+ "bundled": true,
+ "requires": {
+ "dot-prop": "^4.1.0",
+ "graceful-fs": "^4.1.2",
+ "make-dir": "^1.0.0",
+ "unique-string": "^1.0.0",
+ "write-file-atomic": "^2.0.0",
+ "xdg-basedir": "^3.0.0"
+ },
+ "dependencies": {
+ "dot-prop": {
+ "version": "4.2.0",
+ "bundled": true,
+ "requires": {
+ "is-obj": "^1.0.0"
+ },
+ "dependencies": {
+ "is-obj": {
+ "version": "1.0.1",
+ "bundled": true
+ }
+ }
+ },
+ "make-dir": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "pify": "^2.3.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "2.3.0",
+ "bundled": true
+ }
+ }
+ },
+ "unique-string": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "crypto-random-string": "^1.0.0"
+ },
+ "dependencies": {
+ "crypto-random-string": {
+ "version": "1.0.0",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "import-lazy": {
+ "version": "2.1.0",
+ "bundled": true
+ },
+ "is-installed-globally": {
+ "version": "0.1.0",
+ "bundled": true,
+ "requires": {
+ "global-dirs": "^0.1.0",
+ "is-path-inside": "^1.0.0"
+ },
+ "dependencies": {
+ "global-dirs": {
+ "version": "0.1.0",
+ "bundled": true,
+ "requires": {
+ "ini": "^1.3.4"
+ }
+ },
+ "is-path-inside": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "path-is-inside": "^1.0.1"
+ }
+ }
+ }
+ },
+ "is-npm": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "latest-version": {
+ "version": "3.1.0",
+ "bundled": true,
+ "requires": {
+ "package-json": "^4.0.0"
+ },
+ "dependencies": {
+ "package-json": {
+ "version": "4.0.1",
+ "bundled": true,
+ "requires": {
+ "got": "^6.7.1",
+ "registry-auth-token": "^3.0.1",
+ "registry-url": "^3.0.3",
+ "semver": "^5.1.0"
+ },
+ "dependencies": {
+ "got": {
+ "version": "6.7.1",
+ "bundled": true,
+ "requires": {
+ "create-error-class": "^3.0.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^3.0.0",
+ "is-redirect": "^1.0.0",
+ "is-retry-allowed": "^1.0.0",
+ "is-stream": "^1.0.0",
+ "lowercase-keys": "^1.0.0",
+ "safe-buffer": "^5.0.1",
+ "timed-out": "^4.0.0",
+ "unzip-response": "^2.0.1",
+ "url-parse-lax": "^1.0.0"
+ },
+ "dependencies": {
+ "create-error-class": {
+ "version": "3.0.2",
+ "bundled": true,
+ "requires": {
+ "capture-stack-trace": "^1.0.0"
+ },
+ "dependencies": {
+ "capture-stack-trace": {
+ "version": "1.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "duplexer3": {
+ "version": "0.1.4",
+ "bundled": true
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "is-redirect": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "is-retry-allowed": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "lowercase-keys": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "timed-out": {
+ "version": "4.0.1",
+ "bundled": true
+ },
+ "unzip-response": {
+ "version": "2.0.1",
+ "bundled": true
+ },
+ "url-parse-lax": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "prepend-http": "^1.0.1"
+ },
+ "dependencies": {
+ "prepend-http": {
+ "version": "1.0.4",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "registry-auth-token": {
+ "version": "3.3.1",
+ "bundled": true,
+ "requires": {
+ "rc": "^1.1.6",
+ "safe-buffer": "^5.0.1"
+ },
+ "dependencies": {
+ "rc": {
+ "version": "1.2.1",
+ "bundled": true,
+ "requires": {
+ "deep-extend": "~0.4.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "dependencies": {
+ "deep-extend": {
+ "version": "0.4.2",
+ "bundled": true
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "bundled": true
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "bundled": true
+ }
+ }
+ }
+ }
+ },
+ "registry-url": {
+ "version": "3.1.0",
+ "bundled": true,
+ "requires": {
+ "rc": "^1.0.1"
+ },
+ "dependencies": {
+ "rc": {
+ "version": "1.2.1",
+ "bundled": true,
+ "requires": {
+ "deep-extend": "~0.4.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "dependencies": {
+ "deep-extend": {
+ "version": "0.4.2",
+ "bundled": true
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "bundled": true
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "bundled": true
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "semver-diff": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "semver": "^5.0.3"
+ }
+ },
+ "xdg-basedir": {
+ "version": "3.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "uuid": {
+ "version": "3.2.1",
+ "bundled": true
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.1",
+ "bundled": true,
+ "requires": {
+ "spdx-correct": "~1.0.0",
+ "spdx-expression-parse": "~1.0.0"
+ },
+ "dependencies": {
+ "spdx-correct": {
+ "version": "1.0.2",
+ "bundled": true,
+ "requires": {
+ "spdx-license-ids": "^1.0.2"
+ },
+ "dependencies": {
+ "spdx-license-ids": {
+ "version": "1.2.2",
+ "bundled": true
+ }
+ }
+ },
+ "spdx-expression-parse": {
+ "version": "1.0.4",
+ "bundled": true
+ }
+ }
+ },
+ "validate-npm-package-name": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "builtins": "^1.0.3"
+ },
+ "dependencies": {
+ "builtins": {
+ "version": "1.0.3",
+ "bundled": true
+ }
+ }
+ },
+ "which": {
+ "version": "1.3.0",
+ "bundled": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ },
+ "dependencies": {
+ "isexe": {
+ "version": "2.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "worker-farm": {
+ "version": "1.5.2",
+ "bundled": true,
+ "requires": {
+ "errno": "^0.1.4",
+ "xtend": "^4.0.1"
+ },
+ "dependencies": {
+ "errno": {
+ "version": "0.1.7",
+ "bundled": true,
+ "requires": {
+ "prr": "~1.0.1"
+ },
+ "dependencies": {
+ "prr": {
+ "version": "1.0.1",
+ "bundled": true
+ }
+ }
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "bundled": true
+ }
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "write-file-atomic": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "graceful-fs": "^4.1.11",
+ "imurmurhash": "^0.1.4",
+ "slide": "^1.1.5"
+ }
+ }
+ }
+ },
+ "nssocket": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/nssocket/-/nssocket-0.6.0.tgz",
+ "integrity": "sha1-Wflvb/MhVm8zxw99vu7N/cBxVPo=",
+ "requires": {
+ "eventemitter2": "~0.4.14",
+ "lazy": "~1.0.11"
+ },
+ "dependencies": {
+ "eventemitter2": {
+ "version": "0.4.14",
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
+ "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas="
+ }
+ }
+ },
+ "nyc": {
+ "version": "11.5.0",
+ "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.5.0.tgz",
+ "integrity": "sha512-xIYK189By0YiM5/T4TviHu3J7bV7lCj5WYJfyZK3z03QgAaQ60WcLaJuXf0zhKoI6PBnUR92ZpSwBICCrgSBGg==",
+ "dev": true,
+ "requires": {
+ "archy": "^1.0.0",
+ "arrify": "^1.0.1",
+ "caching-transform": "^1.0.0",
+ "convert-source-map": "^1.5.1",
+ "debug-log": "^1.0.1",
+ "default-require-extensions": "^1.0.0",
+ "find-cache-dir": "^0.1.1",
+ "find-up": "^2.1.0",
+ "foreground-child": "^1.5.3",
+ "glob": "^7.0.6",
+ "istanbul-lib-coverage": "^1.1.2",
+ "istanbul-lib-hook": "^1.1.0",
+ "istanbul-lib-instrument": "^1.9.2",
+ "istanbul-lib-report": "^1.1.3",
+ "istanbul-lib-source-maps": "^1.2.3",
+ "istanbul-reports": "^1.1.4",
+ "md5-hex": "^1.2.0",
+ "merge-source-map": "^1.0.2",
+ "micromatch": "^2.3.11",
+ "mkdirp": "^0.5.0",
+ "resolve-from": "^2.0.0",
+ "rimraf": "^2.5.4",
+ "signal-exit": "^3.0.1",
+ "spawn-wrap": "^1.4.2",
+ "test-exclude": "^4.2.0",
+ "yargs": "^10.0.3",
+ "yargs-parser": "^8.0.0"
+ },
+ "dependencies": {
+ "align-text": {
+ "version": "0.1.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "kind-of": "^3.0.2",
+ "longest": "^1.0.1",
+ "repeat-string": "^1.5.2"
+ }
+ },
+ "amdefine": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "bundled": true,
+ "dev": true
+ },
+ "append-transform": {
+ "version": "0.4.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "default-require-extensions": "^1.0.0"
+ }
+ },
+ "archy": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "arr-diff": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "arr-flatten": "^1.0.1"
+ }
+ },
+ "arr-flatten": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.2.1",
+ "bundled": true,
+ "dev": true
+ },
+ "arrify": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "async": {
+ "version": "1.5.2",
+ "bundled": true,
+ "dev": true
+ },
+ "babel-code-frame": {
+ "version": "6.26.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.2"
+ }
+ },
+ "babel-generator": {
+ "version": "6.26.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "detect-indent": "^4.0.0",
+ "jsesc": "^1.3.0",
+ "lodash": "^4.17.4",
+ "source-map": "^0.5.7",
+ "trim-right": "^1.0.1"
+ }
+ },
+ "babel-messages": {
+ "version": "6.23.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-runtime": {
+ "version": "6.26.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.11.0"
+ }
+ },
+ "babel-template": {
+ "version": "6.26.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "lodash": "^4.17.4"
+ }
+ },
+ "babel-traverse": {
+ "version": "6.26.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "^6.26.0",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "debug": "^2.6.8",
+ "globals": "^9.18.0",
+ "invariant": "^2.2.2",
+ "lodash": "^4.17.4"
+ }
+ },
+ "babel-types": {
+ "version": "6.26.0",
+ "bundled": true,
+ "dev": true,
+ "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",
+ "bundled": true,
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "1.8.5",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "expand-range": "^1.8.1",
+ "preserve": "^0.2.0",
+ "repeat-element": "^1.1.2"
+ }
+ },
+ "builtin-modules": {
+ "version": "1.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "caching-transform": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "md5-hex": "^1.2.0",
+ "mkdirp": "^0.5.1",
+ "write-file-atomic": "^1.1.4"
+ }
+ },
+ "camelcase": {
+ "version": "1.2.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "center-align": {
+ "version": "0.1.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "align-text": "^0.1.3",
+ "lazy-cache": "^1.0.3"
+ }
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "bundled": true,
+ "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"
+ }
+ },
+ "cliui": {
+ "version": "2.1.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "center-align": "^0.1.1",
+ "right-align": "^0.1.1",
+ "wordwrap": "0.0.2"
+ },
+ "dependencies": {
+ "wordwrap": {
+ "version": "0.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "commondir": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "convert-source-map": {
+ "version": "1.5.1",
+ "bundled": true,
+ "dev": true
+ },
+ "core-js": {
+ "version": "2.5.3",
+ "bundled": true,
+ "dev": true
+ },
+ "cross-spawn": {
+ "version": "4.0.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "lru-cache": "^4.0.1",
+ "which": "^1.2.9"
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "debug-log": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "bundled": true,
+ "dev": true
+ },
+ "default-require-extensions": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "strip-bom": "^2.0.0"
+ }
+ },
+ "detect-indent": {
+ "version": "4.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "repeating": "^2.0.0"
+ }
+ },
+ "error-ex": {
+ "version": "1.3.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "bundled": true,
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "execa": {
+ "version": "0.7.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.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": "5.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ }
+ }
+ },
+ "expand-brackets": {
+ "version": "0.1.5",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-posix-bracket": "^0.1.0"
+ }
+ },
+ "expand-range": {
+ "version": "1.8.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "fill-range": "^2.1.0"
+ }
+ },
+ "extglob": {
+ "version": "0.3.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ },
+ "filename-regex": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "fill-range": {
+ "version": "2.2.3",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-number": "^2.1.0",
+ "isobject": "^2.0.0",
+ "randomatic": "^1.1.3",
+ "repeat-element": "^1.1.2",
+ "repeat-string": "^1.5.2"
+ }
+ },
+ "find-cache-dir": {
+ "version": "0.1.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "commondir": "^1.0.1",
+ "mkdirp": "^0.5.1",
+ "pkg-dir": "^1.0.0"
+ }
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "locate-path": "^2.0.0"
+ }
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "for-own": {
+ "version": "0.1.5",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "for-in": "^1.0.1"
+ }
+ },
+ "foreground-child": {
+ "version": "1.5.6",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^4",
+ "signal-exit": "^3.0.0"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "get-caller-file": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "glob": {
+ "version": "7.1.2",
+ "bundled": true,
+ "dev": 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"
+ }
+ },
+ "glob-base": {
+ "version": "0.3.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "glob-parent": "^2.0.0",
+ "is-glob": "^2.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-glob": "^2.0.0"
+ }
+ },
+ "globals": {
+ "version": "9.18.0",
+ "bundled": true,
+ "dev": true
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "bundled": true,
+ "dev": true
+ },
+ "handlebars": {
+ "version": "4.0.11",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "async": "^1.4.0",
+ "optimist": "^0.6.1",
+ "source-map": "^0.4.4",
+ "uglify-js": "^2.6"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.4.4",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "amdefine": ">=0.0.4"
+ }
+ }
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "hosted-git-info": {
+ "version": "2.5.0",
+ "bundled": true,
+ "dev": true
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "bundled": true,
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "bundled": true,
+ "dev": true
+ },
+ "invariant": {
+ "version": "2.2.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "invert-kv": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "bundled": true,
+ "dev": true
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "bundled": true,
+ "dev": true
+ },
+ "is-builtin-module": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "builtin-modules": "^1.0.0"
+ }
+ },
+ "is-dotfile": {
+ "version": "1.0.3",
+ "bundled": true,
+ "dev": true
+ },
+ "is-equal-shallow": {
+ "version": "0.1.3",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-primitive": "^2.0.0"
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "is-extglob": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "is-finite": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ },
+ "is-number": {
+ "version": "2.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ }
+ },
+ "is-posix-bracket": {
+ "version": "0.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "is-primitive": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "bundled": true,
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "isobject": {
+ "version": "2.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ },
+ "istanbul-lib-coverage": {
+ "version": "1.1.2",
+ "bundled": true,
+ "dev": true
+ },
+ "istanbul-lib-hook": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "append-transform": "^0.4.0"
+ }
+ },
+ "istanbul-lib-instrument": {
+ "version": "1.9.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "babel-generator": "^6.18.0",
+ "babel-template": "^6.16.0",
+ "babel-traverse": "^6.18.0",
+ "babel-types": "^6.18.0",
+ "babylon": "^6.18.0",
+ "istanbul-lib-coverage": "^1.1.2",
+ "semver": "^5.3.0"
+ }
+ },
+ "istanbul-lib-report": {
+ "version": "1.1.3",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "istanbul-lib-coverage": "^1.1.2",
+ "mkdirp": "^0.5.1",
+ "path-parse": "^1.0.5",
+ "supports-color": "^3.1.2"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "3.2.3",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "istanbul-lib-source-maps": {
+ "version": "1.2.3",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "debug": "^3.1.0",
+ "istanbul-lib-coverage": "^1.1.2",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.6.1",
+ "source-map": "^0.5.3"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "istanbul-reports": {
+ "version": "1.1.4",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "handlebars": "^4.0.3"
+ }
+ },
+ "js-tokens": {
+ "version": "3.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "jsesc": {
+ "version": "1.3.0",
+ "bundled": true,
+ "dev": true
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ },
+ "lazy-cache": {
+ "version": "1.0.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "lcid": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "invert-kv": "^1.0.0"
+ }
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "strip-bom": "^2.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "dependencies": {
+ "path-exists": {
+ "version": "3.0.0",
+ "bundled": true,
+ "dev": true
+ }
+ }
+ },
+ "lodash": {
+ "version": "4.17.5",
+ "bundled": true,
+ "dev": true
+ },
+ "longest": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "loose-envify": {
+ "version": "1.3.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "js-tokens": "^3.0.0"
+ }
+ },
+ "lru-cache": {
+ "version": "4.1.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "md5-hex": {
+ "version": "1.3.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "md5-o-matic": "^0.1.1"
+ }
+ },
+ "md5-o-matic": {
+ "version": "0.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "mem": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^1.0.0"
+ }
+ },
+ "merge-source-map": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "source-map": "^0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "bundled": true,
+ "dev": true
+ }
+ }
+ },
+ "micromatch": {
+ "version": "2.3.11",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "arr-diff": "^2.0.0",
+ "array-unique": "^0.2.1",
+ "braces": "^1.8.2",
+ "expand-brackets": "^0.1.4",
+ "extglob": "^0.3.1",
+ "filename-regex": "^2.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.1",
+ "kind-of": "^3.0.2",
+ "normalize-path": "^2.0.1",
+ "object.omit": "^2.0.0",
+ "parse-glob": "^3.0.4",
+ "regex-cache": "^0.4.2"
+ }
+ },
+ "mimic-fn": {
+ "version": "1.2.0",
+ "bundled": true,
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "bundled": true,
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "normalize-package-data": {
+ "version": "2.4.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "is-builtin-module": "^1.0.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "normalize-path": {
+ "version": "2.1.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "remove-trailing-separator": "^1.0.1"
+ }
+ },
+ "npm-run-path": {
+ "version": "2.0.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "path-key": "^2.0.0"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "object.omit": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "for-own": "^0.1.4",
+ "is-extendable": "^0.1.1"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "optimist": {
+ "version": "0.6.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "minimist": "~0.0.1",
+ "wordwrap": "~0.0.2"
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "os-locale": {
+ "version": "2.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "execa": "^0.7.0",
+ "lcid": "^1.0.0",
+ "mem": "^1.1.0"
+ }
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "p-limit": {
+ "version": "1.2.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "p-try": "^1.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "p-limit": "^1.1.0"
+ }
+ },
+ "p-try": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "parse-glob": {
+ "version": "3.0.4",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "glob-base": "^0.3.0",
+ "is-dotfile": "^1.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.2.0"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.5",
+ "bundled": true,
+ "dev": true
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "pify": {
+ "version": "2.3.0",
+ "bundled": true,
+ "dev": true
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "bundled": true,
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "pinkie": "^2.0.0"
+ }
+ },
+ "pkg-dir": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "find-up": "^1.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "1.1.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ }
+ }
+ },
+ "preserve": {
+ "version": "0.2.0",
+ "bundled": true,
+ "dev": true
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "randomatic": {
+ "version": "1.1.7",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
+ "dependencies": {
+ "is-number": {
+ "version": "3.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "kind-of": {
+ "version": "4.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "load-json-file": "^1.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^1.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "find-up": "^1.0.0",
+ "read-pkg": "^1.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "1.1.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ }
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.11.1",
+ "bundled": true,
+ "dev": true
+ },
+ "regex-cache": {
+ "version": "0.4.4",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-equal-shallow": "^0.1.3"
+ }
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true
+ },
+ "repeat-element": {
+ "version": "1.1.2",
+ "bundled": true,
+ "dev": true
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "bundled": true,
+ "dev": true
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-finite": "^1.0.0"
+ }
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "bundled": true,
+ "dev": true
+ },
+ "require-main-filename": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "resolve-from": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "right-align": {
+ "version": "0.1.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "align-text": "^0.1.1"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "glob": "^7.0.5"
+ }
+ },
+ "semver": {
+ "version": "5.5.0",
+ "bundled": true,
+ "dev": true
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "slide": {
+ "version": "1.1.6",
+ "bundled": true,
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "bundled": true,
+ "dev": true
+ },
+ "spawn-wrap": {
+ "version": "1.4.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "foreground-child": "^1.5.6",
+ "mkdirp": "^0.5.0",
+ "os-homedir": "^1.0.1",
+ "rimraf": "^2.6.2",
+ "signal-exit": "^3.0.2",
+ "which": "^1.3.0"
+ }
+ },
+ "spdx-correct": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "spdx-license-ids": "^1.0.2"
+ }
+ },
+ "spdx-expression-parse": {
+ "version": "1.0.4",
+ "bundled": true,
+ "dev": true
+ },
+ "spdx-license-ids": {
+ "version": "1.2.2",
+ "bundled": true,
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "is-utf8": "^0.2.0"
+ }
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "test-exclude": {
+ "version": "4.2.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "arrify": "^1.0.1",
+ "micromatch": "^2.3.11",
+ "object-assign": "^4.1.0",
+ "read-pkg-up": "^1.0.1",
+ "require-main-filename": "^1.0.1"
+ }
+ },
+ "to-fast-properties": {
+ "version": "1.0.3",
+ "bundled": true,
+ "dev": true
+ },
+ "trim-right": {
+ "version": "1.0.1",
+ "bundled": true,
+ "dev": true
+ },
+ "uglify-js": {
+ "version": "2.8.29",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "source-map": "~0.5.1",
+ "uglify-to-browserify": "~1.0.0",
+ "yargs": "~3.10.0"
+ },
+ "dependencies": {
+ "yargs": {
+ "version": "3.10.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "camelcase": "^1.0.2",
+ "cliui": "^2.1.0",
+ "decamelize": "^1.0.0",
+ "window-size": "0.1.0"
+ }
+ }
+ }
+ },
+ "uglify-to-browserify": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "spdx-correct": "~1.0.0",
+ "spdx-expression-parse": "~1.0.0"
+ }
+ },
+ "which": {
+ "version": "1.3.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "window-size": {
+ "version": "0.1.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "wordwrap": {
+ "version": "0.0.3",
+ "bundled": true,
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ }
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "bundled": true,
+ "dev": true
+ },
+ "write-file-atomic": {
+ "version": "1.3.4",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.11",
+ "imurmurhash": "^0.1.4",
+ "slide": "^1.1.5"
+ }
+ },
+ "y18n": {
+ "version": "3.2.1",
+ "bundled": true,
+ "dev": true
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "bundled": true,
+ "dev": true
+ },
+ "yargs": {
+ "version": "10.1.2",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "cliui": "^4.0.0",
+ "decamelize": "^1.1.1",
+ "find-up": "^2.1.0",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^2.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",
+ "yargs-parser": "^8.1.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "bundled": true,
+ "dev": true
+ },
+ "cliui": {
+ "version": "4.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "string-width": "^2.1.1",
+ "strip-ansi": "^4.0.0",
+ "wrap-ansi": "^2.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "yargs-parser": {
+ "version": "8.1.0",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "camelcase": "^4.1.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "4.1.0",
+ "bundled": true,
+ "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=="
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ },
+ "object-component": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
+ "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE="
+ },
+ "object-copy": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+ "requires": {
+ "copy-descriptor": "^0.1.0",
+ "define-property": "^0.2.5",
+ "kind-of": "^3.0.3"
+ },
+ "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=",
+ "requires": {
+ "is-descriptor": "^0.1.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=="
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "object-filter-sequence": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/object-filter-sequence/-/object-filter-sequence-1.0.0.tgz",
+ "integrity": "sha512-CsubGNxhIEChNY4cXYuA6KXafztzHqzLLZ/y3Kasf3A+sa3lL9thq3z+7o0pZqzEinjXT6lXDPAfVWI59dUyzQ=="
+ },
+ "object-hash": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-0.3.0.tgz",
+ "integrity": "sha1-VIII5Ds2pE5NowutbFasU7iF50Q="
+ },
+ "object-identity-map": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/object-identity-map/-/object-identity-map-1.0.2.tgz",
+ "integrity": "sha512-a2XZDGyYTngvGS67kWnqVdpoaJWsY7C1GhPJvejWAFCsUioTAaiTu8oBad7c6cI4McZxr4CmvnZeycK05iav5A==",
+ "requires": {
+ "object.entries": "^1.1.0"
+ }
+ },
+ "object-inspect": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz",
+ "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA=="
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
+ },
+ "object-visit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+ "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==",
+ "requires": {
+ "define-properties": "^1.1.2",
+ "function-bind": "^1.1.1",
+ "has-symbols": "^1.0.0",
+ "object-keys": "^1.0.11"
+ }
+ },
+ "object.entries": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz",
+ "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==",
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5",
+ "has": "^1.0.3"
+ }
+ },
+ "object.pick": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "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=="
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "one-time": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz",
+ "integrity": "sha1-+M33eISCb+Tf+T46nMN7HkSAdC4="
+ },
+ "opencollective-postinstall": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz",
+ "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q=="
+ },
+ "optional-js": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/optional-js/-/optional-js-2.3.0.tgz",
+ "integrity": "sha512-B0LLi+Vg+eko++0z/b8zIv57kp7HKEzaPJo7LowJXMUKYdf+3XJGu/cw03h/JhIOsLnP+cG5QnTHAuicjA5fMw=="
+ },
+ "original-url": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/original-url/-/original-url-1.2.3.tgz",
+ "integrity": "sha512-BYm+pKYLtS4mVe/mgT3YKGtWV5HzN/XKiaIu1aK4rsxyjuHeTW9N+xVBEpJcY1onB3nccfH0RbzUEoimMqFUHQ==",
+ "requires": {
+ "forwarded-parse": "^2.1.0"
+ }
+ },
+ "otp": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/otp/-/otp-0.1.3.tgz",
+ "integrity": "sha1-wle/JdL5Anr3esUiabPBQmjSvWs=",
+ "requires": {
+ "thirty-two": "^0.0.2"
+ }
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "p-limit": "^2.2.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=="
+ },
+ "packet-reader": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-0.3.1.tgz",
+ "integrity": "sha1-zWLmCvjX/qinBexP+ZCHHEaHHyc="
+ },
+ "parse-json": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz",
+ "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==",
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
+ "parseqs": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
+ "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
+ "requires": {
+ "better-assert": "~1.0.0"
+ }
+ },
+ "parseuri": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
+ "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
+ "requires": {
+ "better-assert": "~1.0.0"
+ }
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
+ },
+ "pascalcase": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ="
+ },
+ "path-dirname": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA="
+ },
+ "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=="
+ },
+ "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="
+ },
+ "path-loader": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/path-loader/-/path-loader-1.0.10.tgz",
+ "integrity": "sha512-CMP0v6S6z8PHeJ6NFVyVJm6WyJjIwFvyz2b0n2/4bKdS/0uZa/9sKUlYZzubrn3zuDRU0zIuEDX9DZYQ2ZI8TA==",
+ "requires": {
+ "native-promise-only": "^0.8.1",
+ "superagent": "^3.8.3"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "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",
+ "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"
+ }
+ },
+ "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"
+ }
+ },
+ "superagent": {
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz",
+ "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==",
+ "requires": {
+ "component-emitter": "^1.2.0",
+ "cookiejar": "^2.1.0",
+ "debug": "^3.1.0",
+ "extend": "^3.0.0",
+ "form-data": "^2.3.1",
+ "formidable": "^1.2.0",
+ "methods": "^1.1.1",
+ "mime": "^1.4.1",
+ "qs": "^6.5.1",
+ "readable-stream": "^2.3.5"
+ }
+ }
+ }
+ },
+ "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=="
+ },
+ "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="
+ },
+ "pathval": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz",
+ "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA="
+ },
+ "pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
+ },
+ "pg": {
+ "version": "6.4.2",
+ "resolved": "https://registry.npmjs.org/pg/-/pg-6.4.2.tgz",
+ "integrity": "sha1-w2QBEGDqx6UHoq4GPrhX7OkQ4n8=",
+ "requires": {
+ "buffer-writer": "1.0.1",
+ "js-string-escape": "1.0.1",
+ "packet-reader": "0.3.1",
+ "pg-connection-string": "0.1.3",
+ "pg-pool": "1.*",
+ "pg-types": "1.*",
+ "pgpass": "1.*",
+ "semver": "4.3.2"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.2.tgz",
+ "integrity": "sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c="
+ }
+ }
+ },
+ "pg-connection-string": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-0.1.3.tgz",
+ "integrity": "sha1-2hhHsglA5C7hSSvq9l1J2RskXfc="
+ },
+ "pg-hstore": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/pg-hstore/-/pg-hstore-2.3.2.tgz",
+ "integrity": "sha1-9+8FPnubiSrphq8vfL6GQy388k8=",
+ "requires": {
+ "underscore": "^1.7.0"
+ }
+ },
+ "pg-int8": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz",
+ "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="
+ },
+ "pg-pool": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-1.8.0.tgz",
+ "integrity": "sha1-9+xzgkw3oD8Hb1G/33DjQBR8Tzc=",
+ "requires": {
+ "generic-pool": "2.4.3",
+ "object-assign": "4.1.0"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
+ "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A="
+ }
+ }
+ },
+ "pg-types": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-1.13.0.tgz",
+ "integrity": "sha512-lfKli0Gkl/+za/+b6lzENajczwZHc7D5kiUCZfgm914jipD2kIOIvEkAhZ8GrW3/TUoP9w8FHjwpPObBye5KQQ==",
+ "requires": {
+ "pg-int8": "1.0.1",
+ "postgres-array": "~1.0.0",
+ "postgres-bytea": "~1.0.0",
+ "postgres-date": "~1.0.0",
+ "postgres-interval": "^1.1.0"
+ }
+ },
+ "pgpass": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.2.tgz",
+ "integrity": "sha1-Knu0G2BltnkH6R2hsHwYR8h3swY=",
+ "requires": {
+ "split": "^1.0.0"
+ }
+ },
+ "pidusage": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-1.2.0.tgz",
+ "integrity": "sha512-OGo+iSOk44HRJ8q15AyG570UYxcm5u+R99DI8Khu8P3tKGkVu5EZX4ywHglWSTMNNXQ274oeGpYrvFEhDIFGPg=="
+ },
+ "pipeworks": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/pipeworks/-/pipeworks-1.3.1.tgz",
+ "integrity": "sha1-+ENvhWXtHZe/OoBjKlOXv9NTOF8="
+ },
+ "platform": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.5.tgz",
+ "integrity": "sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q=="
+ },
+ "pm2": {
+ "version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/pm2/-/pm2-2.10.1.tgz",
+ "integrity": "sha512-l5U3Hh908TMw7qyOVAlCCoRlgonpnEw5pr2YnKT8+8fuay9tAysPTccU+SLPDjI6hQ9Q03p4lfNOtJUczzTrPA==",
+ "requires": {
+ "async": "^2.5",
+ "blessed": "^0.1.81",
+ "chalk": "^1.1",
+ "chokidar": "^2",
+ "cli-table-redemption": "^1.0.0",
+ "commander": "2.13.0",
+ "cron": "^1.3",
+ "debug": "^3.0",
+ "eventemitter2": "1.0.5",
+ "fclone": "1.0.11",
+ "gkt": "https://tgz.pm2.io/gkt-1.0.0.tgz",
+ "mkdirp": "0.5.1",
+ "moment": "^2.19",
+ "needle": "^2.1.0",
+ "nssocket": "0.6.0",
+ "pidusage": "^1.2.0",
+ "pm2-axon": "3.1.0",
+ "pm2-axon-rpc": "0.5.0",
+ "pm2-deploy": "^0.3.9",
+ "pm2-multimeter": "^0.1.2",
+ "pmx": "^1.6",
+ "promptly": "2.2.0",
+ "semver": "^5.3",
+ "shelljs": "0.7.8",
+ "source-map-support": "^0.5",
+ "sprintf-js": "1.1.1",
+ "v8-compile-cache": "^1.1.0",
+ "vizion": "^0.2",
+ "yamljs": "^0.3.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "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"
+ }
+ },
+ "commander": {
+ "version": "2.13.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz",
+ "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA=="
+ },
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+ },
+ "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"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ },
+ "sprintf-js": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.1.tgz",
+ "integrity": "sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw="
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
+ }
+ }
+ },
+ "pm2-axon": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/pm2-axon/-/pm2-axon-3.1.0.tgz",
+ "integrity": "sha512-5sBM+vHw0Cp2K9CJ9ZOYhKtNCCcgQ0eKOyFrSo5Jusbq9FfvuelsMG4WDaxkqosaQbf8N5YfyHhD7eOUcnm5rQ==",
+ "requires": {
+ "amp": "~0.3.1",
+ "amp-message": "~0.1.1",
+ "debug": "^3.0",
+ "escape-regexp": "0.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ }
+ }
+ },
+ "pm2-axon-rpc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/pm2-axon-rpc/-/pm2-axon-rpc-0.5.0.tgz",
+ "integrity": "sha512-jKiAlnIitx+TtJ1++jThmN49gM0Dte4gm27Kqu2xAUQn33Rh9+5lOOqShS5Xbp0RPZL42hKNEgaVVOSqm3sJCg==",
+ "requires": {
+ "debug": "^3.0",
+ "fclone": "^1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ }
+ }
+ },
+ "pm2-deploy": {
+ "version": "0.3.10",
+ "resolved": "https://registry.npmjs.org/pm2-deploy/-/pm2-deploy-0.3.10.tgz",
+ "integrity": "sha512-WagPKsX+LDCe8wLCL5nzu8RQvVUQ5GlFdJRVYCL0ogFnHfYRym91qNU4PkNSWSq11pdvG8la7DTjdW6FWXc8lw==",
+ "requires": {
+ "async": "^2.6",
+ "tv4": "^1.3"
+ }
+ },
+ "pm2-multimeter": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/pm2-multimeter/-/pm2-multimeter-0.1.2.tgz",
+ "integrity": "sha1-Gh5VFT1BoFU0zqI8/oYKuqDrSs4=",
+ "requires": {
+ "charm": "~0.1.1"
+ }
+ },
+ "pmx": {
+ "version": "1.6.4",
+ "resolved": "https://registry.npmjs.org/pmx/-/pmx-1.6.4.tgz",
+ "integrity": "sha512-uk6REZHe8j3RhGlFUfyVwFrE6JFhZigTpMFs/4iYO4MzCqVTpNp1cED032oCc4R+m32wUITV/2RDmPX21T1LLg==",
+ "requires": {
+ "debug": "^3",
+ "deep-metrics": "^0.0.1",
+ "json-stringify-safe": "^5.0",
+ "semver": "5.*",
+ "vxx": "^1.2.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ }
+ }
+ },
+ "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="
+ },
+ "postgres-array": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-1.0.3.tgz",
+ "integrity": "sha512-5wClXrAP0+78mcsNX3/ithQ5exKvCyK5lr5NEEEeGwwM6NJdQgzIJBVxLvRW+huFpX92F2QnZ5CcokH0VhK2qQ=="
+ },
+ "postgres-bytea": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz",
+ "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU="
+ },
+ "postgres-date": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz",
+ "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q=="
+ },
+ "postgres-interval": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz",
+ "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==",
+ "requires": {
+ "xtend": "^4.0.0"
+ }
+ },
+ "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=="
+ },
+ "promptly": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/promptly/-/promptly-2.2.0.tgz",
+ "integrity": "sha1-KhP6BjaIoqWYOxYf/wEIoH0m/HQ=",
+ "requires": {
+ "read": "^1.0.4"
+ }
+ },
+ "proxy-addr": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
+ "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
+ "requires": {
+ "forwarded": "~0.1.2",
+ "ipaddr.js": "1.9.1"
+ }
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
+ },
+ "psl": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
+ "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "punycode": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
+ },
+ "qs": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
+ "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A=="
+ },
+ "querystring": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA="
+ },
+ "random-poly-fill": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/random-poly-fill/-/random-poly-fill-1.0.1.tgz",
+ "integrity": "sha512-bMOL0hLfrNs52+EHtIPIXxn2PxYwXb0qjnKruTjXiM/sKfYqj506aB2plFwWW1HN+ri724bAVVGparh4AtlJKw=="
+ },
+ "random-string": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/random-string/-/random-string-0.2.0.tgz",
+ "integrity": "sha1-pG5DdTUr7amg17DRntbTIezR2C0="
+ },
+ "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=="
+ },
+ "raw-body": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz",
+ "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=",
+ "requires": {
+ "bytes": "3.0.0",
+ "http-errors": "1.6.2",
+ "iconv-lite": "0.4.19",
+ "unpipe": "1.0.0"
+ },
+ "dependencies": {
+ "depd": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz",
+ "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k="
+ },
+ "http-errors": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
+ "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
+ "requires": {
+ "depd": "1.1.1",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.0.3",
+ "statuses": ">= 1.3.1 < 2"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ },
+ "setprototypeof": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
+ "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ="
+ }
+ }
+ },
+ "read": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
+ "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=",
+ "requires": {
+ "mute-stream": "~0.0.4"
+ }
+ },
+ "read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "requires": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg=="
+ }
+ }
+ },
+ "read-pkg-up": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
+ "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
+ "requires": {
+ "find-up": "^4.1.0",
+ "read-pkg": "^5.2.0",
+ "type-fest": "^0.8.1"
+ }
+ },
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "readdirp": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
+ "requires": {
+ "graceful-fs": "^4.1.11",
+ "micromatch": "^3.1.10",
+ "readable-stream": "^2.0.2"
+ },
+ "dependencies": {
+ "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",
+ "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"
+ }
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "rechoir": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
+ "requires": {
+ "resolve": "^1.1.6"
+ }
+ },
+ "redact-secrets": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/redact-secrets/-/redact-secrets-1.0.0.tgz",
+ "integrity": "sha1-YPHbVpJP6QogO6jMs5KDzbsNkHw=",
+ "requires": {
+ "is-secret": "^1.0.0",
+ "traverse": "^0.6.6"
+ }
+ },
+ "redis": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz",
+ "integrity": "sha512-M1OkonEQwtRmZv4tEWF2VgpG0JWJ8Fv1PhlgT5+B+uNq2cA3Rt1Yt/ryoR+vQNOQcIEgdCdfH0jr3bDpihAw1A==",
+ "requires": {
+ "double-ended-queue": "^2.1.0-0",
+ "redis-commands": "^1.2.0",
+ "redis-parser": "^2.6.0"
+ }
+ },
+ "redis-commands": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.6.0.tgz",
+ "integrity": "sha512-2jnZ0IkjZxvguITjFTrGiLyzQZcTvaw8DAaCXxZq/dsHXz7KfMQ3OUJy7Tz9vnRtZRVz6VRCPDvruvU8Ts44wQ=="
+ },
+ "redis-parser": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz",
+ "integrity": "sha1-Uu0J2srBCPGmMcB+m2mUHnoZUEs="
+ },
+ "reduce-component": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/reduce-component/-/reduce-component-1.0.1.tgz",
+ "integrity": "sha1-4Mk1QsV0UhvqE98PlIjtgqt3xdo="
+ },
+ "redux": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.1.tgz",
+ "integrity": "sha512-R7bAtSkk7nY6O/OYMVR9RiBI+XghjF9rlbl5806HJbQph0LJVHZrU5oaO4q70eUKiqMRqm4y07KLTlMZ2BlVmg==",
+ "requires": {
+ "loose-envify": "^1.4.0",
+ "symbol-observable": "^1.2.0"
+ }
+ },
+ "referrer-policy": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/referrer-policy/-/referrer-policy-1.1.0.tgz",
+ "integrity": "sha1-NXdOtzW/UPtsB46DM0tHI1AgfXk="
+ },
+ "regex-not": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+ "requires": {
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
+ "relative-microtime": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/relative-microtime/-/relative-microtime-2.0.0.tgz",
+ "integrity": "sha512-l18ha6HEZc+No/uK4GyAnNxgKW7nvEe35IaeN54sShMojtqik2a6GbTyuiezkjpPaqP874Z3lW5ysBo5irz4NA=="
+ },
+ "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="
+ },
+ "repeat-element": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
+ "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g=="
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
+ },
+ "request": {
+ "version": "2.83.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz",
+ "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==",
+ "requires": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.6.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.5",
+ "extend": "~3.0.1",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.1",
+ "har-validator": "~5.0.3",
+ "hawk": "~6.0.2",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.17",
+ "oauth-sign": "~0.8.2",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.1",
+ "safe-buffer": "^5.1.1",
+ "stringstream": "~0.0.5",
+ "tough-cookie": "~2.3.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.1.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "5.5.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+ "requires": {
+ "co": "^4.6.0",
+ "fast-deep-equal": "^1.0.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.3.0"
+ }
+ },
+ "fast-deep-equal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
+ "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ="
+ },
+ "har-validator": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
+ "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
+ "requires": {
+ "ajv": "^5.1.0",
+ "har-schema": "^2.0.0"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
+ },
+ "oauth-sign": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
+ "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM="
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
+ },
+ "tough-cookie": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
+ "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
+ "requires": {
+ "punycode": "^1.4.1"
+ }
+ }
+ }
+ },
+ "request-promise": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.2.tgz",
+ "integrity": "sha1-0epG1lSm7k+O5qT+oQGMIpEZBLQ=",
+ "requires": {
+ "bluebird": "^3.5.0",
+ "request-promise-core": "1.1.1",
+ "stealthy-require": "^1.1.0",
+ "tough-cookie": ">=2.3.3"
+ }
+ },
+ "request-promise-core": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz",
+ "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=",
+ "requires": {
+ "lodash": "^4.13.1"
+ }
+ },
+ "require-ancestors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/require-ancestors/-/require-ancestors-1.0.0.tgz",
+ "integrity": "sha512-Nqeo9Gfp0KvnxTixnxLGEbThMAi+YYgnwRoigtOs1Oo3eGBYfqCd3dagq1vBCVVuc1EnIt3Eu1eGemwOOEZozw=="
+ },
+ "require-in-the-middle": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.0.3.tgz",
+ "integrity": "sha512-p/ICV8uMlqC4tjOYabLMxAWCIKa0YUQgZZ6KDM0xgXJNgdGQ1WmL2A07TwmrZw+wi6ITUFKzH5v3n+ENEyXVkA==",
+ "requires": {
+ "debug": "^4.1.1",
+ "module-details-from-path": "^1.0.3",
+ "resolve": "^1.12.0"
+ }
+ },
+ "resolve": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+ "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ },
+ "resolve-url": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
+ },
+ "ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="
+ },
+ "retry-as-promised": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-2.3.2.tgz",
+ "integrity": "sha1-zZdO5P2bX+A8vzGHHuSCIcB3N7c=",
+ "requires": {
+ "bluebird": "^3.4.6",
+ "debug": "^2.6.9"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "rttc": {
+ "version": "7.4.0",
+ "resolved": "https://registry.npmjs.org/rttc/-/rttc-7.4.0.tgz",
+ "integrity": "sha1-vJys1Grdkj3rYklaAZNOt+9hn7Q=",
+ "requires": {
+ "lodash": "^3.8.0"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
+ "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="
+ }
+ }
+ },
+ "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=="
+ },
+ "safe-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+ "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=="
+ },
+ "sax": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz",
+ "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o="
+ },
+ "seed-random": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/seed-random/-/seed-random-2.2.0.tgz",
+ "integrity": "sha1-KpsZ4lCoFwmSMaW5mk2vgLf77VQ="
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ },
+ "send": {
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz",
+ "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==",
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "~1.1.1",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.1",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "~1.6.2",
+ "mime": "1.4.1",
+ "ms": "2.0.0",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.0",
+ "statuses": "~1.3.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "sequelize": {
+ "version": "4.37.7",
+ "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-4.37.7.tgz",
+ "integrity": "sha512-1/M1Aua2GgejZbUI3T90G3uXXjcM4gTfFC36jGsepaJh3cRK9plPmlZeKkAQWWn4bCJaJozeEtuxfyPfQUY9wg==",
+ "requires": {
+ "bluebird": "^3.5.0",
+ "cls-bluebird": "^2.1.0",
+ "debug": "^3.1.0",
+ "depd": "^1.1.0",
+ "dottie": "^2.0.0",
+ "generic-pool": "^3.4.0",
+ "inflection": "1.12.0",
+ "lodash": "^4.17.1",
+ "moment": "^2.20.0",
+ "moment-timezone": "^0.5.14",
+ "retry-as-promised": "^2.3.2",
+ "semver": "^5.5.0",
+ "terraformer-wkt-parser": "^1.1.2",
+ "toposort-class": "^1.0.1",
+ "uuid": "^3.2.1",
+ "validator": "^9.4.1",
+ "wkx": "^0.4.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "generic-pool": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-3.7.1.tgz",
+ "integrity": "sha512-ug6DAZoNgWm6q5KhPFA+hzXfBLFQu5sTXxPpv44DmE0A2g+CiHoq9LTVdkXpZMkYVMoGw83F6W+WT0h0MFMK/w=="
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ }
+ }
+ },
+ "serve-static": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz",
+ "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==",
+ "requires": {
+ "encodeurl": "~1.0.1",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.2",
+ "send": "0.16.1"
+ }
+ },
+ "set-cookie-serde": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/set-cookie-serde/-/set-cookie-serde-1.0.0.tgz",
+ "integrity": "sha512-Vq8e5GsupfJ7okHIvEPcfs5neCo7MZ1ZuWrO3sllYi3DOWt6bSSCpADzqXjz3k0fXehnoFIrmmhty9IN6U6BXQ=="
+ },
+ "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==",
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "setprototypeof": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
+ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
+ },
+ "shallow-clone-shim": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shallow-clone-shim/-/shallow-clone-shim-2.0.0.tgz",
+ "integrity": "sha512-YRNymdiL3KGOoS67d73TEmk4tdPTO9GSMCoiphQsTcC9EtC+AOmMPjkyBkRoCJfW9ASsaZw1craaiw1dPN2D3Q=="
+ },
+ "shelljs": {
+ "version": "0.7.8",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz",
+ "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=",
+ "requires": {
+ "glob": "^7.0.0",
+ "interpret": "^1.0.0",
+ "rechoir": "^0.6.2"
+ }
+ },
+ "shimmer": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz",
+ "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw=="
+ },
+ "should": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/should/-/should-7.1.0.tgz",
+ "integrity": "sha1-WUGumqZnW+JAZ9QywCryEMzZx3I=",
+ "dev": true,
+ "requires": {
+ "should-equal": "0.5.0",
+ "should-format": "0.3.0",
+ "should-type": "0.2.0"
+ }
+ },
+ "should-equal": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-0.5.0.tgz",
+ "integrity": "sha1-x5fxNfMGf+tp6+zbMGscP+IbPm8=",
+ "dev": true,
+ "requires": {
+ "should-type": "0.2.0"
+ }
+ },
+ "should-format": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/should-format/-/should-format-0.3.0.tgz",
+ "integrity": "sha1-QgB+wKochupEkUzJER8bnyfTzqw=",
+ "dev": true,
+ "requires": {
+ "should-type": "0.2.0"
+ }
+ },
+ "should-type": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/should-type/-/should-type-0.2.0.tgz",
+ "integrity": "sha1-ZwfvlVKdmJ3MCY/gdTqx+RNrt/Y=",
+ "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=",
+ "requires": {
+ "is-arrayish": "^0.3.1"
+ },
+ "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=="
+ }
+ }
+ },
+ "slash": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU="
+ },
+ "snapdragon": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "requires": {
+ "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"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "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=",
+ "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=",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "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==",
+ "requires": {
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "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==",
+ "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==",
+ "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==",
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ }
+ }
+ },
+ "snapdragon-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "requires": {
+ "kind-of": "^3.2.0"
+ },
+ "dependencies": {
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "sntp": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz",
+ "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==",
+ "requires": {
+ "hoek": "4.x.x"
+ }
+ },
+ "socket-location": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/socket-location/-/socket-location-1.0.0.tgz",
+ "integrity": "sha512-TwxpRM0pPE/3b24XQGLx8zq2J8kOwTy40FtiNC1KrWvl/Tsf7RYXruE9icecMhQwicXMo/HUJlGap8DNt2cgYw==",
+ "requires": {
+ "await-event": "^2.1.0"
+ }
+ },
+ "socket.io": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.0.4.tgz",
+ "integrity": "sha1-waRZDO/4fs8TxyZS8Eb3FrKeYBQ=",
+ "requires": {
+ "debug": "~2.6.6",
+ "engine.io": "~3.1.0",
+ "socket.io-adapter": "~1.1.0",
+ "socket.io-client": "2.0.4",
+ "socket.io-parser": "~3.1.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "engine.io-client": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.1.6.tgz",
+ "integrity": "sha512-hnuHsFluXnsKOndS4Hv6SvUrgdYx1pk2NqfaDMW+GWdgfU3+/V25Cj7I8a0x92idSpa5PIhJRKxPvp9mnoLsfg==",
+ "requires": {
+ "component-emitter": "1.2.1",
+ "component-inherit": "0.0.3",
+ "debug": "~3.1.0",
+ "engine.io-parser": "~2.1.1",
+ "has-cors": "1.1.0",
+ "indexof": "0.0.1",
+ "parseqs": "0.0.5",
+ "parseuri": "0.0.5",
+ "ws": "~3.3.1",
+ "xmlhttprequest-ssl": "~1.5.4",
+ "yeast": "0.1.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "isarray": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
+ "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "socket.io-client": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.0.4.tgz",
+ "integrity": "sha1-CRilUkBtxeVAs4Dc2Xr8SmQzL44=",
+ "requires": {
+ "backo2": "1.0.2",
+ "base64-arraybuffer": "0.1.5",
+ "component-bind": "1.0.0",
+ "component-emitter": "1.2.1",
+ "debug": "~2.6.4",
+ "engine.io-client": "~3.1.0",
+ "has-cors": "1.1.0",
+ "indexof": "0.0.1",
+ "object-component": "0.0.3",
+ "parseqs": "0.0.5",
+ "parseuri": "0.0.5",
+ "socket.io-parser": "~3.1.1",
+ "to-array": "0.1.4"
+ }
+ },
+ "socket.io-parser": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.1.3.tgz",
+ "integrity": "sha512-g0a2HPqLguqAczs3dMECuA1RgoGFPyvDqcbaDEdCWY9g59kdUAz3YRmaJBNKXflrHNwB7Q12Gkf/0CZXfdHR7g==",
+ "requires": {
+ "component-emitter": "1.2.1",
+ "debug": "~3.1.0",
+ "has-binary2": "~1.0.2",
+ "isarray": "2.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "ws": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
+ "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
+ "requires": {
+ "async-limiter": "~1.0.0",
+ "safe-buffer": "~5.1.0",
+ "ultron": "~1.1.0"
+ }
+ }
+ }
+ },
+ "socket.io-adapter": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz",
+ "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g=="
+ },
+ "socket.io-client": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.2.0.tgz",
+ "integrity": "sha512-56ZrkTDbdTLmBIyfFYesgOxsjcLnwAKoN4CiPyTVkMQj3zTUh0QAx3GbvIvLpFEOvQWu92yyWICxB0u7wkVbYA==",
+ "requires": {
+ "backo2": "1.0.2",
+ "base64-arraybuffer": "0.1.5",
+ "component-bind": "1.0.0",
+ "component-emitter": "1.2.1",
+ "debug": "~3.1.0",
+ "engine.io-client": "~3.3.1",
+ "has-binary2": "~1.0.2",
+ "has-cors": "1.1.0",
+ "indexof": "0.0.1",
+ "object-component": "0.0.3",
+ "parseqs": "0.0.5",
+ "parseuri": "0.0.5",
+ "socket.io-parser": "~3.3.0",
+ "to-array": "0.1.4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "socket.io-emitter": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/socket.io-emitter/-/socket.io-emitter-3.1.1.tgz",
+ "integrity": "sha1-sF+CAG5pvD63QoeUysO7zUuqDMc=",
+ "requires": {
+ "debug": "~3.1.0",
+ "notepack.io": "~2.1.0",
+ "redis": "2.6.3",
+ "socket.io-parser": "3.1.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "isarray": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
+ "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "redis": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/redis/-/redis-2.6.3.tgz",
+ "integrity": "sha1-hDBbklU8ah8Jx8R8MLEazn27etQ=",
+ "requires": {
+ "double-ended-queue": "^2.1.0-0",
+ "redis-commands": "^1.2.0",
+ "redis-parser": "^2.0.0"
+ }
+ },
+ "socket.io-parser": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.1.2.tgz",
+ "integrity": "sha1-28IoIVH8T6675Aru3Ady66YZ9/I=",
+ "requires": {
+ "component-emitter": "1.2.1",
+ "debug": "~2.6.4",
+ "has-binary2": "~1.0.2",
+ "isarray": "2.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ }
+ }
+ },
+ "socket.io-parser": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz",
+ "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==",
+ "requires": {
+ "component-emitter": "1.2.1",
+ "debug": "~3.1.0",
+ "isarray": "2.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "isarray": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
+ "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "socket.io-redis": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/socket.io-redis/-/socket.io-redis-5.2.0.tgz",
+ "integrity": "sha1-j+KtlEX8UIhvtwq8dZ1nQD1Ymd8=",
+ "requires": {
+ "debug": "~2.6.8",
+ "notepack.io": "~2.1.2",
+ "redis": "~2.8.0",
+ "socket.io-adapter": "~1.1.0",
+ "uid2": "0.0.3"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+ },
+ "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==",
+ "requires": {
+ "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"
+ }
+ },
+ "source-map-support": {
+ "version": "0.5.19",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
+ "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ }
+ }
+ },
+ "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="
+ },
+ "spark-md5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-1.0.1.tgz",
+ "integrity": "sha1-xLmo1Bz3sIRUI6ghgk+N/6D1G3w="
+ },
+ "spdx-correct": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
+ "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
+ "requires": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-exceptions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
+ "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A=="
+ },
+ "spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-license-ids": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
+ "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q=="
+ },
+ "split": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
+ "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
+ "requires": {
+ "through": "2"
+ }
+ },
+ "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==",
+ "requires": {
+ "extend-shallow": "^3.0.0"
+ }
+ },
+ "sprintf-js": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
+ "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug=="
+ },
+ "sql-summary": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/sql-summary/-/sql-summary-1.0.1.tgz",
+ "integrity": "sha512-IpCr2tpnNkP3Jera4ncexsZUp0enJBLr+pHCyTweMUBrbJsTgQeLWx1FXLhoBj/MvcnUQpkgOn2EY8FKOkUzww=="
+ },
+ "sshpk": {
+ "version": "1.16.1",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
+ "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
+ "requires": {
+ "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"
+ },
+ "dependencies": {
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
+ }
+ }
+ },
+ "stack-trace": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
+ "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA="
+ },
+ "stackframe": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz",
+ "integrity": "sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA=="
+ },
+ "stackman": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/stackman/-/stackman-4.0.1.tgz",
+ "integrity": "sha512-lntIge3BFEElgvpZT2ld5f4U+mF84fRtJ8vA3ymUVx1euVx43ZMkd09+5RWW4FmvYDFhZwPh1gvtdsdnJyF4Fg==",
+ "requires": {
+ "after-all-results": "^2.0.0",
+ "async-cache": "^1.1.0",
+ "debug": "^4.1.1",
+ "error-callsites": "^2.0.3",
+ "load-source-map": "^1.0.0"
+ }
+ },
+ "static-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+ "requires": {
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
+ },
+ "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=",
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "statuses": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
+ "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4="
+ },
+ "stealthy-require": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
+ "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks="
+ },
+ "stream-chopper": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/stream-chopper/-/stream-chopper-3.0.1.tgz",
+ "integrity": "sha512-f7h+ly8baAE26iIjcp3VbnBkbIRGtrvV0X0xxFM/d7fwLTYnLzDPTXRKNxa2HZzohOrc96NTrR+FaV3mzOelNA==",
+ "requires": {
+ "readable-stream": "^3.0.6"
+ }
+ },
+ "streamsearch": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz",
+ "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo="
+ },
+ "string": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/string/-/string-3.3.3.tgz",
+ "integrity": "sha1-XqIRzZLSKOGEKUmQpsyXs2anfLA="
+ },
+ "string.prototype.trimend": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz",
+ "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==",
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5"
+ }
+ },
+ "string.prototype.trimstart": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz",
+ "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==",
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5"
+ }
+ },
+ "string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "requires": {
+ "safe-buffer": "~5.2.0"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+ }
+ }
+ },
+ "stringstream": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz",
+ "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA=="
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "superagent": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/superagent/-/superagent-1.8.5.tgz",
+ "integrity": "sha1-HA3cOvMOgOuE68BcshItqP6UC1U=",
+ "requires": {
+ "component-emitter": "~1.2.0",
+ "cookiejar": "2.0.6",
+ "debug": "2",
+ "extend": "3.0.0",
+ "form-data": "1.0.0-rc3",
+ "formidable": "~1.0.14",
+ "methods": "~1.1.1",
+ "mime": "1.3.4",
+ "qs": "2.3.3",
+ "readable-stream": "1.0.27-1",
+ "reduce-component": "1.0.1"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
+ },
+ "cookiejar": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.0.6.tgz",
+ "integrity": "sha1-Cr81atANHFohnYjURRgEbdAmrP4="
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "extend": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz",
+ "integrity": "sha1-WkdDU7nzNT3dgXbf03uRyDpG8dQ="
+ },
+ "form-data": {
+ "version": "1.0.0-rc3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz",
+ "integrity": "sha1-01vGLn+8KTeuePlIqqDTjZBgdXc=",
+ "requires": {
+ "async": "^1.4.0",
+ "combined-stream": "^1.0.5",
+ "mime-types": "^2.1.3"
+ }
+ },
+ "formidable": {
+ "version": "1.0.16",
+ "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.0.16.tgz",
+ "integrity": "sha1-SRbP38TL7QILJXpqlQWpqzjCzQ4="
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "mime": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
+ "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM="
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "qs": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-2.3.3.tgz",
+ "integrity": "sha1-6eha2+ddoLvkyOBHaghikPhjtAQ="
+ },
+ "readable-stream": {
+ "version": "1.0.27-1",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.27-1.tgz",
+ "integrity": "sha1-a2eYPCA1fO/QfwFlABoW1xDZEHg=",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ }
+ }
+ },
+ "supertest": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supertest/-/supertest-1.0.0.tgz",
+ "integrity": "sha1-0QxZv0uab43x6jAOAiIfHWrgke0=",
+ "dev": true,
+ "requires": {
+ "methods": "1.x",
+ "superagent": "~1.2.0"
+ },
+ "dependencies": {
+ "async": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
+ "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=",
+ "dev": true
+ },
+ "combined-stream": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz",
+ "integrity": "sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8=",
+ "dev": true,
+ "requires": {
+ "delayed-stream": "0.0.5"
+ }
+ },
+ "component-emitter": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz",
+ "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=",
+ "dev": true
+ },
+ "cookiejar": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.0.1.tgz",
+ "integrity": "sha1-PRJ1L2rfaKiS8zJDNJK9WBK7Zo8=",
+ "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"
+ }
+ },
+ "delayed-stream": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz",
+ "integrity": "sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8=",
+ "dev": true
+ },
+ "extend": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-1.2.1.tgz",
+ "integrity": "sha1-oPX9bPyDpf5J72mNYOyKYk3UV2w=",
+ "dev": true
+ },
+ "form-data": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.2.0.tgz",
+ "integrity": "sha1-Jvi8JtpkQOKZy9z7aQNcT3em5GY=",
+ "dev": true,
+ "requires": {
+ "async": "~0.9.0",
+ "combined-stream": "~0.0.4",
+ "mime-types": "~2.0.3"
+ }
+ },
+ "formidable": {
+ "version": "1.0.14",
+ "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.0.14.tgz",
+ "integrity": "sha1-Kz9MQRy7X91pXESEPiojUUpDIxo=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "mime": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
+ "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=",
+ "dev": true
+ },
+ "mime-db": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz",
+ "integrity": "sha1-PQxjGA9FjrENMlqqN9fFiuMS6dc=",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz",
+ "integrity": "sha1-MQ4VnbI+B3+Lsit0jav6SVcUCqY=",
+ "dev": true,
+ "requires": {
+ "mime-db": "~1.12.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "qs": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-2.3.3.tgz",
+ "integrity": "sha1-6eha2+ddoLvkyOBHaghikPhjtAQ=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "1.0.27-1",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.27-1.tgz",
+ "integrity": "sha1-a2eYPCA1fO/QfwFlABoW1xDZEHg=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
+ },
+ "superagent": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/superagent/-/superagent-1.2.0.tgz",
+ "integrity": "sha1-qsJiUzwexVOBRKETcc028kSldP0=",
+ "dev": true,
+ "requires": {
+ "component-emitter": "1.1.2",
+ "cookiejar": "2.0.1",
+ "debug": "2",
+ "extend": "1.2.1",
+ "form-data": "0.2.0",
+ "formidable": "1.0.14",
+ "methods": "1.0.1",
+ "mime": "1.3.4",
+ "qs": "2.3.3",
+ "readable-stream": "1.0.27-1",
+ "reduce-component": "1.0.1"
+ },
+ "dependencies": {
+ "methods": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.0.1.tgz",
+ "integrity": "sha1-dbyRlD3/19oDfPPusO1zoAN80Us=",
+ "dev": true
+ }
+ }
+ }
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "swagger-converter": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/swagger-converter/-/swagger-converter-0.1.7.tgz",
+ "integrity": "sha1-oJdRnG8e5N1n4wjZtT3cnCslf5c=",
+ "requires": {
+ "lodash.clonedeep": "^2.4.1"
+ }
+ },
+ "swagger-express-mw": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/swagger-express-mw/-/swagger-express-mw-0.1.0.tgz",
+ "integrity": "sha1-seT7WgGVnO8imRoSHq5JSt0w5To=",
+ "requires": {
+ "swagger-node-runner": "^0.5.0"
+ }
+ },
+ "swagger-node-runner": {
+ "version": "0.5.13",
+ "resolved": "https://registry.npmjs.org/swagger-node-runner/-/swagger-node-runner-0.5.13.tgz",
+ "integrity": "sha1-VwwCCq55e9Waqyr2kXK/XWE3aKQ=",
+ "requires": {
+ "bagpipes": "^0.0.6",
+ "config": "^1.16.0",
+ "cors": "^2.5.3",
+ "debug": "^2.1.3",
+ "js-yaml": "^3.3.0",
+ "lodash": "^3.6.0",
+ "swagger-tools": "^0.9.7"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "lodash": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
+ "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "swagger-tools": {
+ "version": "0.9.16",
+ "resolved": "https://registry.npmjs.org/swagger-tools/-/swagger-tools-0.9.16.tgz",
+ "integrity": "sha1-45+uPVgdcTaCSR4ZJs2Hvywgm/s=",
+ "requires": {
+ "async": "^1.3.0",
+ "body-parser": "1.12.4",
+ "commander": "^2.8.1",
+ "debug": "^2.2.0",
+ "js-yaml": "^3.3.1",
+ "json-refs": "^2.1.5",
+ "lodash-compat": "^3.10.0",
+ "multer": "^1.1.0",
+ "parseurl": "^1.3.0",
+ "path-to-regexp": "^1.2.0",
+ "qs": "^4.0.0",
+ "serve-static": "^1.10.0",
+ "spark-md5": "^1.0.0",
+ "string": "^3.3.0",
+ "superagent": "^1.2.0",
+ "swagger-converter": "^0.1.7",
+ "traverse": "^0.6.6",
+ "z-schema": "^3.15.4"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
+ },
+ "body-parser": {
+ "version": "1.12.4",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.12.4.tgz",
+ "integrity": "sha1-CQcAxLoohiqFIO83g5X97l9hwik=",
+ "requires": {
+ "bytes": "1.0.0",
+ "content-type": "~1.0.1",
+ "debug": "~2.2.0",
+ "depd": "~1.0.1",
+ "iconv-lite": "0.4.8",
+ "on-finished": "~2.2.1",
+ "qs": "2.4.2",
+ "raw-body": "~2.0.1",
+ "type-is": "~1.6.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
+ "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
+ "requires": {
+ "ms": "0.7.1"
+ }
+ },
+ "qs": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-2.4.2.tgz",
+ "integrity": "sha1-9854jld33wtQENp/fE5zujJHD1o="
+ }
+ }
+ },
+ "bytes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz",
+ "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g="
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
+ "depd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz",
+ "integrity": "sha1-gK7GTJ1tl+ZcwqnKqTwKpqv3Oqo="
+ },
+ "ee-first": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.0.tgz",
+ "integrity": "sha1-ag18YiHkkP7v2S7D9EHJzozQl/Q="
+ },
+ "iconv-lite": {
+ "version": "0.4.8",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.8.tgz",
+ "integrity": "sha1-xgGadZXyzvynAuq2lKAQvNkpjSA="
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
+ "ms": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
+ "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg="
+ },
+ "on-finished": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.2.1.tgz",
+ "integrity": "sha1-XIXBzDYpn3gCllP2Z/J7a5nrwCk=",
+ "requires": {
+ "ee-first": "1.1.0"
+ }
+ },
+ "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"
+ }
+ },
+ "qs": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz",
+ "integrity": "sha1-wx2bdOwn33XlQ6hseHKO2NRiNgc="
+ },
+ "raw-body": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.0.2.tgz",
+ "integrity": "sha1-osL5jIUxzumcY9jSOLfel7tln8o=",
+ "requires": {
+ "bytes": "2.1.0",
+ "iconv-lite": "0.4.8"
+ },
+ "dependencies": {
+ "bytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz",
+ "integrity": "sha1-rJPEEOL/ycx89LRks4KJBn9eR7Q="
+ }
+ }
+ }
+ }
+ },
+ "switchback": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/switchback/-/switchback-2.0.5.tgz",
+ "integrity": "sha512-w9gnsTxR5geOKt45QUryhDP9KTLcOAqje9usR2VQ2ng8DfhaF+mkIcArxioMP/p6Z/ecKE58i2/B0DDlMJK1jw==",
+ "requires": {
+ "@sailshq/lodash": "^3.10.3"
+ }
+ },
+ "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=="
+ },
+ "terraformer": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/terraformer/-/terraformer-1.0.12.tgz",
+ "integrity": "sha512-MokUp0+MFal4CmJDVL6VAO1bKegeXcBM2RnPVfqcFIp2IIv8EbPAjG0j/vEy/vuKB8NVMMSF2vfpVS/QLe4DBg==",
+ "requires": {
+ "@types/geojson": "^7946.0.0 || ^1.0.0"
+ }
+ },
+ "terraformer-wkt-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/terraformer-wkt-parser/-/terraformer-wkt-parser-1.2.1.tgz",
+ "integrity": "sha512-+CJyNLWb3lJ9RsZMTM66BY0MT3yIo4l4l22Jd9CrZuwzk54fsu4Sc7zejuS9fCITTuTQy3p06d4MZMVI7v5wSg==",
+ "requires": {
+ "@types/geojson": "^1.0.0",
+ "terraformer": "~1.0.5"
+ }
+ },
+ "text-hex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz",
+ "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="
+ },
+ "thirty-two": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/thirty-two/-/thirty-two-0.0.2.tgz",
+ "integrity": "sha1-QlPinYywWPBIAmfFaYwOSSflS2o="
+ },
+ "through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
+ },
+ "tiny-emitter": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.0.2.tgz",
+ "integrity": "sha512-2NM0auVBGft5tee/OxP4PI3d8WItkDM+fPnaRAVo6xTDI2knbz9eC5ArWGqtGlYqiH3RU5yMpdyTTO7MguC4ow=="
+ },
+ "to-array": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
+ "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA="
+ },
+ "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=",
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "to-regex": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "requires": {
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
+ "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=",
+ "requires": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ }
+ },
+ "to-source-code": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/to-source-code/-/to-source-code-1.0.2.tgz",
+ "integrity": "sha1-3RNr2x4dvYC76s8IiZJnjpBwv+o=",
+ "requires": {
+ "is-nil": "^1.0.0"
+ }
+ },
+ "topo": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz",
+ "integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=",
+ "requires": {
+ "hoek": "2.x.x"
+ },
+ "dependencies": {
+ "hoek": {
+ "version": "2.16.3",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
+ "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
+ }
+ }
+ },
+ "toposort-class": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toposort-class/-/toposort-class-1.0.1.tgz",
+ "integrity": "sha1-f/0feMi+KMO6Rc1OGj9e4ZO9mYg="
+ },
+ "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==",
+ "requires": {
+ "psl": "^1.1.24",
+ "punycode": "^1.4.1"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
+ }
+ }
+ },
+ "traceparent": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/traceparent/-/traceparent-1.0.0.tgz",
+ "integrity": "sha512-b/hAbgx57pANQ6cg2eBguY3oxD6FGVLI1CC2qoi01RmHR7AYpQHPXTig9FkzbWohEsVuHENZHP09aXuw3/LM+w==",
+ "requires": {
+ "random-poly-fill": "^1.0.1"
+ }
+ },
+ "traverse": {
+ "version": "0.6.6",
+ "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz",
+ "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc="
+ },
+ "triple-beam": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz",
+ "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw=="
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "tv4": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz",
+ "integrity": "sha1-0CDIRvrdUMhVq7JeuuzGj8EPeWM="
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
+ },
+ "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=="
+ },
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA=="
+ },
+ "type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ }
+ },
+ "typed-function": {
+ "version": "0.10.7",
+ "resolved": "https://registry.npmjs.org/typed-function/-/typed-function-0.10.7.tgz",
+ "integrity": "sha512-3mlZ5AwRMbLvUKkc8a1TI4RUJUS2H27pmD5q0lHRObgsoWzhDAX01yg82kwSP1FUw922/4Y9ZliIEh0qJZcz+g=="
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
+ },
+ "tz-offset": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/tz-offset/-/tz-offset-0.0.1.tgz",
+ "integrity": "sha512-kMBmblijHJXyOpKzgDhKx9INYU4u4E1RPMB0HqmKSgWG8vEcf3exEfLh4FFfzd3xdQOw9EuIy/cP0akY6rHopQ=="
+ },
+ "uid2": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz",
+ "integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I="
+ },
+ "ultron": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
+ "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og=="
+ },
+ "underscore": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.11.0.tgz",
+ "integrity": "sha512-xY96SsN3NA461qIRKZ/+qox37YXPtSBswMGfiNptr+wrt6ds4HaMw23TP612fEyGekRE6LNRiLYr/aqbHXNedw=="
+ },
+ "unicode-byte-truncate": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unicode-byte-truncate/-/unicode-byte-truncate-1.0.0.tgz",
+ "integrity": "sha1-qm8PNHUZP+IMMgrJIT425i6HZKc=",
+ "requires": {
+ "is-integer": "^1.0.6",
+ "unicode-substring": "^0.1.0"
+ }
+ },
+ "unicode-substring": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-substring/-/unicode-substring-0.1.0.tgz",
+ "integrity": "sha1-YSDOPDkDhdvND2DDK5BlxBgdSzY="
+ },
+ "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==",
+ "requires": {
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^2.0.1"
+ }
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
+ },
+ "unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+ "requires": {
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
+ },
+ "dependencies": {
+ "has-value": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+ "requires": {
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ }
+ }
+ },
+ "has-values": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E="
+ }
+ }
+ },
+ "upath": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
+ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg=="
+ },
+ "uri-js": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz",
+ "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==",
+ "requires": {
+ "punycode": "^2.1.0"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+ }
+ }
+ },
+ "urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
+ },
+ "url": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz",
+ "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=",
+ "requires": {
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
+ }
+ },
+ "use": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
+ },
+ "uuid": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz",
+ "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA=="
+ },
+ "uws": {
+ "version": "9.14.0",
+ "resolved": "https://registry.npmjs.org/uws/-/uws-9.14.0.tgz",
+ "integrity": "sha512-HNMztPP5A1sKuVFmdZ6BPVpBQd5bUjNC8EFMFiICK+oho/OQsAJy5hnIx4btMHiOk8j04f/DbIlqnEZ9d72dqg==",
+ "optional": true
+ },
+ "v8-compile-cache": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-1.1.2.tgz",
+ "integrity": "sha512-ejdrifsIydN1XDH7EuR2hn8ZrkRKUYF7tUcBjBy/lhrCvs2K+zRlbW9UHc0IQ9RsYFZJFqJrieoIHfkCa0DBRA=="
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "requires": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "validator": {
+ "version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/validator/-/validator-9.4.1.tgz",
+ "integrity": "sha512-YV5KjzvRmSyJ1ee/Dm5UED0G+1L4GZnLN3w6/T+zZm8scVua4sOhYKWTUrKa0H/tMiJyO9QLHMPN+9mB/aMunA=="
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ }
+ },
+ "vizion": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/vizion/-/vizion-0.2.13.tgz",
+ "integrity": "sha1-ExTN7is0EW+fWxJIU2+V2/zW718=",
+ "requires": {
+ "async": "1.5"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
+ }
+ }
+ },
+ "vxx": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/vxx/-/vxx-1.2.2.tgz",
+ "integrity": "sha1-dB+1HG8R0zg9pvm5IBil17qAdhE=",
+ "requires": {
+ "continuation-local-storage": "^3.1.4",
+ "debug": "^2.6.3",
+ "extend": "^3.0.0",
+ "is": "^3.2.0",
+ "lodash.findindex": "^4.4.0",
+ "lodash.isequal": "^4.0.0",
+ "lodash.merge": "^4.6.0",
+ "methods": "^1.1.1",
+ "semver": "^5.0.1",
+ "shimmer": "^1.0.0",
+ "uuid": "^3.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ }
+ }
+ },
+ "winston": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/winston/-/winston-3.2.1.tgz",
+ "integrity": "sha512-zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw==",
+ "requires": {
+ "async": "^2.6.1",
+ "diagnostics": "^1.1.1",
+ "is-stream": "^1.1.0",
+ "logform": "^2.1.1",
+ "one-time": "0.0.4",
+ "readable-stream": "^3.1.1",
+ "stack-trace": "0.0.x",
+ "triple-beam": "^1.3.0",
+ "winston-transport": "^4.3.0"
+ }
+ },
+ "winston-compat": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/winston-compat/-/winston-compat-0.1.5.tgz",
+ "integrity": "sha512-EPvPcHT604AV3Ji6d3+vX8ENKIml9VSxMRnPQ+cuK/FX6f3hvPP2hxyoeeCOCFvDrJEujalfcKWlWPvAnFyS9g==",
+ "requires": {
+ "cycle": "~1.0.3",
+ "logform": "^1.6.0",
+ "triple-beam": "^1.2.0"
+ },
+ "dependencies": {
+ "fecha": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz",
+ "integrity": "sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg=="
+ },
+ "logform": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/logform/-/logform-1.10.0.tgz",
+ "integrity": "sha512-em5ojIhU18fIMOw/333mD+ZLE2fis0EzXl1ZwHx4iQzmpQi6odNiY/t+ITNr33JZhT9/KEaH+UPIipr6a9EjWg==",
+ "requires": {
+ "colors": "^1.2.1",
+ "fast-safe-stringify": "^2.0.4",
+ "fecha": "^2.3.3",
+ "ms": "^2.1.1",
+ "triple-beam": "^1.2.0"
+ }
+ }
+ }
+ },
+ "winston-elasticsearch-apm": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/winston-elasticsearch-apm/-/winston-elasticsearch-apm-0.0.7.tgz",
+ "integrity": "sha512-Bae5BkM36/6x2TN7zv5Qu7qQF2SnUDhba26b0kCL6+A3yaTyOa9sjf4sakoWx27Lil7M6OCicC39rfcIKNkHHg==",
+ "requires": {
+ "lodash": "^4.17.11",
+ "lodash.defaultsdeep": "^4.6.0",
+ "winston-compat": "^0.1.4",
+ "winston-transport": "^4.2.0"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "4.17.20",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
+ "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="
+ }
+ }
+ },
+ "winston-transport": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz",
+ "integrity": "sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==",
+ "requires": {
+ "readable-stream": "^2.3.7",
+ "triple-beam": "^1.2.0"
+ },
+ "dependencies": {
+ "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",
+ "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"
+ }
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "wkx": {
+ "version": "0.4.8",
+ "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.4.8.tgz",
+ "integrity": "sha512-ikPXMM9IR/gy/LwiOSqWlSL3X/J5uk9EO2hHNRXS41eTLXaUFEVw9fn/593jW/tE5tedNg8YjT5HkCa4FqQZyQ==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "ws": {
+ "version": "6.1.4",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz",
+ "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==",
+ "requires": {
+ "async-limiter": "~1.0.0"
+ }
+ },
+ "x-xss-protection": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/x-xss-protection/-/x-xss-protection-1.1.0.tgz",
+ "integrity": "sha512-rx3GzJlgEeZ08MIcDsU2vY2B1QEriUKJTSiNHHUIem6eg9pzVOr2TL3Y4Pd6TMAM5D5azGjcxqI62piITBDHVg=="
+ },
+ "xml2js": {
+ "version": "0.4.17",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz",
+ "integrity": "sha1-F76T6q4/O3eTWceVtBlwWogX6Gg=",
+ "requires": {
+ "sax": ">=0.6.0",
+ "xmlbuilder": "^4.1.0"
+ }
+ },
+ "xmlbuilder": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz",
+ "integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=",
+ "requires": {
+ "lodash": "^4.0.0"
+ }
+ },
+ "xmlhttprequest-ssl": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz",
+ "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4="
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
+ },
+ "yamljs": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz",
+ "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==",
+ "requires": {
+ "argparse": "^1.0.7",
+ "glob": "^7.0.5"
+ }
+ },
+ "yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
+ "requires": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.1.0"
+ }
+ },
+ "yeast": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz",
+ "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk="
+ },
+ "z-schema": {
+ "version": "3.25.1",
+ "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-3.25.1.tgz",
+ "integrity": "sha512-7tDlwhrBG+oYFdXNOjILSurpfQyuVgkRe3hB2q8TEssamDHB7BbLWYkYO98nTn0FibfdFroFKDjndbgufAgS/Q==",
+ "requires": {
+ "commander": "^2.7.1",
+ "core-js": "^2.5.7",
+ "lodash.get": "^4.0.0",
+ "lodash.isequal": "^4.0.0",
+ "validator": "^10.0.0"
+ },
+ "dependencies": {
+ "validator": {
+ "version": "10.11.0",
+ "resolved": "https://registry.npmjs.org/validator/-/validator-10.11.0.tgz",
+ "integrity": "sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw=="
+ }
+ }
+ }
+ }
+}
diff --git a/server/package.json b/server/package.json
new file mode 100644
index 0000000000..204bfa80ed
--- /dev/null
+++ b/server/package.json
@@ -0,0 +1,89 @@
+{
+ "version": "2.0.0",
+ "private": false,
+ "description": "HollaEx Kit",
+ "keywords": [
+ "swagger",
+ "api",
+ "exchange",
+ "bitcoin",
+ "cryptocurrency",
+ "bitholla",
+ "hollaex"
+ ],
+ "author": "bitHolla Inc.",
+ "license": "bitHolla Inc.",
+ "main": "app.js",
+ "dependencies": {
+ "bcryptjs": "2.4.3",
+ "bluebird": "3.5.3",
+ "body-parser": "1.19.0",
+ "chai": "4.2.0",
+ "cors": "2.8.5",
+ "elastic-apm-node": "3.5.0",
+ "eval": "0.1.4",
+ "expect-ct": "0.1.0",
+ "express": "4.16.2",
+ "express-validator": "6.7.0",
+ "flat": "5.0.0",
+ "geoip-lite": "1.4.1",
+ "helmet": "3.12.0",
+ "hollaex-node-lib": "github:bitholla/hollaex-node-lib#2.0",
+ "hollaex-tools-lib": "github:bitholla/hollaex-tools-lib#master",
+ "http": "0.0.0",
+ "install": "0.10.4",
+ "json2csv": "4.5.4",
+ "jsonwebtoken": "7.4.3",
+ "lodash": "4.17.5",
+ "mathjs": "3.20.2",
+ "moment": "2.21.0",
+ "moment-timezone": "0.5.28",
+ "morgan": "1.9.0",
+ "multer": "1.4.2",
+ "node-cron": "2.0.3",
+ "nodemailer": "6.4.6",
+ "npm": "5.7.1",
+ "npmi": "4.0.0",
+ "otp": "0.1.3",
+ "pg": "6.4.2",
+ "pg-hstore": "2.3.2",
+ "pm2": "2.10.1",
+ "pmx": "1.6.4",
+ "random-string": "0.2.0",
+ "redis": "2.8.0",
+ "redux": "4.0.1",
+ "request": "2.83.0",
+ "request-promise": "4.2.2",
+ "sequelize": "4.37.7",
+ "swagger-express-mw": "0.1.0",
+ "uglify-es": "^3.3.9",
+ "uuid": "3.2.1",
+ "validator": "9.4.1",
+ "winston": "3.2.1",
+ "winston-elasticsearch-apm": "0.0.7",
+ "ws-heartbeat": "1.1.0",
+ "yamljs": "0.3.0"
+ },
+ "devDependencies": {
+ "chai": "4.2.0",
+ "mocha": "3.5.3",
+ "nyc": "11.5.0",
+ "should": "7.1.0",
+ "supertest": "1.0.0"
+ },
+ "scripts": {
+ "undomigrate": "sequelize db:migrate:undo:all",
+ "migrate": "sequelize db:migrate",
+ "start": "node app.js",
+ "test": "NODE_ENV=test nyc --reporter=html --reporter=text mocha --recursive --timeout 5000"
+ },
+ "nyc": {
+ "exclude": [
+ "db",
+ "config",
+ "test",
+ "app.js",
+ "constants.js"
+ ]
+ }
+}
diff --git a/server/plugins.js b/server/plugins.js
new file mode 100644
index 0000000000..140fa1797e
--- /dev/null
+++ b/server/plugins.js
@@ -0,0 +1,1030 @@
+'use strict';
+
+var app = require('express')();
+const _eval = require('eval');
+const lodash = require('lodash');
+const PORT = process.env.PLUGIN_PORT || 10011;
+const toolsLib = require('hollaex-tools-lib');
+const bodyParser = require('body-parser');
+const expressValidator = require('express-validator');
+const { checkSchema } = expressValidator;
+const morgan = require('morgan');
+const { logEntryRequest, stream, loggerPlugin } = require('./config/logger');
+const { domainMiddleware, helmetMiddleware } = require('./config/middleware');
+const morganType = process.env.NODE_ENV === 'development' ? 'dev' : 'combined';
+const npmi = require('npmi');
+const multer = require('multer');
+const moment = require('moment');
+const { checkStatus } = require('./init');
+const UglifyJS = require('uglify-es');
+const cors = require('cors');
+
+const installLibrary = (library) => {
+ return new Promise((resolve, reject) => {
+ npmi({
+ name: library,
+ npmLoad: {
+ save: false,
+ forceInstall: false,
+ loglevel: 'silent'
+ }
+ }, (err, result) => {
+ if (err) {
+ reject(err);
+ } else {
+ try {
+ const lib = require(library);
+ resolve(lib);
+ } catch (err) {
+ reject(err);
+ }
+ }
+ });
+ });
+};
+
+app.use(morgan(morganType, { stream }));
+app.listen(PORT);
+app.use(cors());
+app.use(bodyParser.urlencoded({ extended: true }));
+app.use(bodyParser.json());
+app.use(logEntryRequest);
+app.use(domainMiddleware);
+helmetMiddleware(app);
+
+checkStatus()
+ .then((nodeLib) => {
+ if (nodeLib) {
+ app.get('/plugins', [
+ checkSchema({
+ name: {
+ in: ['query'],
+ errorMessage: 'must be a string',
+ isString: true,
+ isLength: {
+ errorMessage: 'must be minimum length of 1',
+ options: { min: 1 }
+ },
+ optional: true
+ },
+ limit: {
+ in: ['query'],
+ errorMessage: 'must be an integer',
+ isInt: true,
+ optional: true
+ },
+ page: {
+ in: ['query'],
+ errorMessage: 'must be an integer',
+ isInt: true,
+ optional: true
+ },
+ search: {
+ in: ['query'],
+ errorMessage: 'must be a string',
+ isString: true,
+ isLength: {
+ errorMessage: 'must be minimum length of 1',
+ options: { min: 1 }
+ },
+ optional: true
+ }
+ })
+ ], (req, res) => {
+ const errors = expressValidator.validationResult(req);
+ if (!errors.isEmpty()) {
+ return res.status(400).json({ errors: errors.array() });
+ }
+
+ const { limit, page, name, search } = req.query;
+
+ let promiseQuery = toolsLib.plugin.getPaginatedPlugins(limit, page, search);
+
+ if (name) {
+ promiseQuery = toolsLib.plugin.getPlugin(
+ name,
+ {
+ raw: true,
+ attributes: [
+ 'name',
+ 'version',
+ 'enabled',
+ 'author',
+ 'description',
+ 'bio',
+ 'url',
+ 'logo',
+ 'icon',
+ 'documentation',
+ 'web_view',
+ 'admin_view',
+ 'created_at',
+ 'updated_at'
+ ]
+ }
+ );
+ }
+
+ promiseQuery
+ .then((plugins) => {
+ if (name) {
+ if (!plugins) {
+ throw new Error('Plugin not found');
+ } else {
+ plugins.enabled_admin_view = !!plugins.admin_view;
+ delete plugins.admin_view;
+ }
+ }
+ return res.json(plugins);
+ })
+ .catch((err) => {
+ loggerPlugin.error(req.uuid, 'GET /plugins err', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+ });
+
+ app.delete('/plugins', [
+ toolsLib.security.verifyBearerTokenExpressMiddleware(['admin']),
+ checkSchema({
+ name: {
+ in: ['query'],
+ errorMessage: 'must be a string',
+ isString: true,
+ isLength: {
+ errorMessage: 'must be minimum length of 1',
+ options: { min: 1 }
+ },
+ optional: false
+ }
+ })
+ ], (req, res) => {
+ const errors = expressValidator.validationResult(req);
+ if (!errors.isEmpty()) {
+ return res.status(400).json({ errors: errors.array() });
+ }
+
+ loggerPlugin.verbose(
+ req.uuid,
+ 'DELETE /plugins auth',
+ req.auth.sub
+ );
+
+ const { name } = req.query;
+
+ loggerPlugin.info(req.uuid, 'DELETE /plugins name', name);
+
+ toolsLib.plugin.getPlugin(name)
+ .then((plugin) => {
+ if (!plugin) {
+ throw new Error('Plugin not found');
+ }
+
+ return plugin.destroy();
+ })
+ .then(() => {
+ loggerPlugin.info(req.uuid, 'DELETE /plugins deleted plugin', name);
+
+ res.json({ message: 'Success' });
+
+ process.exit();
+ })
+ .catch((err) => {
+ loggerPlugin.error(req.uuid, 'DELETE /plugins err', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+ });
+
+ app.put('/plugins', [
+ toolsLib.security.verifyBearerTokenExpressMiddleware(['admin']),
+ checkSchema({
+ name: {
+ in: ['body'],
+ errorMessage: 'must be a string',
+ isString: true,
+ isLength: {
+ errorMessage: 'must be minimum length of 1',
+ options: { min: 1 }
+ },
+ optional: false
+ },
+ script: {
+ in: ['body'],
+ errorMessage: 'must be a string',
+ isString: true,
+ isLength: {
+ errorMessage: 'must be minimum length of 5',
+ options: { min: 5 }
+ },
+ optional: false
+ },
+ version: {
+ in: ['body'],
+ errorMessage: 'must be a number',
+ isNumeric: true,
+ optional: false
+ },
+ description: {
+ in: ['body'],
+ errorMessage: 'must be a string or null',
+ isString: true,
+ optional: { options: { nullable: true } }
+ },
+ author: {
+ in: ['body'],
+ errorMessage: 'must be a string or null',
+ isString: true,
+ optional: { options: { nullable: true } }
+ },
+ url: {
+ in: ['body'],
+ errorMessage: 'must be a string or null',
+ isString: true,
+ optional: { options: { nullable: true } }
+ },
+ bio: {
+ in: ['body'],
+ errorMessage: 'must be a string or null',
+ isString: true,
+ optional: { options: { nullable: true } }
+ },
+ documentation: {
+ in: ['body'],
+ errorMessage: 'must be a string or null',
+ isString: true,
+ optional: { options: { nullable: true } }
+ },
+ icon: {
+ in: ['body'],
+ errorMessage: 'must be a string or null',
+ isString: true,
+ optional: { options: { nullable: true } }
+ },
+ logo: {
+ in: ['body'],
+ errorMessage: 'must be a string or null',
+ isString: true,
+ optional: { options: { nullable: true } }
+ },
+ admin_view: {
+ in: ['body'],
+ errorMessage: 'must be a string or null',
+ isString: true,
+ optional: { options: { nullable: true } }
+ },
+ web_view: {
+ in: ['body'],
+ errorMessage: 'must be a string or null',
+ isString: true,
+ optional: { options: { nullable: true } }
+ },
+ prescript: {
+ in: ['body'],
+ custom: {
+ options: (value) => {
+ if (!lodash.isPlainObject(value)) {
+ return false;
+ }
+ if (value.install && lodash.isArray(value.install)) {
+ for (let lib of value.install) {
+ if (!lodash.isString(lib)) {
+ return false;
+ }
+ }
+ }
+ if (value.run && !lodash.isString(value.run)) {
+ return false;
+ }
+ return true;
+ },
+ errorMessage: 'must be an object. install value must be an array of strings. run value must be a string'
+ },
+ optional: { options: { nullable: true } }
+ },
+ postscript: {
+ in: ['body'],
+ custom: {
+ options: (value) => {
+ if (!lodash.isPlainObject(value)) {
+ return false;
+ }
+ if (value.run && lodash.isString(value.run)) {
+ return false;
+ }
+ return true;
+ },
+ errorMessage: 'must be an object. run value must be a string'
+ },
+ optional: true
+ },
+ meta: {
+ in: ['body'],
+ custom: {
+ options: (value) => {
+ return lodash.isPlainObject(value);
+ },
+ errorMessage: 'must be an object'
+ },
+ optional: { options: { nullable: true } }
+ }
+ })
+ ], (req, res) => {
+ const errors = expressValidator.validationResult(req);
+ if (!errors.isEmpty()) {
+ return res.status(400).json({ errors: errors.array() });
+ }
+
+ loggerPlugin.verbose(
+ req.uuid,
+ 'PUT /plugins auth',
+ req.auth.sub
+ );
+
+ const {
+ name,
+ script,
+ version,
+ description,
+ author,
+ url,
+ icon,
+ documentation,
+ bio,
+ web_view,
+ admin_view,
+ logo,
+ prescript,
+ postscript,
+ meta
+ } = req.body;
+
+ loggerPlugin.info(req.uuid, 'PUT /plugins name', name, 'version', version);
+
+ toolsLib.plugin.getPlugin(name)
+ .then((plugin) => {
+ if (!plugin) {
+ throw new Error('Plugin not installed');
+ }
+ if (plugin.version === version) {
+ throw new Error('Version is already installed');
+ }
+
+ const minifiedScript = UglifyJS.minify(script);
+
+ if (minifiedScript.error) {
+ throw new Error('Error while minifying script');
+ }
+
+ const updatedPlugin = {
+ script: minifiedScript.code,
+ version
+ };
+
+ if (description) {
+ updatedPlugin.description = description;
+ }
+
+ if (bio) {
+ updatedPlugin.bio = bio;
+ }
+
+ if (author) {
+ updatedPlugin.author = author;
+ }
+
+ if (documentation) {
+ updatedPlugin.documentation = documentation;
+ }
+
+ if (icon) {
+ updatedPlugin.icon = icon;
+ }
+
+ if (url) {
+ updatedPlugin.url = url;
+ }
+
+ if (logo) {
+ updatedPlugin.logo = logo;
+ }
+
+ if (!lodash.isUndefined(web_view)) {
+ updatedPlugin.web_view = web_view;
+ }
+
+ if (!lodash.isUndefined(admin_view)) {
+ updatedPlugin.admin_view = admin_view;
+ }
+
+ if (lodash.isPlainObject(prescript)) {
+ updatedPlugin.prescript = prescript;
+ }
+
+ if (lodash.isPlainObject(postscript)) {
+ updatedPlugin.postscript = postscript;
+ }
+
+ if (lodash.isPlainObject(meta)) {
+ const existingMeta = lodash.pick(plugin.meta, Object.keys(meta));
+
+ updatedPlugin.meta = {
+ ...meta,
+ ...existingMeta
+ };
+ }
+
+ return plugin.update(updatedPlugin);
+ })
+ .then(async (plugin) => {
+ loggerPlugin.info(req.uuid, 'PUT /plugins updated', name);
+
+ plugin = plugin.dataValues;
+
+ plugin.enabled_admin_view = !!plugin.admin_view;
+
+ res.json(lodash.omit(plugin, [
+ 'id',
+ 'meta',
+ 'admin_view',
+ 'script',
+ 'prescript',
+ 'postscript'
+ ]));
+
+ if (plugin.enabled) {
+ process.exit();
+ }
+ })
+ .catch((err) => {
+ loggerPlugin.error(req.uuid, 'POST /plugins err', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+ });
+
+ app.post('/plugins', [
+ toolsLib.security.verifyBearerTokenExpressMiddleware(['admin']),
+ checkSchema({
+ name: {
+ in: ['body'],
+ errorMessage: 'must be a string',
+ isString: true,
+ isLength: {
+ errorMessage: 'must be minimum length of 1',
+ options: { min: 1 }
+ },
+ optional: false
+ },
+ script: {
+ in: ['body'],
+ errorMessage: 'must be a string',
+ isString: true,
+ isLength: {
+ errorMessage: 'must be minimum length of 5',
+ options: { min: 5 }
+ },
+ optional: false
+ },
+ version: {
+ in: ['body'],
+ errorMessage: 'must be a number',
+ isNumeric: true,
+ optional: false
+ },
+ author: {
+ in: ['body'],
+ errorMessage: 'must be a string',
+ isString: true,
+ optional: false
+ },
+ enabled: {
+ in: ['body'],
+ errorMessage: 'must be a boolean',
+ isBoolean: true,
+ optional: false
+ },
+ description: {
+ in: ['body'],
+ errorMessage: 'must be a string or null',
+ isString: true,
+ optional: { options: { nullable: true } }
+ },
+ bio: {
+ in: ['body'],
+ errorMessage: 'must be a string or null',
+ isString: true,
+ optional: { options: { nullable: true } }
+ },
+ documentation: {
+ in: ['body'],
+ errorMessage: 'must be a string or null',
+ isString: true,
+ optional: { options: { nullable: true } }
+ },
+ icon: {
+ in: ['body'],
+ errorMessage: 'must be a string or null',
+ isString: true,
+ optional: { options: { nullable: true } }
+ },
+ url: {
+ in: ['body'],
+ errorMessage: 'must be a string or null',
+ isString: true,
+ optional: { options: { nullable: true } }
+ },
+ logo: {
+ in: ['body'],
+ errorMessage: 'must be a string or null',
+ isString: true,
+ optional: { options: { nullable: true } }
+ },
+ admin_view: {
+ in: ['body'],
+ errorMessage: 'must be a string or null',
+ isString: true,
+ optional: { options: { nullable: true } }
+ },
+ web_view: {
+ in: ['body'],
+ errorMessage: 'must be a string or null',
+ isString: true,
+ optional: { options: { nullable: true } }
+ },
+ prescript: {
+ in: ['body'],
+ custom: {
+ options: (value) => {
+ if (!lodash.isPlainObject(value)) {
+ return false;
+ }
+ if (value.install && lodash.isArray(value.install)) {
+ for (let lib of value.install) {
+ if (!lodash.isString(lib)) {
+ return false;
+ }
+ }
+ }
+ if (value.run && !lodash.isString(value.run)) {
+ return false;
+ }
+ return true;
+ },
+ errorMessage: 'must be an object. install value must be an array of strings. run value must be a string'
+ },
+ optional: { options: { nullable: true } }
+ },
+ postscript: {
+ in: ['body'],
+ custom: {
+ options: (value) => {
+ if (!lodash.isPlainObject(value)) {
+ return false;
+ }
+ if (value.run && !lodash.isString(value.run)) {
+ return false;
+ }
+ return true;
+ },
+ errorMessage: 'must be an object. run value must be a string'
+ },
+ optional: { options: { nullable: true } }
+ },
+ meta: {
+ in: ['body'],
+ custom: {
+ options: (value) => {
+ return lodash.isPlainObject(value);
+ },
+ errorMessage: 'must be an object'
+ },
+ optional: { options: { nullable: true } }
+ }
+ })
+ ], (req, res) => {
+ const errors = expressValidator.validationResult(req);
+ if (!errors.isEmpty()) {
+ return res.status(400).json({ errors: errors.array() });
+ }
+
+ loggerPlugin.verbose(
+ req.uuid,
+ 'POST /plugins auth',
+ req.auth.sub
+ );
+
+ const {
+ name,
+ script,
+ version,
+ description,
+ author,
+ icon,
+ bio,
+ documentation,
+ web_view,
+ admin_view,
+ url,
+ logo,
+ enabled,
+ prescript,
+ postscript,
+ meta
+ } = req.body;
+
+ loggerPlugin.info(req.uuid, 'POST /plugins name', name, 'version', version);
+
+ toolsLib.plugin.getPlugin(name)
+ .then((plugin) => {
+ if (plugin) {
+ throw new Error('Plugin is already installed');
+ }
+
+ const minifiedScript = UglifyJS.minify(script);
+
+ if (minifiedScript.error) {
+ throw new Error('Error while minifying script');
+ }
+
+ const newPlugin = {
+ name,
+ script: minifiedScript.code,
+ version,
+ author,
+ enabled
+ };
+
+ if (description) {
+ newPlugin.description = description;
+ }
+
+ if (bio) {
+ newPlugin.bio = bio;
+ }
+
+ if (documentation) {
+ newPlugin.documentation = documentation;
+ }
+
+ if (icon) {
+ newPlugin.icon = icon;
+ }
+
+ if (url) {
+ newPlugin.url = url;
+ }
+
+ if (logo) {
+ newPlugin.logo = logo;
+ }
+
+ if (!lodash.isUndefined(web_view)) {
+ newPlugin.web_view = web_view;
+ }
+
+ if (!lodash.isUndefined(admin_view)) {
+ newPlugin.admin_view = admin_view;
+ }
+
+ if (lodash.isPlainObject(prescript)) {
+ newPlugin.prescript = prescript;
+ }
+
+ if (lodash.isPlainObject(postscript)) {
+ newPlugin.postscript = postscript;
+ }
+
+ if (lodash.isPlainObject(meta)) {
+ newPlugin.meta = meta;
+ }
+
+ return toolsLib.database.create('plugin', newPlugin);
+ })
+ .then((plugin) => {
+ loggerPlugin.info(req.uuid, 'POST /plugins installed', name);
+
+ plugin = plugin.dataValues;
+
+ plugin.enabled_admin_view = !!plugin.admin_view;
+
+ res.json(lodash.omit(plugin, [
+ 'id',
+ 'meta',
+ 'admin_view',
+ 'script',
+ 'prescript',
+ 'postscript'
+ ]));
+
+ if (plugin.enabled) {
+ process.exit();
+ }
+ })
+ .catch((err) => {
+ loggerPlugin.error(req.uuid, 'POST /plugins err', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+ });
+
+ app.put('/plugins/meta', [
+ toolsLib.security.verifyBearerTokenExpressMiddleware(['admin']),
+ checkSchema({
+ name: {
+ in: ['body'],
+ errorMessage: 'must be a string',
+ isString: true,
+ isLength: {
+ errorMessage: 'must be minimum length of 1',
+ options: { min: 1 }
+ },
+ optional: false
+ },
+ meta: {
+ in: ['body'],
+ custom: {
+ options: (value) => {
+ return lodash.isPlainObject(value);
+ },
+ errorMessage: 'must be an object'
+ },
+ optional: false
+ }
+ })
+ ], (req, res) => {
+ const errors = expressValidator.validationResult(req);
+ if (!errors.isEmpty()) {
+ return res.status(400).json({ errors: errors.array() });
+ }
+
+ loggerPlugin.verbose(
+ req.uuid,
+ 'PUT /plugins/meta auth',
+ req.auth.sub
+ );
+
+ const { name, meta } = req.body;
+
+ loggerPlugin.info(req.uuid, 'PUT /plugins/meta name', name);
+
+ toolsLib.plugin.getPlugin(name)
+ .then((plugin) => {
+ if (!plugin) {
+ throw new Error('Plugin not found');
+ }
+
+ const updatedMeta = lodash.pick(meta, Object.keys(plugin.meta));
+
+ const newMeta = {
+ ...plugin.meta,
+ ...updatedMeta
+ };
+
+ return plugin.update({ meta: newMeta }, { fields: ['meta']});
+ })
+ .then((plugin) => {
+ loggerPlugin.info(req.uuid, 'PUT /plugins/meta updated', name);
+
+ res.json({ message: 'Success' });
+
+ if (plugin.enabled) {
+ process.exit();
+ }
+ })
+ .catch((err) => {
+ loggerPlugin.error(req.uuid, 'PUT /plugins/meta err', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+ });
+
+ app.get('/plugins/meta', [
+ toolsLib.security.verifyBearerTokenExpressMiddleware(['admin']),
+ checkSchema({
+ name: {
+ in: ['query'],
+ errorMessage: 'must be a string',
+ isString: true,
+ isLength: {
+ errorMessage: 'must be minimum length of 1',
+ options: { min: 1 }
+ },
+ optional: false
+ }
+ })
+ ], (req, res) => {
+ const errors = expressValidator.validationResult(req);
+ if (!errors.isEmpty()) {
+ return res.status(400).json({ errors: errors.array() });
+ }
+
+ loggerPlugin.verbose(
+ req.uuid,
+ 'GET /plugins/meta auth',
+ req.auth.sub
+ );
+
+ const { name } = req.query;
+
+ loggerPlugin.info(req.uuid, 'GET /plugins/meta name', name);
+
+ toolsLib.plugin.getPlugin(name, { raw: true, attributes: ['name', 'version', 'meta'] })
+ .then((plugin) => {
+ if (!plugin) {
+ throw new Error('Plugin not found');
+ }
+
+ return res.json(plugin);
+ })
+ .catch((err) => {
+ loggerPlugin.error(req.uuid, 'GET /plugins/meta err', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+ });
+
+ app.get('/plugins/script', [
+ toolsLib.security.verifyBearerTokenExpressMiddleware(['admin']),
+ checkSchema({
+ name: {
+ in: ['query'],
+ errorMessage: 'must be a string',
+ isString: true,
+ isLength: {
+ errorMessage: 'must be minimum length of 1',
+ options: { min: 1 }
+ },
+ optional: false
+ }
+ })
+ ], (req, res) => {
+ const errors = expressValidator.validationResult(req);
+ if (!errors.isEmpty()) {
+ return res.status(400).json({ errors: errors.array() });
+ }
+
+ loggerPlugin.verbose(
+ req.uuid,
+ 'GET /plugins/script auth',
+ req.auth.sub
+ );
+
+ const { name } = req.query;
+
+ loggerPlugin.info(req.uuid, 'GET /plugins/script name', name);
+
+ toolsLib.plugin.getPlugin(name, { raw: true, attributes: ['name', 'version', 'script', 'prescript', 'postscript', 'admin_view'] })
+ .then((plugin) => {
+ if (!plugin) {
+ throw new Error('Plugin not found');
+ }
+
+ return res.json(plugin);
+ })
+ .catch((err) => {
+ loggerPlugin.error(req.uuid, 'GET /plugins/script err', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+ });
+
+ app.get('/plugins/disable', [
+ toolsLib.security.verifyBearerTokenExpressMiddleware(['admin']),
+ checkSchema({
+ name: {
+ in: ['query'],
+ errorMessage: 'must be a string',
+ isString: true,
+ isLength: {
+ errorMessage: 'must be minimum length of 1',
+ options: { min: 1 }
+ },
+ optional: false
+ }
+ })
+ ], (req, res) => {
+ const errors = expressValidator.validationResult(req);
+ if (!errors.isEmpty()) {
+ return res.status(400).json({ errors: errors.array() });
+ }
+
+ loggerPlugin.verbose(
+ req.uuid,
+ 'GET /plugins/disable auth',
+ req.auth.sub
+ );
+
+ const { name } = req.query;
+
+ loggerPlugin.info(req.uuid, 'GET /plugins/disable name', name);
+
+ toolsLib.plugin.getPlugin(name)
+ .then((plugin) => {
+ if (!plugin) {
+ throw new Error('Plugin not found');
+ }
+
+ if (!plugin.enabled) {
+ throw new Error('Plugin is already disabled');
+ }
+
+ return plugin.update({ enabled: false }, { fields: ['enabled']});
+ })
+ .then(() => {
+ loggerPlugin.info(req.uuid, 'GET /plugins/disable disabled plugin', name);
+
+ res.json({ message: 'Success' });
+
+ process.exit();
+ })
+ .catch((err) => {
+ loggerPlugin.error(req.uuid, 'GET /plugins/disable err', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+ });
+
+ app.get('/plugins/enable', [
+ toolsLib.security.verifyBearerTokenExpressMiddleware(['admin']),
+ checkSchema({
+ name: {
+ in: ['query'],
+ errorMessage: 'must be a string',
+ isString: true,
+ isLength: {
+ errorMessage: 'must be minimum length of 1',
+ options: { min: 1 }
+ },
+ optional: false
+ }
+ })
+ ], (req, res) => {
+ const errors = expressValidator.validationResult(req);
+ if (!errors.isEmpty()) {
+ return res.status(400).json({ errors: errors.array() });
+ }
+
+ loggerPlugin.verbose(
+ req.uuid,
+ 'GET /plugins/enable auth',
+ req.auth.sub
+ );
+
+ const { name } = req.query;
+
+ loggerPlugin.info(req.uuid, 'GET /plugins/enable name', name);
+
+ toolsLib.plugin.getPlugin(name)
+ .then((plugin) => {
+ if (!plugin) {
+ throw new Error('Plugin not found');
+ }
+
+ if (plugin.enabled) {
+ throw new Error('Plugin is already enabled');
+ }
+
+ return plugin.update({ enabled: true }, { fields: ['enabled']});
+ })
+ .then(() => {
+ loggerPlugin.info(req.uuid, 'GET /plugins/enable enabled plugin', name);
+
+ res.json({ message: 'Success' });
+
+ process.exit();
+ })
+ .catch((err) => {
+ loggerPlugin.error(req.uuid, 'GET /plugins/enable err', err.message);
+ return res.status(err.status || 400).json({ message: err.message });
+ });
+ });
+
+ toolsLib.database.findAll('plugin', {
+ where: { enabled: true },
+ raw: true
+ })
+ .then(async (plugins) => {
+ for (let plugin of plugins) {
+ try {
+ loggerPlugin.verbose('plugin', plugin.name, 'enabling');
+ const context = {
+ app,
+ toolsLib,
+ lodash,
+ expressValidator,
+ loggerPlugin,
+ multer,
+ moment,
+ meta: plugin.meta,
+ installedLibraries: {}
+ };
+ if (plugin.prescript.install) {
+ loggerPlugin.verbose('plugin', plugin.name, 'installing packages');
+ for (let library of plugin.prescript.install) {
+ context.installedLibraries[library] = await installLibrary(library);
+ }
+ loggerPlugin.verbose('plugin', plugin.name, 'packages installed');
+ }
+
+ _eval(plugin.script, plugin.name, context, true);
+ loggerPlugin.verbose('plugin', plugin.name, 'enabled');
+ } catch (err) {
+ loggerPlugin.error('plugin', plugin.name, 'error while installing prepackages', err.message);
+ }
+ }
+ });
+ }
+ });
\ No newline at end of file
diff --git a/server/tools/Dockerfile.pm2 b/server/tools/Dockerfile.pm2
new file mode 100644
index 0000000000..da36182dba
--- /dev/null
+++ b/server/tools/Dockerfile.pm2
@@ -0,0 +1,37 @@
+### Multi-Stage Build Dockerfile
+
+### Build section
+FROM node:10.15.3-stretch-slim as build
+
+RUN apt-get update && apt-get install -y --no-install-recommends git python build-essential && rm -rf /var/lib/apt/lists/*
+
+## DISTRIBUTION MODE
+ENV NODE_ENV=production
+
+RUN mkdir -p /app/logs
+
+COPY package.json /app/package.json
+
+COPY . /app
+
+WORKDIR /app
+
+RUN npm install
+
+FROM node:10.15.3-stretch-slim
+
+COPY --from=build /app /app
+
+RUN apt-get update && apt-get install -y --no-install-recommends git python build-essential && rm -rf /var/lib/apt/lists/*
+
+RUN npm install pm2@3.2.7 sequelize-cli@5.4.0 mocha -g
+
+## DISTRIBUTION MODE
+ENV NODE_ENV=production
+
+# SERVER PORT
+EXPOSE 10010 10080 10011
+
+WORKDIR /app
+
+ENTRYPOINT ["/app/entrypoint.sh"]
diff --git a/server/tools/dbs/checkConfig.js b/server/tools/dbs/checkConfig.js
new file mode 100644
index 0000000000..b6054e3b3b
--- /dev/null
+++ b/server/tools/dbs/checkConfig.js
@@ -0,0 +1,95 @@
+'use strict';
+
+const { Status } = require('../../db/models');
+const { publisher } = require('../../db/pubsub');
+const { CONFIGURATION_CHANNEL } = require('../../constants');
+const { isBoolean } = require('lodash');
+
+Status.findOne()
+ .then((status) => {
+ const existingKitConfigurations = status.dataValues.kit;
+ const existingSecrets = status.dataValues.secrets;
+ const kit = {
+ api_name: existingKitConfigurations.api_name || process.env.API_NAME || '',
+ description: existingKitConfigurations.description || '',
+ color: existingKitConfigurations.color || {},
+ interface: existingKitConfigurations.interface || {},
+ icons: existingKitConfigurations.icons || {},
+ strings: existingKitConfigurations.strings || {},
+ title: existingKitConfigurations.title || '',
+ links: existingKitConfigurations.links || {
+ twitter: '',
+ instagram: '',
+ telegram: '',
+ facebook: '',
+ linkedin: '',
+ github: '',
+ contact: '',
+ helpdesk: '',
+ terms: '',
+ privacy: '',
+ api: process.env.API_HOST || '',
+ whitepaper: '',
+ website: '',
+ information: '',
+ },
+ setup_completed: isBoolean(existingKitConfigurations.setup_completed) ? existingKitConfigurations.setup_completed : false,
+ native_currency: existingKitConfigurations.native_currency || process.env.NATIVE_CURRENCY,
+ logo_image: existingKitConfigurations.logo_image || existingKitConfigurations.logo_path || process.env.LOGO_IMAGE || 'https://dash.testnet.bitholla.com/assets/img/hex-pattern-icon-black-01.svg',
+ valid_languages: existingKitConfigurations.valid_languages || process.env.VALID_LANGUAGES || 'en,fa,ko,ar,fr',
+ new_user_is_activated: existingKitConfigurations.new_user_is_activated || (process.env.NEW_USER_IS_ACTIVATED && process.env.NEW_USER_IS_ACTIVATED === 'true') || false,
+ captcha: {
+ site_key: existingKitConfigurations.captcha ? (existingKitConfigurations.captcha.site_key || process.env.CAPTCHA_SITE_KEY) : process.env.CAPTCHA_SITE_KEY
+ },
+ defaults: {
+ language: existingKitConfigurations.defaults ? (existingKitConfigurations.defaults.language || process.env.NEW_USER_DEFAULT_LANGUAGE || 'en') : (process.env.NEW_USER_DEFAULT_LANGUAGE || 'en'),
+ theme: existingKitConfigurations.defaults ? (existingKitConfigurations.defaults.theme || process.env.DEFAULT_THEME || 'white') : (process.env.DEFAULT_THEME || 'white')
+ },
+ features: existingKitConfigurations.features || {},
+ meta: existingKitConfigurations.meta || {},
+ };
+
+ const secrets = {
+ allowed_domains: existingSecrets.allowed_domains || (process.env.ALLOWED_DOMAINS ? process.env.ALLOWED_DOMAINS.split(',') : []),
+ admin_whitelist: existingSecrets.admin_whitelist || (process.env.ADMIN_WHITELIST_IP ? process.env.ADMIN_WHITELIST_IP.split(',') : []),
+ security: {
+ token_time: existingSecrets.security ? (existingSecrets.security.token_time || '24h') : '24h',
+ withdrawal_token_expiry: existingSecrets.security ? (existingSecrets.security.withdrawal_token_expiry || 300000) : 300000
+ },
+ emails: {
+ timezone: existingSecrets.emails ? (existingSecrets.emails.timzeone || process.env.EMAILS_TIMEZONE || '') : (process.env.EMAILS_TIMEZONE || ''),
+ send_email_to_support: existingSecrets.emails ? (existingSecrets.emails.send_email_to_support || (process.env.SEND_EMAIL_TO_SUPPORT && process.env.SEND_EMAIL_TO_SUPPORT === 'true') || false) : ((process.env.SEND_EMAIL_TO_SUPPORT && process.env.SEND_EMAIL_TO_SUPPORT === 'true') || false),
+ sender: existingSecrets.emails ? (existingSecrets.emails.sender || process.env.SENDER_EMAIL || '') : (process.env.SENDER_EMAIL || ''),
+ audit: existingSecrets.audit ? (existingSecrets.emails.audit || process.env.ADMIN_EMAIL || '') : (process.env.ADMIN_EMAIL || '')
+ },
+ captcha: {
+ secret_key: existingSecrets.captcha ? (existingSecrets.captcha.secret_key || process.env.CAPTCHA_SECRET_KEY) : process.env.CAPTCHA_SECRET_KEY
+ },
+ smtp: {
+ server: existingSecrets.smtp ? (existingSecrets.smtp.server || process.env.SMTP_SERVER || '') : (process.env.SMTP_SERVER || ''),
+ port: existingSecrets.smtp ? (existingSecrets.smtp.port || process.env.SMTP_PORT || 587) : (process.env.SMTP_PORT || 587),
+ user: existingSecrets.smtp ? (existingSecrets.smtp.user || process.env.SMTP_USER) : process.env.SMTP_USER,
+ password: existingSecrets.smtp ? (existingSecrets.smtp.password || process.env.SMTP_PASSWORD) : (process.env.SMTP_PASSWORD)
+ }
+ };
+
+ return status.update(
+ { kit, secrets },
+ { fields: ['kit', 'secrets'] }
+ );
+ })
+ .then((data) => {
+ publisher.publish(
+ CONFIGURATION_CHANNEL,
+ JSON.stringify({
+ type: 'update',
+ data: { kit: data.kit, secrets: data.secrets }
+ })
+ );
+ console.log('tools/dbs/checkConfig successfully checked/updated');
+ process.exit(0);
+ })
+ .catch((err) => {
+ console.error('tools/dbs/checkConfig err', err);
+ process.exit(1);
+ });
diff --git a/server/tools/dbs/flushRedis.js b/server/tools/dbs/flushRedis.js
new file mode 100644
index 0000000000..2585050ca7
--- /dev/null
+++ b/server/tools/dbs/flushRedis.js
@@ -0,0 +1,13 @@
+'use strict';
+
+const redis = require('../../db/redis');
+
+redis.flushall((err, succeeded) => {
+ if (err) {
+ console.error('Error', err);
+ process.exit(1);
+ } else {
+ console.log('Whole Redis is flushed successfully.', succeeded);
+ process.exit(0);
+ }
+});
diff --git a/server/tools/dbs/runTriggers.js b/server/tools/dbs/runTriggers.js
new file mode 100644
index 0000000000..0324f8d117
--- /dev/null
+++ b/server/tools/dbs/runTriggers.js
@@ -0,0 +1,27 @@
+'use strict';
+
+const { sequelize } = require('../../db/models');
+
+const functions = [
+ // functions
+ '../../db/functions/create-uuid.js',
+ // triggers
+ '../../db/triggers/create_verification-code_after_user.js',
+ '../../db/triggers/update_userlevel_after_verify.js',
+];
+
+let sql = '';
+functions.forEach((f) => {
+ sql += require(f);
+});
+
+sequelize
+ .query(sql, { raw: true })
+ .then(() => {
+ console.log('Triggers and functions are successfully set');
+ process.exit(0);
+ })
+ .catch((err) => {
+ console.error('Error', err);
+ process.exit(1);
+ });
diff --git a/server/tools/dbs/setActivationCode.js b/server/tools/dbs/setActivationCode.js
new file mode 100644
index 0000000000..692cddcfe7
--- /dev/null
+++ b/server/tools/dbs/setActivationCode.js
@@ -0,0 +1,20 @@
+const { Status } = require('../../db/models');
+
+const { ACTIVATION_CODE, API_KEY, API_SECRET } = process.env;
+
+Status.findOne({}).then((status) => {
+ status.update({
+ activation_code: ACTIVATION_CODE,
+ activated: true,
+ api_key: API_KEY,
+ api_secret: API_SECRET,
+ })
+ .then(() => {
+ console.log('Activation Code and keys are set');
+ process.exit(0);
+ })
+ .catch((err) => {
+ console.error('Error', err);
+ process.exit(1);
+ });
+});
\ No newline at end of file
diff --git a/server/tools/dbs/setConfig.js b/server/tools/dbs/setConfig.js
new file mode 100644
index 0000000000..adc1348b74
--- /dev/null
+++ b/server/tools/dbs/setConfig.js
@@ -0,0 +1,111 @@
+'use strict';
+
+const { Status } = require('../../db/models');
+const { publisher } = require('../../db/pubsub');
+const { CONFIGURATION_CHANNEL } = require('../../constants');
+
+const {
+ API_NAME,
+ API_HOST,
+ LOGO_IMAGE,
+ EMAILS_TIMEZONE,
+ VALID_LANGUAGES,
+ NEW_USER_DEFAULT_LANGUAGE,
+ SENDER_EMAIL,
+ DEFAULT_THEME,
+ NEW_USER_IS_ACTIVATED,
+ SMTP_SERVER,
+ SMTP_PORT,
+ SMTP_USER,
+ SMTP_PASSWORD,
+ SEND_EMAIL_TO_SUPPORT,
+ ALLOWED_DOMAINS,
+ CAPTCHA_SECRET_KEY,
+ ADMIN_EMAIL,
+ CAPTCHA_SITE_KEY,
+ ADMIN_WHITELIST_IP,
+ NATIVE_CURRENCY
+} = process.env;
+
+const kit = {
+ api_name: API_NAME || '',
+ description: '',
+ color: {},
+ interface: {},
+ icons: {},
+ strings: {},
+ title: '',
+ links: {
+ twitter: '',
+ instagram: '',
+ telegram: '',
+ facebook: '',
+ linkedin: '',
+ github: '',
+ contact: '',
+ helpdesk: '',
+ terms: '',
+ privacy: '',
+ api: API_HOST || '',
+ whitepaper: '',
+ website: '',
+ information: '',
+ },
+ setup_completed: false,
+ native_currency: NATIVE_CURRENCY,
+ logo_image: LOGO_IMAGE || 'https://dash.testnet.bitholla.com/assets/img/hex-pattern-icon-black-01.svg',
+ valid_languages: VALID_LANGUAGES || 'en,fa,ko,ar,fr',
+ new_user_is_activated: (NEW_USER_IS_ACTIVATED && NEW_USER_IS_ACTIVATED === 'true') || false,
+ captcha: {
+ site_key: CAPTCHA_SITE_KEY
+ },
+ defaults: {
+ language: NEW_USER_DEFAULT_LANGUAGE || 'en',
+ theme: DEFAULT_THEME || 'white'
+ },
+ features: {},
+ meta: {}
+};
+
+const secrets = {
+ allowed_domains: ALLOWED_DOMAINS ? ALLOWED_DOMAINS.split(',') : [],
+ admin_whitelist: ADMIN_WHITELIST_IP ? ADMIN_WHITELIST_IP.split(',') : [],
+ security: {
+ token_time: '24h',
+ withdrawal_token_expiry: 300000
+ },
+ emails: {
+ timezone: EMAILS_TIMEZONE || '',
+ send_email_to_support: (SEND_EMAIL_TO_SUPPORT && SEND_EMAIL_TO_SUPPORT === 'true') || false,
+ sender: SENDER_EMAIL || '',
+ audit: ADMIN_EMAIL || ''
+ },
+ captcha: {
+ secret_key: CAPTCHA_SECRET_KEY
+ },
+ smtp: {
+ server: SMTP_SERVER || '',
+ port: SMTP_PORT || 587,
+ user: SMTP_USER,
+ password: SMTP_PASSWORD
+ }
+};
+
+Status.findOne({}).then((status) => {
+ status.update({ kit, secrets }, { fields: ['kit', 'secrets'], returning: true })
+ .then((data) => {
+ publisher.publish(
+ CONFIGURATION_CHANNEL,
+ JSON.stringify({
+ type: 'update',
+ data: { kit: data.dataValues.kit, secrets: data.dataValues.secrets }
+ })
+ );
+ console.log('Kit and Secrets are updated');
+ process.exit(0);
+ })
+ .catch((err) => {
+ console.error('Error', err);
+ process.exit(1);
+ });
+});
\ No newline at end of file
diff --git a/server/tools/dbs/setExchange.js b/server/tools/dbs/setExchange.js
new file mode 100644
index 0000000000..de02111853
--- /dev/null
+++ b/server/tools/dbs/setExchange.js
@@ -0,0 +1,28 @@
+const { Status } = require('../../db/models');
+
+const { ACTIVATION_CODE, EXCHANGE_NAME, EXCHANGE_URL } = process.env;
+
+const exchange = {
+ activated: true
+};
+if (EXCHANGE_NAME) {
+ exchange.name = EXCHANGE_NAME;
+}
+if (EXCHANGE_URL) {
+ exchange.url = EXCHANGE_URL;
+}
+if (ACTIVATION_CODE) {
+ exchange.activation_code = ACTIVATION_CODE;
+}
+
+Status.findOne({}).then((status) => {
+ status.update(exchange)
+ .then(() => {
+ console.log('Exchange is updated');
+ process.exit(0);
+ })
+ .catch((err) => {
+ console.error('Error', err);
+ process.exit(1);
+ });
+});
\ No newline at end of file
diff --git a/server/tools/dbs/setKitVersion.js b/server/tools/dbs/setKitVersion.js
new file mode 100644
index 0000000000..f6a71dc7c7
--- /dev/null
+++ b/server/tools/dbs/setKitVersion.js
@@ -0,0 +1,19 @@
+const { Status } = require('../../db/models');
+const { publisher } = require('../../db/pubsub');
+const { INIT_CHANNEL } = require('../../constants');
+
+Status.findOne({})
+ .then((status) => {
+ return status.update({
+ kit_version: process.env.KIT_VERSION || status.kit_version
+ }, { fields: ['kit_version'], returning: true });
+ })
+ .then(() => {
+ publisher.publish(INIT_CHANNEL, JSON.stringify({ type: 'refreshInit' }));
+ console.log('Kit version is updated');
+ process.exit(0);
+ })
+ .catch((err) => {
+ console.error('Error', err);
+ process.exit(1);
+ });
\ No newline at end of file
diff --git a/server/tools/dbs/setSecurity.js b/server/tools/dbs/setSecurity.js
new file mode 100644
index 0000000000..4c808ed0ec
--- /dev/null
+++ b/server/tools/dbs/setSecurity.js
@@ -0,0 +1,45 @@
+const { Status } = require('../../db/models');
+const { CONFIGURATION_CHANNEL } = require('../../constants');
+const {
+ ALLOWED_DOMAINS,
+ CAPTCHA_SECRET_KEY,
+ CAPTCHA_SITE_KEY,
+ ADMIN_WHITELIST_IP
+} = process.env;
+const { publisher } = require('../../db/pubsub');
+
+Status.findOne({})
+ .then((status) => {
+ const kit = {
+ ...status.kit,
+ captcha: {
+ site_key: CAPTCHA_SITE_KEY
+ }
+ };
+
+ const secrets = {
+ ...status.secrets,
+ allowed_domains: ALLOWED_DOMAINS ? ALLOWED_DOMAINS.split(',') : [],
+ admin_whitelist: ADMIN_WHITELIST_IP ? ADMIN_WHITELIST_IP.split(',') : [],
+ captcha: {
+ secret_key: CAPTCHA_SECRET_KEY
+ }
+ };
+
+ return status.update({ kit, secrets }, { fields: ['kit', 'secrets'], returning: true });
+ })
+ .then((data) => {
+ publisher.publish(
+ CONFIGURATION_CHANNEL,
+ JSON.stringify({
+ type: 'update',
+ data: { kit: data.kit, secrets: data.secrets }
+ })
+ );
+ console.log('Security values are reset');
+ process.exit(0);
+ })
+ .catch((err) => {
+ console.error('Error', err);
+ process.exit(1);
+ });
\ No newline at end of file
diff --git a/server/tools/general/random.js b/server/tools/general/random.js
new file mode 100644
index 0000000000..540dcfc5b6
--- /dev/null
+++ b/server/tools/general/random.js
@@ -0,0 +1,6 @@
+'use strict';
+
+const crypto = require('crypto');
+
+const size = parseInt(process.env.RANDOM_SIZE) || 20;
+console.log(crypto.randomBytes(size).toString('hex'));
\ No newline at end of file
diff --git a/server/tools/hollaex-kit.env.local.example b/server/tools/hollaex-kit.env.local.example
new file mode 100644
index 0000000000..58abed7655
--- /dev/null
+++ b/server/tools/hollaex-kit.env.local.example
@@ -0,0 +1,85 @@
+DEPLOYMENT_MODE=all
+
+API_HOST=localhost
+API_NAME=hollaex-kit
+DOMAIN=http://localhost:3000
+NETWORK=testnet
+
+ACTIVATION_CODE=
+
+NATIVE_CURRENCY=
+
+CURRENCIES=xht,usdt,btc,eth,bch,xrp
+DEFAULT_THEME=dark
+EMAILS_TIMEZONE=UTC
+LOGO_IMAGE=https://s3.ap-northeast-2.amazonaws.com/public-holla-images/bitholla-logo.png
+NEW_USER_DEFAULT_LANGUAGE=en
+NEW_USER_IS_ACTIVATED=true
+NODE_ENV=development
+PAIRS=xht-usdt
+
+PORT=10010
+WEBSOCKET_PORT=10080
+
+PUBSUB_HOST=hollaex-kit-redis
+PUBSUB_PORT=6379
+PUBSUB_PASSWORD=bitholla
+REDIS_HOST=hollaex-kit-redis
+REDIS_PORT=6379
+REDIS_PASSWORD=bitholla
+
+SENDER_EMAIL=support@holla.tech
+
+SUPPORT_EMAIL=support@holla.tech
+VALID_LANGUAGES=en
+
+
+ADMIN_EMAIL=admin@hollaex.com
+ADMIN_PASSWORD=
+
+ISSUER=bitholla
+SECRET=secret
+CAPTCHA_SECRET_KEY=
+CAPTCHA_SITE_KEY=
+
+ADMIN_WHITELIST_IP=
+
+DB_HOST=hollaex-kit-db
+DB_NAME=hollaex
+DB_PASSWORD=root
+DB_PORT=5432
+DB_USERNAME=admin
+DB_DIALECT=postgres
+DB_SSL=false
+
+FRESHDESK_HOST=
+FRESHDESK_AUTH=
+FRESHDESK_KEY=
+
+ZENDESK_HOST=
+ZENDESK_KEY=
+
+ID_DOCS_BUCKET=
+S3_ACCESSKEYID=
+S3_SECRETACCESSKEY=
+SES_ACCESSKEYID=
+SES_REGION=
+SES_SECRETACCESSKEY=
+SNS_ACCESSKEYID=
+SNS_REGION=
+SNS_SECRETACCESSKEY=
+
+SMTP_SERVER=
+SMTP_PORT=
+SMTP_USER=
+SMTP_PASSWORD=
+
+PLUGINS=
+
+SEND_EMAIL_TO_SUPPORT=
+ALLOWED_DOMAINS=
+
+API_KEY=
+API_SECRET=
+
+KIT_VERSION=
\ No newline at end of file
diff --git a/server/tools/nginx/conf.d/upstream.conf b/server/tools/nginx/conf.d/upstream.conf
new file mode 100644
index 0000000000..a827cfd8a4
--- /dev/null
+++ b/server/tools/nginx/conf.d/upstream.conf
@@ -0,0 +1,13 @@
+
+ upstream api {
+ server hollaex-kit-server:10010;
+ }
+
+ upstream socket {
+ ip_hash;
+ server hollaex-kit-server:10080;
+ }
+
+ upstream plugins {
+ server hollaex-kit-server:10011;
+ }
\ No newline at end of file
diff --git a/server/tools/nginx/logs/error.log b/server/tools/nginx/logs/error.log
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/server/tools/nginx/logs/hollaex.access.log b/server/tools/nginx/logs/hollaex.access.log
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/server/tools/nginx/mime.types b/server/tools/nginx/mime.types
new file mode 100644
index 0000000000..25ae94eb7a
--- /dev/null
+++ b/server/tools/nginx/mime.types
@@ -0,0 +1,48 @@
+types {
+ text/html html htm shtml;
+ text/css css;
+ text/xml xml rss;
+ image/gif gif;
+ image/jpeg jpeg jpg;
+ application/x-javascript js;
+ text/plain txt;
+ text/x-component htc;
+ text/mathml mml;
+ image/png png;
+ image/x-icon ico;
+ image/x-jng jng;
+ image/vnd.wap.wbmp wbmp;
+ application/java-archive jar war ear;
+ application/mac-binhex40 hqx;
+ application/pdf pdf;
+ application/x-cocoa cco;
+ application/x-java-archive-diff jardiff;
+ application/x-java-jnlp-file jnlp;
+ application/x-makeself run;
+ application/x-perl pl pm;
+ application/x-pilot prc pdb;
+ application/x-rar-compressed rar;
+ application/x-redhat-package-manager rpm;
+ application/x-sea sea;
+ application/x-shockwave-flash swf;
+ application/x-stuffit sit;
+ application/x-tcl tcl tk;
+ application/x-x509-ca-cert der pem crt;
+ application/x-xpinstall xpi;
+ application/zip zip;
+ application/octet-stream deb;
+ application/octet-stream bin exe dll;
+ application/octet-stream dmg;
+ application/octet-stream eot;
+ application/octet-stream iso img;
+ application/octet-stream msi msp msm;
+ audio/mpeg mp3;
+ audio/x-realaudio ra;
+ video/mpeg mpeg mpg;
+ video/quicktime mov;
+ video/x-flv flv;
+ video/x-msvideo avi;
+ video/x-ms-wmv wmv;
+ video/x-ms-asf asx asf;
+ video/x-mng mng;
+}
diff --git a/server/tools/nginx/nginx.conf b/server/tools/nginx/nginx.conf
new file mode 100644
index 0000000000..cfc0bdda88
--- /dev/null
+++ b/server/tools/nginx/nginx.conf
@@ -0,0 +1,69 @@
+worker_processes 4;
+
+error_log /var/log/error.log warn;
+pid /var/log/nginx.pid;
+
+worker_rlimit_nofile 8192;
+
+events {
+ worker_connections 1024;
+}
+
+http {
+ include /etc/nginx/mime.types;
+ include /etc/nginx/proxy.conf;
+ include /etc/nginx/conf.d/upstream.conf;
+
+ default_type application/octet-stream;
+ log_format main '$remote_addr - $remote_user [$time_local] $status '
+ '"$request" $body_bytes_sent "$http_referer" '
+ '"$http_user_agent" "$http_x_forwarded_for"';
+
+ limit_req_zone $remote_addr zone=api:1m rate=2r/s;
+ limit_req_zone $remote_addr zone=order:1m rate=5r/s;
+
+ #Server blockes will be automatically generated
+
+server {
+ listen 80;
+ server_name hollaex;
+ access_log /var/log/hollaex.access.log main;
+
+ include /etc/nginx/conf.d/plugin*.conf;
+
+ location /api-docs {
+ proxy_pass http://api;
+ }
+
+ location /docs {
+ proxy_pass http://api;
+ }
+
+ location /v2/order {
+ proxy_pass http://api;
+ }
+
+ location /v2 {
+ proxy_pass http://api;
+ }
+
+ location /plugins {
+ proxy_pass http://plugins;
+ }
+
+ location /stream {
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "upgrade";
+
+ proxy_pass http://socket;
+ }
+
+ error_page 429 /429.html;
+ location = /429.html {
+ root /usr/share/nginx/html;
+ internal;
+ }
+ }
+ }
+
diff --git a/server/tools/nginx/proxy.conf b/server/tools/nginx/proxy.conf
new file mode 100644
index 0000000000..966876fade
--- /dev/null
+++ b/server/tools/nginx/proxy.conf
@@ -0,0 +1,11 @@
+proxy_redirect off;
+proxy_set_header Host $host;
+proxy_set_header X-Real-IP $remote_addr;
+proxy_set_header X-Real-Origin $http_origin;
+proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+client_max_body_size 10m;
+client_body_buffer_size 128k;
+proxy_connect_timeout 90;
+proxy_send_timeout 90;
+proxy_read_timeout 90;
+proxy_buffers 32 4k;
diff --git a/server/tools/nginx/static/429.html b/server/tools/nginx/static/429.html
new file mode 100644
index 0000000000..3b90326039
--- /dev/null
+++ b/server/tools/nginx/static/429.html
@@ -0,0 +1,9 @@
+
+
+ Too Many Requests
+
+
+ Too Many Requests
+ There is a limit of 1 requests per second. Try again soon.
+
+
diff --git a/server/utils/conversion.js b/server/utils/conversion.js
new file mode 100644
index 0000000000..e39ff4bc3e
--- /dev/null
+++ b/server/utils/conversion.js
@@ -0,0 +1,9 @@
+'use strict';
+
+const toBool = (value) => {
+ return value === 'true' ? true : value === 'false' ? false : value;
+};
+
+module.exports = {
+ toBool
+};
\ No newline at end of file
diff --git a/server/utils/index.js b/server/utils/index.js
new file mode 100644
index 0000000000..89fa63f3e4
--- /dev/null
+++ b/server/utils/index.js
@@ -0,0 +1,13 @@
+'use strict';
+
+const initializeMode = (modeString = '') => {
+ let modes = [];
+ modeString.split(',').forEach((mode = '') => {
+ modes.push(mode.toLowerCase().trim());
+ });
+ return modes;
+};
+
+module.exports = {
+ initializeMode
+};
diff --git a/server/utils/security.js b/server/utils/security.js
new file mode 100644
index 0000000000..e99d9c445a
--- /dev/null
+++ b/server/utils/security.js
@@ -0,0 +1,31 @@
+'use strict';
+
+const bcrypt = require('bcryptjs');
+const randomString = require('random-string');
+
+
+const generateHash = (password) => {
+ const { SALT_ROUNDS } = require('../constants');
+ return bcrypt.hash(password, SALT_ROUNDS);
+};
+
+const generateHashSync = (password) => {
+ const { SALT_ROUNDS } = require('../constants');
+ return bcrypt.hashSync(password, SALT_ROUNDS);
+};
+
+const generateAffiliationCode = () => {
+ const { AFFILIATION_CODE_LENGTH } = require('../constants');
+ return randomString({
+ length: AFFILIATION_CODE_LENGTH,
+ numeric: true,
+ letters: true
+ }).toUpperCase();
+};
+
+
+module.exports = {
+ generateHash,
+ generateHashSync,
+ generateAffiliationCode
+};
\ No newline at end of file
diff --git a/server/utils/strings.js b/server/utils/strings.js
new file mode 100644
index 0000000000..05254091e4
--- /dev/null
+++ b/server/utils/strings.js
@@ -0,0 +1,15 @@
+'use strict';
+const toolsLib = require('hollaex-tools-lib');
+const DEFAULT_LANGUAGE = () => toolsLib.getKitConfig().defaults.language;
+const VALID_LANGUAGES = () => toolsLib.getKitConfig().valid_languages;
+
+const getValidLanguage = (language = DEFAULT_LANGUAGE()) => {
+ if (VALID_LANGUAGES().indexOf(language) > -1) {
+ return language;
+ }
+ return DEFAULT_LANGUAGE();
+};
+
+module.exports = {
+ getValidLanguage
+};
diff --git a/server/ws/channel.js b/server/ws/channel.js
new file mode 100644
index 0000000000..8ab554133a
--- /dev/null
+++ b/server/ws/channel.js
@@ -0,0 +1,54 @@
+'use strict';
+
+const { findIndex } = require('lodash');
+const { loggerWebsocket } = require('../config/logger');
+
+let channels = {};
+
+const getChannels = () => {
+ return channels;
+};
+
+const addSubscriber = (channel, ws) => {
+ if (!channels[channel]) {
+ channels[channel] = [];
+ }
+
+ const index = findIndex(channels[channel], socket => {
+ return socket.id == ws.id;
+ });
+
+ if (index === -1) {
+ channels[channel].push(ws);
+ loggerWebsocket.verbose(ws.id, 'ws/channel/addSubscriber', channel, ws.id);
+ } else {
+ throw new Error(`Already subscribed to channel ${channel}`);
+ }
+};
+
+const removeSubscriber = (channel, ws, type = undefined) => {
+ const index = findIndex(channels[channel], socket => {
+ return socket.id == ws.id;
+ });
+
+ if (index > -1) {
+ channels[channel].splice(index, 1);
+ if (type === 'private' && channels[channel].length === 0) {
+ delete channels[channel];
+ }
+ loggerWebsocket.verbose(ws.id, 'ws/channel/removeSubscriber', channel, ws.id);
+ } else {
+ throw new Error(`Not subscribed to channel ${channel}`);
+ }
+};
+
+const resetChannels = () => {
+ channels = {};
+};
+
+module.exports = {
+ getChannels,
+ addSubscriber,
+ removeSubscriber,
+ resetChannels
+};
\ No newline at end of file
diff --git a/server/ws/chat/ban.js b/server/ws/chat/ban.js
new file mode 100644
index 0000000000..5415947dac
--- /dev/null
+++ b/server/ws/chat/ban.js
@@ -0,0 +1,62 @@
+'use strict';
+const { storeData, restoreData } = require('./utils');
+const { getUserIdByUsername } = require('./username');
+const { loggerChat } = require('../../config/logger');
+const { getChannels } = require('../channel');
+const { each } = require('lodash');
+const { WEBSOCKET_CHANNEL } = require('../../constants');
+
+const BANS_KEY = 'WS:BANS';
+
+let BANS = {};
+
+const banUser = (username) => {
+ if (username) {
+ getUserIdByUsername(username).then((id) => {
+ BANS[id] = username;
+ storeData(BANS_KEY, BANS);
+ each(getChannels()[WEBSOCKET_CHANNEL('chat')], (ws) => {
+ sendBannedUsers(ws);
+ });
+ });
+ }
+};
+
+const unbanUser = (user_id) => {
+ if (user_id) {
+ BANS[user_id] = 0;
+ delete BANS[user_id];
+ storeData(BANS_KEY, BANS);
+ each(getChannels()[WEBSOCKET_CHANNEL('chat')], (ws) => {
+ sendBannedUsers(ws);
+ });
+ }
+};
+
+const getBannedUsers = () => {
+ return BANS;
+};
+
+const sendBannedUsers = (ws) => {
+ ws.send(JSON.stringify({
+ topic: 'chat',
+ action: 'bannedUsers',
+ data: getBannedUsers()
+ }));
+};
+
+const isUserBanned = (id) => {
+ return BANS[id];
+};
+
+restoreData(BANS_KEY).then((bans = {}) => {
+ loggerChat.debug('retore_bannedUsers', bans);
+ BANS = bans;
+});
+
+module.exports = {
+ banUser,
+ unbanUser,
+ isUserBanned,
+ sendBannedUsers
+};
diff --git a/server/ws/chat/index.js b/server/ws/chat/index.js
new file mode 100644
index 0000000000..9af971eaf6
--- /dev/null
+++ b/server/ws/chat/index.js
@@ -0,0 +1,94 @@
+'use strict';
+const { debounce, each } = require('lodash');
+const {
+ CHAT_MESSAGE_CHANNEL,
+ CHAT_MAX_MESSAGES,
+ WEBSOCKET_CHANNEL
+} = require('../../constants');
+const { storeData, restoreData } = require('./utils');
+const { isUserBanned } = require('./ban');
+const moment = require('moment');
+const { subscriber, publisher } = require('../../db/pubsub');
+const { getChannels } = require('../channel');
+
+const MESSAGES_KEY = 'WS:MESSAGES';
+let MESSAGES = [];
+
+// redis subscriber, get message and updates MESSAGES array
+subscriber.subscribe(CHAT_MESSAGE_CHANNEL);
+subscriber.on('message', (channel, data) => {
+ if (channel === CHAT_MESSAGE_CHANNEL) {
+ data = JSON.parse(data);
+ if (data.type === 'message') {
+ MESSAGES.push(data.data);
+ } else if (data.type === 'deleteMessage') {
+ MESSAGES.splice(data.data, 1);
+ }
+ }
+});
+
+const getMessages = (limit = CHAT_MAX_MESSAGES) => {
+ return MESSAGES.slice(-limit);
+};
+
+const sendInitialMessages = (ws) => {
+ ws.send(JSON.stringify({
+ topic: 'chat',
+ action: 'init',
+ data: getMessages()
+ }));
+};
+
+const addMessage = (username, verification_level, userId, message) => {
+ const timestamp = moment().unix();
+ if (!isUserBanned(userId)) {
+ const data = {
+ id: `${timestamp}-${username}`,
+ username,
+ verification_level,
+ message,
+ timestamp
+ };
+ publisher.publish(CHAT_MESSAGE_CHANNEL, JSON.stringify({ type: 'message', data }));
+ publishChatMessage('addMessage', data);
+ maintenanceMessageList();
+ } else {
+ throw new Error('User is banned');
+ }
+};
+
+const deleteMessage = (idToDelete) => {
+ const indexOfMessage = MESSAGES.findIndex(({ id }) => id === idToDelete);
+ if (indexOfMessage > -1) {
+ publisher.publish(CHAT_MESSAGE_CHANNEL, JSON.stringify({ type: 'deleteMessage', data: indexOfMessage }));
+ maintenanceMessageList();
+ publishChatMessage('deleteMessage', idToDelete);
+ }
+};
+
+const publishChatMessage = (event, data) => {
+ each(getChannels()[WEBSOCKET_CHANNEL('chat')], (ws) => {
+ ws.send(JSON.stringify({
+ topic: 'chat',
+ action: event,
+ data
+ }));
+ });
+};
+
+const maintenanceMessageList = debounce(() => {
+ MESSAGES = getMessages();
+ storeData(MESSAGES_KEY, MESSAGES);
+}, 5000);
+
+restoreData(MESSAGES_KEY).then((messages) => {
+ MESSAGES = messages;
+});
+
+module.exports = {
+ getMessages,
+ addMessage,
+ deleteMessage,
+ publishChatMessage,
+ sendInitialMessages
+};
diff --git a/server/ws/chat/username.js b/server/ws/chat/username.js
new file mode 100644
index 0000000000..cc3fe8806c
--- /dev/null
+++ b/server/ws/chat/username.js
@@ -0,0 +1,56 @@
+'use strict';
+
+const { User } = require('../../db/models');
+const DAY = 1000 * 60 * 60 * 24;
+
+let usernames = {};
+
+setInterval(() => {
+ usernames = {};
+}, DAY);
+
+const findUsername = (id) => {
+ return User.findOne({
+ where: { id },
+ attributes: ['id', 'username', 'verification_level', 'settings']
+ }).then((user) => {
+ return [
+ user.username,
+ user.settings.chat.set_username,
+ user.verification_level
+ ];
+ });
+};
+
+const getUsername = (id) => {
+ if (usernames[id]) {
+ return Promise.resolve(usernames[id]);
+ } else {
+ return changeUsername(id);
+ }
+};
+
+const changeUsername = async (id) => {
+ return findUsername(id).then(
+ ([username, set_username = false, verification_level = 1]) => {
+ if (set_username) {
+ usernames[id] = { username, verification_level };
+ }
+ return { username, verification_level };
+ }
+ );
+};
+const getUserIdByUsername = (username) => {
+ return User.findOne({
+ where: { username },
+ attributes: ['id', 'username']
+ }).then((user) => {
+ return user.id;
+ });
+};
+
+module.exports = {
+ getUsername,
+ getUserIdByUsername,
+ changeUsername
+};
diff --git a/server/ws/chat/utils.js b/server/ws/chat/utils.js
new file mode 100644
index 0000000000..4a594ca16b
--- /dev/null
+++ b/server/ws/chat/utils.js
@@ -0,0 +1,22 @@
+'use strict';
+const redis = require('../../db/redis').duplicate();
+
+const storeData = (key = '', data = []) => {
+ return redis.setAsync(key, JSON.stringify(data));
+};
+
+const restoreData = (key = '') => {
+ return redis.getAsync(key).then((data) => {
+ if (!data) {
+ if(key === 'WS:BANS') return {};
+ return [];
+ }
+ data = JSON.parse(data);
+ return data;
+ });
+};
+
+module.exports = {
+ storeData,
+ restoreData
+};
diff --git a/server/ws/hub.js b/server/ws/hub.js
new file mode 100644
index 0000000000..cecc824a49
--- /dev/null
+++ b/server/ws/hub.js
@@ -0,0 +1,121 @@
+'use strict';
+
+const { loggerWebsocket } = require('../config/logger');
+const { checkStatus } = require('../init');
+const { subscriber } = require('../db/pubsub');
+const { WS_HUB_CHANNEL, WEBSOCKET_CHANNEL } = require('../constants');
+const { each } = require('lodash');
+const { getChannels, resetChannels } = require('./channel');
+const { updateOrderbookData, updateTradeData, resetPublicData } = require('./publicData');
+
+let networkNodeLib = null;
+let wsConnected = false;
+const hubConnected = () => wsConnected;
+
+subscriber.on('message', (channel, message) => {
+ if (channel === WS_HUB_CHANNEL) {
+ const { action } = JSON.parse(message);
+ switch(action) {
+ case 'restart':
+ if (hubConnected() && networkNodeLib && networkNodeLib.wsConnected()) {
+ networkNodeLib.disconnect();
+ connect();
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ return;
+});
+
+subscriber.subscribe(WS_HUB_CHANNEL);
+
+const connect = () => {
+ checkStatus()
+ .then((nodeLib) => {
+ if (nodeLib) {
+ networkNodeLib = nodeLib;
+ networkNodeLib.connect(['orderbook', 'trade']);
+
+ networkNodeLib.ws.on('open', () => {
+ wsConnected = true;
+ loggerWebsocket.info('ws/hub open');
+ });
+
+ networkNodeLib.ws.on('unexpected-response', () => {
+ wsConnected = false;
+ loggerWebsocket.error('ws/hub unexpected-response');
+ });
+
+ networkNodeLib.ws.on('error', (err) => {
+ wsConnected = false;
+ loggerWebsocket.error('ws/hub err', err.message);
+ });
+
+ networkNodeLib.ws.on('close', () => {
+ wsConnected = false;
+ loggerWebsocket.info('ws/hub close');
+ closeAllClients();
+ });
+
+ networkNodeLib.ws.on('message', (data) => {
+ if (data !== 'pong') {
+ try {
+ data = JSON.parse(data);
+ } catch (err) {
+ loggerWebsocket.error('ws/hub message err', err.message);
+ }
+ handleHubData(data);
+ }
+ });
+ }
+ });
+};
+
+const sendNetworkWsMessage = (op, topic, networkId) => {
+ if (hubConnected()) {
+ networkNodeLib[op]([`${topic}:${networkId}`]);
+ }
+};
+
+const handleHubData = (data) => {
+ switch (data.topic) {
+ case 'orderbook':
+ updateOrderbookData(data);
+ each(getChannels()[WEBSOCKET_CHANNEL(data.topic, data.symbol)], (ws) => {
+ ws.send(JSON.stringify(data));
+ });
+ break;
+ case 'trade':
+ updateTradeData(data);
+ each(getChannels()[WEBSOCKET_CHANNEL(data.topic, data.symbol)], (ws) => {
+ ws.send(JSON.stringify(data));
+ });
+ break;
+ case 'order':
+ case 'wallet':
+ each(getChannels()[WEBSOCKET_CHANNEL(data.topic, data.user_id)], (ws) => {
+ ws.send(JSON.stringify(data));
+ });
+ break;
+ default:
+ break;
+ }
+};
+
+const closeAllClients = () => {
+ each(getChannels(), (channel) => {
+ each(channel, (ws) => {
+ ws.close();
+ });
+ });
+ resetChannels();
+ resetPublicData();
+};
+
+module.exports = {
+ sendNetworkWsMessage,
+ connect,
+ hubConnected
+};
diff --git a/server/ws/index.js b/server/ws/index.js
new file mode 100644
index 0000000000..7a65af1543
--- /dev/null
+++ b/server/ws/index.js
@@ -0,0 +1,93 @@
+'use strict';
+
+const wss = require('./server');
+const uuid = require('uuid/v4');
+const { loggerWebsocket } = require('../config/logger');
+const {
+ WS_EMPTY_MESSAGE,
+ WS_WRONG_INPUT,
+ WS_WELCOME,
+ WS_UNSUPPORTED_OPERATION,
+ WS_USER_AUTHENTICATED
+} = require('../messages');
+const { initializeTopic, terminateTopic, authorizeUser, terminateClosedChannels, handleChatData } = require('./sub');
+const { connect, hubConnected } = require('./hub');
+const { setWsHeartbeat } = require('ws-heartbeat/server');
+
+wss.on('connection', (ws, req) => {
+ // attaching unique id and authorization to the socket
+ ws.id = uuid();
+ ws.auth = req.auth;
+
+ // send welcome message
+ ws.send(JSON.stringify({ message: WS_WELCOME }));
+
+ // send authenticated message if authenticated
+ if (ws.auth.sub) {
+ ws.send(JSON.stringify({ message: WS_USER_AUTHENTICATED(ws.auth.sub.email) }));
+ }
+
+ ws.on('message', (message) => {
+ try {
+ // throw error if empty message
+ if (!message || message.length === 0) {
+ throw new Error(WS_EMPTY_MESSAGE);
+ }
+
+ try {
+ message = JSON.parse(message);
+ } catch (err) {
+ throw new Error(WS_WRONG_INPUT);
+ }
+
+ const { op, args } = message;
+ if (op === 'ping') {
+ ws.send(JSON.stringify({ message: 'pong' }));
+ } else if (op === 'subscribe') {
+ loggerWebsocket.info(ws.id, 'ws/index/message', message);
+ args.forEach(arg => {
+ let [topic, symbol] = arg.split(':');
+ initializeTopic(topic, ws, symbol);
+ });
+ } else if (op === 'unsubscribe') {
+ loggerWebsocket.info(ws.id, 'ws/index/message', message);
+ args.forEach(arg => {
+ let [topic, symbol] = arg.split(':');
+ terminateTopic(topic, ws, symbol);
+ });
+ } else if (op === 'auth') {
+ loggerWebsocket.info(ws.id, 'ws/index/message auth');
+ const credentials = args[0];
+ const ip = req.socket ? req.socket.remoteAddress : undefined;
+ authorizeUser(credentials, ws, ip);
+ } else if (op === 'chat') {
+ loggerWebsocket.info(ws.id, 'ws/index/message', message);
+ args.forEach(arg => {
+ const { action, data } = arg;
+ handleChatData(action, ws, data);
+ });
+ } else {
+ throw new Error(WS_UNSUPPORTED_OPERATION);
+ }
+ } catch (err) {
+ if (err && err.message) {
+ loggerWebsocket.error(ws.id, 'ws/index/message catch', err.message);
+ ws.send(JSON.stringify({ error: err.message }));
+ } else {
+ loggerWebsocket.error(ws.id, 'ws/index/message catch', err);
+ ws.send(JSON.stringify({ error: WS_WRONG_INPUT }));
+ }
+ }
+ });
+
+ ws.on('close', () => {
+ if (hubConnected()) {
+ terminateClosedChannels(ws);
+ }
+ });
+});
+
+// If no message received within a minute, close connection
+setWsHeartbeat(wss, () => {}, 60000);
+
+connect();
\ No newline at end of file
diff --git a/server/ws/publicData.js b/server/ws/publicData.js
new file mode 100644
index 0000000000..3ee2fa4dc1
--- /dev/null
+++ b/server/ws/publicData.js
@@ -0,0 +1,36 @@
+'use strict';
+
+let publicData = {
+ orderbook: {},
+ trade: {}
+};
+
+const getPublicData = () => publicData;
+
+const resetPublicData = () => {
+ publicData = {
+ orderbook: {},
+ trade: {}
+ };
+};
+
+const updateOrderbookData = (data) => {
+ publicData.orderbook[data.symbol] = {...data, action: 'partial'};
+};
+
+const updateTradeData = (data) => {
+ if (data.action === 'partial') {
+ publicData.trade[data.symbol] = data;
+ } else {
+ const updatedTrades = data.data.concat(publicData.trade[data.symbol].data);
+ publicData.trade[data.symbol].time = data.time;
+ publicData.trade[data.symbol].data = updatedTrades.length <= 50 ? updatedTrades : updatedTrades.slice(0, 50);
+ }
+};
+
+module.exports = {
+ getPublicData,
+ resetPublicData,
+ updateOrderbookData,
+ updateTradeData
+};
\ No newline at end of file
diff --git a/server/ws/server.js b/server/ws/server.js
new file mode 100644
index 0000000000..1262ca8595
--- /dev/null
+++ b/server/ws/server.js
@@ -0,0 +1,67 @@
+'use strict';
+
+const WebSocket = require('ws');
+const { loggerWebsocket } = require('../config/logger');
+const toolsLib = require('hollaex-tools-lib');
+const { MULTIPLE_API_KEY } = require('../messages');
+const url = require('url');
+const { hubConnected } = require('./hub');
+
+const PORT = process.env.WEBSOCKET_PORT || 10080;
+
+const wss = new WebSocket.Server({
+ port: PORT,
+ verifyClient: (info, next) => {
+ try {
+ if (!hubConnected()) {
+ throw new Error('Hub websocket is disconnected');
+ }
+
+ const query = url.parse(info.req.url, true).query;
+ const bearerToken = query.authorization;
+ const hmacKey = query['api-key'];
+ info.req.auth = {};
+ if (bearerToken && hmacKey) {
+ // throw error if both bearer and hmac authentication methods are given
+ loggerWebsocket.error('ws/server', MULTIPLE_API_KEY);
+ return next(false, 400, MULTIPLE_API_KEY);
+ } else if (bearerToken) {
+ // Function will set req.auth to authenticated token object if successful
+ info.req.headers.authorization = bearerToken;
+ toolsLib.security.verifyBearerTokenMiddleware(info.req, null, bearerToken, (err) => {
+ if (err) {
+ loggerWebsocket.error('ws/server', err);
+ return next(false, 403, err.message);
+ } else {
+ return next(true);
+ }
+ }, true);
+ } else if (hmacKey) {
+ info.req.headers['api-key'] = hmacKey;
+ info.req.headers['api-signature'] = query['api-signature'];
+ info.req.headers['api-expires'] = query['api-expires'];
+ info.req.method = 'CONNECT';
+ info.req.originalUrl = '/stream';
+ // Function will set req.auth to authenticated token object if successful
+ toolsLib.security.verifyHmacTokenMiddleware(info.req, null, hmacKey, (err) => {
+ if (err) {
+ loggerWebsocket.error('ws/server', err);
+ return next(false, 403, err.message);
+ } else {
+ return next(true);
+ }
+ }, true);
+ } else {
+ // No authentication given so req.auth is empty
+ return next(true);
+ }
+ } catch (err) {
+ loggerWebsocket.error('ws/server/catch', err.message);
+ return next(false, 400, err.message);
+ }
+ }
+});
+loggerWebsocket.verbose(`Ẃebsocket server listening on port: ${PORT}`);
+
+
+module.exports = wss;
diff --git a/server/ws/sub.js b/server/ws/sub.js
new file mode 100644
index 0000000000..dd46dc0437
--- /dev/null
+++ b/server/ws/sub.js
@@ -0,0 +1,280 @@
+'use strict';
+
+const { getPublicData } = require('./publicData');
+const { addSubscriber, removeSubscriber, getChannels } = require('./channel');
+const { WEBSOCKET_CHANNEL, WS_PUBSUB_DEPOSIT_CHANNEL, ROLES } = require('../constants');
+const { each } = require('lodash');
+const toolsLib = require('hollaex-tools-lib');
+const { loggerWebsocket } = require('../config/logger');
+const {
+ WS_AUTHENTICATION_REQUIRED,
+ WS_USER_AUTHENTICATED,
+ MULTIPLE_API_KEY,
+ WS_ALREADY_AUTHENTICATED,
+ WS_MISSING_HEADER,
+ WS_INVALID_TOPIC
+} = require('../messages');
+const { subscriber } = require('../db/pubsub');
+const { sendInitialMessages, addMessage, deleteMessage } = require('./chat');
+const { getUsername, changeUsername } = require('./chat/username');
+const { sendBannedUsers, banUser, unbanUser } = require('./chat/ban');
+const { sendNetworkWsMessage } = require('./hub');
+
+subscriber.subscribe(WS_PUBSUB_DEPOSIT_CHANNEL);
+subscriber.on('message', (channel, data) => {
+ if (channel === WS_PUBSUB_DEPOSIT_CHANNEL) {
+ data = JSON.parse(data);
+ handleDepositData(data);
+ }
+});
+
+const initializeTopic = (topic, ws, symbol) => {
+ switch (topic) {
+ case 'orderbook':
+ case 'trade':
+ if (symbol) {
+ if (!toolsLib.subscribedToPair(symbol)) {
+ throw new Error('Invalid symbol');
+ }
+ addSubscriber(WEBSOCKET_CHANNEL(topic, symbol), ws);
+ if (getPublicData()[topic][symbol]) {
+ ws.send(JSON.stringify(getPublicData()[topic][symbol]));
+ }
+ } else {
+ each(toolsLib.getKitPairs(), (pair) => {
+ try {
+ addSubscriber(WEBSOCKET_CHANNEL(topic, pair), ws);
+ if (getPublicData()[topic][pair]) {
+ ws.send(JSON.stringify(getPublicData()[topic][pair]));
+ }
+ } catch (err) {
+ ws.send(JSON.stringify({ message: err.message }));
+ }
+ });
+ }
+ break;
+ case 'order':
+ case 'wallet':
+ if (!ws.auth.sub) { // throw unauthenticated error if req.auth.sub does not exist
+ throw new Error(WS_AUTHENTICATION_REQUIRED);
+ }
+ if (!getChannels()[WEBSOCKET_CHANNEL(topic, ws.auth.sub.networkId)]) {
+ addSubscriber(WEBSOCKET_CHANNEL(topic, ws.auth.sub.networkId), ws);
+ sendNetworkWsMessage('subscribe', topic, ws.auth.sub.networkId);
+ } else {
+ sendNetworkWsMessage('unsubscribe', topic, ws.auth.sub.networkId);
+ addSubscriber(WEBSOCKET_CHANNEL(topic, ws.auth.sub.networkId), ws);
+ sendNetworkWsMessage('subscribe', topic, ws.auth.sub.networkId);
+ }
+ break;
+ case 'deposit':
+ if (!ws.auth.sub) { // throw unauthenticated error if req.auth.sub does not exist
+ throw new Error(WS_AUTHENTICATION_REQUIRED);
+ }
+ addSubscriber(WEBSOCKET_CHANNEL(topic, ws.auth.sub.networkId), ws);
+ break;
+ case 'chat':
+ addSubscriber(WEBSOCKET_CHANNEL(topic), ws);
+ sendInitialMessages(ws);
+ break;
+ default:
+ throw new Error(WS_INVALID_TOPIC(topic));
+ }
+};
+
+const terminateTopic = (topic, ws, symbol) => {
+ switch (topic) {
+ case 'orderbook':
+ case 'trade':
+ if (symbol) {
+ if (!toolsLib.subscribedToPair(symbol)) {
+ throw new Error('Invalid symbol');
+ }
+ removeSubscriber(WEBSOCKET_CHANNEL(topic, symbol), ws);
+ ws.send(JSON.stringify({ message: `Unsubscribed from channel ${topic}:${symbol}`}));
+ } else {
+ each(toolsLib.getKitPairs(), (pair) => {
+ try {
+ removeSubscriber(WEBSOCKET_CHANNEL(topic, pair), ws);
+ ws.send(JSON.stringify({ message: `Unsubscribed from channel ${topic}:${symbol}`}));
+ } catch (err) {
+ ws.send(JSON.stringify({ message: err.message }));
+ }
+ });
+ }
+ break;
+ case 'order':
+ case 'wallet':
+ if (!ws.auth.sub) { // throw unauthenticated error if req.auth.sub does not exist
+ throw new Error(WS_AUTHENTICATION_REQUIRED);
+ }
+ removeSubscriber(WEBSOCKET_CHANNEL(topic, ws.auth.sub.networkId), ws, 'private');
+ if (!getChannels()[WEBSOCKET_CHANNEL(topic, ws.auth.sub.networkId)]) {
+ sendNetworkWsMessage('unsubscribe', topic, ws.auth.sub.networkId);
+ }
+ ws.send(JSON.stringify({ message: `Unsubscribed from channel ${topic}:${ws.auth.sub.networkId}`}));
+ break;
+ case 'deposit':
+ if (!ws.auth.sub) { // throw unauthenticated error if req.auth.sub does not exist
+ throw new Error(WS_AUTHENTICATION_REQUIRED);
+ }
+ removeSubscriber(WEBSOCKET_CHANNEL(topic, ws.auth.sub.networkId), ws, 'private');
+ ws.send(JSON.stringify({ message: `Unsubscribed from channel ${topic}:${ws.auth.sub.networkId}`}));
+ break;
+ case 'chat':
+ removeSubscriber(WEBSOCKET_CHANNEL(topic), ws);
+ ws.send(JSON.stringify({ message: `Unsubscribed from channel ${topic}:${ws.auth.sub.id}`}));
+ break;
+ default:
+ throw new Error(WS_INVALID_TOPIC(topic));
+ }
+};
+
+const authorizeUser = async (credentials, ws, ip) => {
+ // throw error if user is already authenticated
+ if (ws.auth.sub) {
+ throw new Error(WS_ALREADY_AUTHENTICATED);
+ }
+
+ // first element in args array should be object with credentials
+ const bearerToken = credentials.authorization;
+ const hmacKey = credentials['api-key'];
+
+ if (bearerToken && hmacKey) { // throw error if both authentication methods are given
+ throw new Error(MULTIPLE_API_KEY);
+ } else if (bearerToken) {
+
+ // get authenticated user data and set as ws.auth.
+ // Function will throw an error if there is an issue which will be caught below
+ const auth = await toolsLib.security.verifyBearerTokenPromise(bearerToken, ip);
+
+ // If authentication was successful, set ws.auth to new auth object and send authenticated message
+ ws.auth = auth;
+ ws.send(JSON.stringify({ message: WS_USER_AUTHENTICATED(ws.auth.sub.email) }));
+ } else if (hmacKey) {
+ const apiSignature = credentials['api-signature'];
+ const apiExpires = credentials['api-expires'];
+ const method = 'CONNECT';
+ const url = '/stream';
+
+ // get authenticated user data and set as ws.auth.
+ // Function will throw an error if there is an issue which will be caught below
+ const auth = await toolsLib.security.verifyHmacTokenPromise(hmacKey, apiSignature, apiExpires, method, url);
+
+ // If authentication was successful, set ws.auth to new auth object and send authenticated message
+ ws.auth = auth;
+ ws.send(JSON.stringify({ message: WS_USER_AUTHENTICATED(ws.auth.sub.email) }));
+ } else {
+ // throw error if bearer and hmac token are missing
+ throw new Error(WS_MISSING_HEADER);
+ }
+};
+
+const terminateClosedChannels = (ws) => {
+ each(toolsLib.getKitPairs(), (pair) => {
+ try {
+ removeSubscriber(WEBSOCKET_CHANNEL('orderbook', pair), ws);
+ } catch (err) {
+ loggerWebsocket.debug(ws.id, 'ws/sub/terminateClosedChannels', err.message);
+ }
+ try {
+ removeSubscriber(WEBSOCKET_CHANNEL('trade', pair), ws);
+ } catch (err) {
+ loggerWebsocket.debug(ws.id, 'ws/sub/terminateClosedChannels', err.message);
+ }
+ });
+ if (ws.auth.sub) {
+ try {
+ removeSubscriber(WEBSOCKET_CHANNEL('order', ws.auth.sub.networkId), ws, 'private');
+ if (!getChannels()[WEBSOCKET_CHANNEL('order', ws.auth.sub.networkId)]) {
+ sendNetworkWsMessage('unsubscribe', 'order', ws.auth.sub.networkId);
+ }
+ } catch (err) {
+ loggerWebsocket.debug(ws.id, 'ws/sub/terminateClosedChannels', err.message);
+ }
+
+ try {
+ removeSubscriber(WEBSOCKET_CHANNEL('wallet', ws.auth.sub.networkId), ws, 'private');
+ if (!getChannels()[WEBSOCKET_CHANNEL('wallet', ws.auth.sub.networkId)]) {
+ sendNetworkWsMessage('unsubscribe', 'wallet', ws.auth.sub.networkId);
+ }
+ } catch (err) {
+ loggerWebsocket.debug(ws.id, 'ws/sub/terminateClosedChannels', err.message);
+ }
+
+ try {
+ removeSubscriber(WEBSOCKET_CHANNEL('deposit', ws.auth.sub.networkId), ws, 'private');
+ } catch (err) {
+ loggerWebsocket.debug(ws.id, 'ws/sub/terminateClosedChannels', err.message);
+ }
+
+ try {
+ removeSubscriber(WEBSOCKET_CHANNEL('chat'), ws);
+ } catch (err) {
+ loggerWebsocket.debug(ws.id, 'ws/sub/terminateClosedChannels', err.message);
+ }
+ }
+};
+
+const handleChatData = (action, ws, data) => {
+ if (!ws.auth.sub) {
+ throw new Error('Not authorized');
+ } else if (action === 'deleteMessage' || action === 'getBannedUsers' || action === 'banUser' || action === 'unbanUser') {
+ if (
+ ws.auth.scopes.indexOf(ROLES.ADMIN) === -1 &&
+ ws.auth.scopes.indexOf(ROLES.SUPERVISOR) === -1 &&
+ ws.auth.scopes.indexOf(ROLES.SUPPORT) === -1
+ ) {
+ throw new Error('Not authorized');
+ }
+ }
+ getUsername(ws.auth.sub.id)
+ .then(({ username, verification_level }) => {
+ switch (action) {
+ case 'addMessage':
+ addMessage(username, verification_level, ws.auth.sub.id, data);
+ break;
+ case 'deleteMessage':
+ deleteMessage(data);
+ break;
+ case 'getBannedUsers':
+ sendBannedUsers(ws);
+ break;
+ case 'banUser':
+ banUser(data);
+ break;
+ case 'unbanUser':
+ unbanUser(data);
+ break;
+ case 'changeUsername':
+ changeUsername(data);
+ break;
+ default:
+ throw new Error('Invalid action');
+ }
+ })
+ .catch((err) => {
+ loggerWebsocket.error(ws.id, 'ws/sub/handleChatData', err.message);
+ ws.send(JSON.stringify({ error: err.message }));
+ });
+};
+
+const handleDepositData = (data) => {
+ switch (data.topic) {
+ case 'deposit':
+ each(getChannels()[WEBSOCKET_CHANNEL(data.topic, data.user_id)], (ws) => {
+ ws.send(JSON.stringify(data));
+ });
+ break;
+ default:
+ break;
+ }
+};
+
+module.exports = {
+ initializeTopic,
+ terminateTopic,
+ authorizeUser,
+ terminateClosedChannels,
+ handleChatData
+};
diff --git a/settings/configmap b/settings/configmap
index 4e69244531..789ce6a754 100644
--- a/settings/configmap
+++ b/settings/configmap
@@ -11,10 +11,7 @@ ENVIRONMENT_EXCHANGE_NAME=hollaex
HOLLAEX_CONFIGMAP_API_NAME=my-hollaex-exchange
HOLLAEX_CONFIGMAP_DOMAIN=https://yourdomain.com
-HOLLAEX_CONFIGMAP_LOGO_PATH=https://bitholla.s3.ap-northeast-2.amazonaws.com/kit/LOGO_IMAGE_LIGHT
-HOLLAEX_CONFIGMAP_LOGO_BLACK_PATH=https://bitholla.s3.ap-northeast-2.amazonaws.com/kit/LOGO_IMAGE_DARK
-
-HOLLAEX_CONFIGMAP_CAPTCHA_SITE_KEY=
+HOLLAEX_CONFIGMAP_LOGO_IMAGE=https://bitholla.s3.ap-northeast-2.amazonaws.com/kit/LOGO_IMAGE_LIGHT
ENVIRONMENT_WEB_DEFAULT_COUNTRY=KR
HOLLAEX_CONFIGMAP_EMAILS_TIMEZONE=UTC
@@ -42,10 +39,6 @@ HOLLAEX_CONFIGMAP_SMTP_SERVER=
HOLLAEX_CONFIGMAP_SMTP_PORT=587
HOLLAEX_CONFIGMAP_SMTP_USER=
-HOLLAEX_CONFIGMAP_PLUGINS=
-
-HOLLAEX_CONFIGMAP_TECH_EMAIL=
-
#################################
#### ADVANCED CONFIGURATIONS ####
#################################
@@ -54,18 +47,8 @@ HOLLAEX_CONFIGMAP_NODE_ENV=production
HOLLAEX_CONFIGMAP_PORT=10010
HOLLAEX_CONFIGMAP_WEBSOCKET_PORT=10080
-HOLLAEX_CONFIGMAP_FRESHDESK_HOST=
-
-HOLLAEX_CONFIGMAP_ADMIN_WHITELIST_IP=
-
HOLLAEX_CONFIGMAP_SEND_EMAIL_TO_SUPPORT=true
-HOLLAEX_CONFIGMAP_MAX_TRADES=50
-
-HOLLAEX_CONFIGMAP_ALLOWED_DOMAINS=
-
-HOLLAEX_CONFIGMAP_ID_DOCS_BUCKET=
-
HOLLAEX_CONFIGMAP_NETWORK=mainnet
HOLLAEX_CONFIGMAP_VAULT_NAME=
@@ -74,28 +57,25 @@ HOLLAEX_CONFIGMAP_DB_SSL=false
HOLLAEX_CONFIGMAP_LOG_LEVEL=verbose
-ENVIRONMENT_EXCHANGE_RUN_MODE=api,stream,engine
+HOLLAEX_CONFIGMAP_KIT_VERSION=$(cat version)
+
+ENVIRONMENT_EXCHANGE_RUN_MODE=api,stream,plugins
ENVIRONMENT_DOCKER_COMPOSE_RUN_POSTGRESQL_DB=true
ENVIRONMENT_DOCKER_COMPOSE_RUN_REDIS=true
-ENVIRONMENT_DOCKER_COMPOSE_RUN_INFLUXDB=true
ENVIRONMENT_KUBERNETES_RUN_POSTGRESQL_DB=true
ENVIRONMENT_KUBERNETES_POSTGRESQL_DB_VOLUMESIZE=50Gi
ENVIRONMENT_KUBERNETES_RUN_REDIS=true
-ENVIRONMENT_KUBERNETES_RUN_INFLUXDB=true
-ENVIRONMENT_KUBERNETES_INFLUXDB_VOLUMESIZE=30Gi
-
ENVIRONMENT_KUBERNETES_POSTGRESQL_DB_NODESELECTOR="{}"
ENVIRONMENT_KUBERNETES_REDIS_NODESELECTOR="{}"
ENVIRONMENT_KUBERNETES_INFLUXDB_NODESELECTOR="{}"
ENVIRONMENT_KUBERNETES_EXCHANGE_STATEFUL_NODESELECTOR="{}"
ENVIRONMENT_KUBERNETES_EXCHANGE_STATELESS_NODESELECTOR="{}"
-ENVIRONMENT_DOCKER_IMAGE_REGISTRY=bitholla/hollaex-core
-ENVIRONMENT_DOCKER_IMAGE_VERSION=1.24.12
+ENVIRONMENT_DOCKER_IMAGE_VERSION=2.0.0
ENVIRONMENT_DOCKER_IMAGE_POSTGRESQL_REGISTRY=postgres
ENVIRONMENT_DOCKER_IMAGE_POSTGRESQL_VERSION=10.9-alpine
@@ -148,16 +128,6 @@ ENVIRONMENT_KUBERNETES_STREAM_MEMORY_LIMITS=256Mi
ENVIRONMENT_KUBERNETES_STREAM_CPU_REQUESTS=10m
ENVIRONMENT_KUBERNETES_STREAM_MEMORY_REQUESTS=128Mi
-ENVIRONMENT_KUBERNETES_PLUGINS_CPU_LIMITS=200m
-ENVIRONMENT_KUBERNETES_PLUGINS_MEMORY_LIMITS=512Mi
-ENVIRONMENT_KUBERNETES_PLUGINS_CPU_REQUESTS=10m
-ENVIRONMENT_KUBERNETES_PLUGINS_MEMORY_REQUESTS=128Mi
-
-ENVIRONMENT_KUBERNETES_ENGINE_CPU_LIMITS=200m
-ENVIRONMENT_KUBERNETES_ENGINE_MEMORY_LIMITS=256Mi
-ENVIRONMENT_KUBERNETES_ENGINE_CPU_REQUESTS=10m
-ENVIRONMENT_KUBERNETES_ENGINE_MEMORY_REQUESTS=128Mi
-
ENVIRONMENT_KUBERNETES_POSTGRESQL_CPU_LIMITS=100m
ENVIRONMENT_KUBERNETES_POSTGRESQL_MEMORY_LIMITS=200Mi
ENVIRONMENT_KUBERNETES_POSTGRESQL_CPU_REQUESTS=10m
@@ -168,11 +138,6 @@ ENVIRONMENT_KUBERNETES_REDIS_MEMORY_LIMITS=200Mi
ENVIRONMENT_KUBERNETES_REDIS_CPU_REQUESTS=10m
ENVIRONMENT_KUBERNETES_REDIS_MEMORY_REQUESTS=100Mi
-ENVIRONMENT_KUBERNETES_INFLUXDB_CPU_LIMITS=200m
-ENVIRONMENT_KUBERNETES_INFLUXDB_MEMORY_LIMITS=400Mi
-ENVIRONMENT_KUBERNETES_INFLUXDB_CPU_REQUESTS=100m
-ENVIRONMENT_KUBERNETES_INFLUXDB_MEMORY_REQUESTS=256Mi
-
ENVIRONMENT_KUBERNETES_S3_BACKUP_CRONJOB_RULE='0 1 * * *'
ENVIRONMENT_KUBERNETES_S3_BACKUP_CRONJOB_REGION=
ENVIRONMENT_KUBERNETES_S3_BACKUP_CRONJOB_BUCKET=
@@ -190,4 +155,4 @@ ENVIRONMENT_KUBERNETES_WEB_HPA_AVGMEMORY=500000000
ENVIRONMENT_KUBERNETES_API_HPA_MAXREPLICAS=4
ENVIRONMENT_KUBERNETES_STREAM_HPA_MAXREPLICAS=4
-ENVIRONMENT_KUBERNETES_WEB_HPA_MAXREPLICAS=4
\ No newline at end of file
+ENVIRONMENT_KUBERNETES_WEB_HPA_MAXREPLICAS=4
diff --git a/settings/secret b/settings/secret
index 9c397fcdef..bbb7a84bcf 100644
--- a/settings/secret
+++ b/settings/secret
@@ -4,10 +4,6 @@
HOLLAEX_SECRET_ACTIVATION_CODE=
-HOLLAEX_SECRET_CAPTCHA_SECRET_KEY=
-
-HOLLAEX_SECRET_ADMIN_PASSWORD=
-
########################################
#### ADVANCED SECRET CONFIGURATIONS ####
########################################
@@ -26,44 +22,25 @@ HOLLAEX_SECRET_DB_PASSWORD=
HOLLAEX_SECRET_DB_HOST=$ENVIRONMENT_EXCHANGE_NAME-db
HOLLAEX_SECRET_DB_PORT=5432
-HOLLAEX_SECRET_S3_WRITE_ACCESSKEYID=
-HOLLAEX_SECRET_S3_WRITE_SECRETACCESSKEY=
-
-HOLLAEX_SECRET_S3_READ_ACCESSKEYID=
-HOLLAEX_SECRET_S3_READ_SECRETACCESSKEY=
-
-HOLLAEX_SECRET_SES_ACCESSKEYID=
-HOLLAEX_SECRET_SES_SECRETACCESSKEY=
-HOLLAEX_SECRET_SES_REGION=
-
-HOLLAEX_SECRET_SNS_ACCESSKEYID=
-HOLLAEX_SECRET_SNS_SECRETACCESSKEY=
-HOLLAEX_SECRET_SNS_REGION=
-
HOLLAEX_SECRET_INFLUX_DB=hollaex
HOLLAEX_SECRET_INFLUX_HOST=$ENVIRONMENT_EXCHANGE_NAME-influxdb
HOLLAEX_SECRET_INFLUX_PORT=8086
HOLLAEX_SECRET_INFLUX_USER=hollaex
HOLLAEX_SECRET_INFLUX_PASSWORD=
-HOLLAEX_SECRET_VAULT_KEY=
-HOLLAEX_SECRET_VAULT_SECRET=
-
-HOLLAEX_SECRET_FRESHDESK_KEY=
-HOLLAEX_SECRET_FRESHDESK_AUTH=
-
ENVIRONMENT_KUBERNETES_DOCKER_REGISTRY_HOST=docker.io
ENVIRONMENT_KUBERNETES_DOCKER_REGISTRY_USERNAME=
ENVIRONMENT_KUBERNETES_DOCKER_REGISTRY_PASSWORD=
ENVIRONMENT_KUBERNETES_DOCKER_REGISTRY_EMAIL=
-HOLLAEX_SECRET_SMTP_PASSWORD=
-
-HOLLAEX_SECRET_TECH_PASSWORD=
-
ENVIRONMENT_KUBERNETES_S3_BACKUP_CRONJOB_ACCESSKEY=
ENVIRONMENT_KUBERNETES_S3_BACKUP_CRONJOB_SECRETKEY=
+HOLLAEX_SECRET_API_KEY=
+HOLLAEX_SECRET_API_SECRET=
+
+HOLLAEX_SECRET_SMTP_PASSWORD=
+
######################################################################
#### AUTOMATICALLY GENERATED PASSWORDS GONNA BE STORED DOWN BELOW ####
######################################################################
@@ -72,4 +49,4 @@ HOLLAEX_SECRET_SUPERVISOR_PASSWORD=
HOLLAEX_SECRET_SUPPORT_PASSWORD=
HOLLAEX_SECRET_KYC_PASSWORD=
HOLLAEX_SECRET_QUICK_TRADE_SECRET=
-HOLLAEX_SECRET_SECRET=
+HOLLAEX_SECRET_SECRET=
\ No newline at end of file
diff --git a/templates/local/nginx/nginx.conf b/templates/local/nginx/nginx.conf
index 6221ad60c6..0f063bf502 100644
--- a/templates/local/nginx/nginx.conf
+++ b/templates/local/nginx/nginx.conf
@@ -50,7 +50,7 @@ server {
proxy_pass http://api;
}
- location /v1/order {
+ location /v2/order {
limit_req zone=api burst=10 nodelay;
limit_req_log_level info;
limit_req_status 429;
@@ -58,7 +58,7 @@ server {
proxy_pass http://api;
}
- location /v1 {
+ location /v2 {
limit_req zone=api burst=10 nodelay;
limit_req_log_level info;
limit_req_status 429;
@@ -66,7 +66,7 @@ server {
proxy_pass http://api;
}
- location /socket.io {
+ location /stream {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
@@ -75,10 +75,9 @@ server {
}
location /plugins {
- proxy_pass http://plugins-controller;
+ proxy_pass http://plugins;
}
-
error_page 429 /429.html;
location = /429.html {
root /usr/share/nginx/html;
diff --git a/version b/version
index 5495313844..227cea2156 100644
--- a/version
+++ b/version
@@ -1 +1 @@
-1.5.15
\ No newline at end of file
+2.0.0
diff --git a/web/.babelrc b/web/.babelrc
index 2c6b2b122f..05dcb3f8de 100644
--- a/web/.babelrc
+++ b/web/.babelrc
@@ -1,4 +1,4 @@
{
- "presets": ["react", "es2015", "stage-0"],
- "plugins": ["transform-decorators-legacy","transform-object-assign"]
+ "presets": ["react", "es2015", "stage-0"],
+ "plugins": ["transform-decorators-legacy", "transform-object-assign"]
}
diff --git a/web/.eslintrc b/web/.eslintrc
index 5e603ecd19..e6aa150f11 100644
--- a/web/.eslintrc
+++ b/web/.eslintrc
@@ -1,3 +1,3 @@
{
- "extends": "react-app"
+ "extends": "react-app"
}
diff --git a/web/.prettierignore b/web/.prettierignore
new file mode 100644
index 0000000000..68eef54bea
--- /dev/null
+++ b/web/.prettierignore
@@ -0,0 +1,8 @@
+# Ignore artifacts:
+.idea
+build
+docker
+node_modules
+public
+src/charting_library
+src/index.css
diff --git a/web/.prettierrc.json b/web/.prettierrc.json
new file mode 100644
index 0000000000..9b1900e1e3
--- /dev/null
+++ b/web/.prettierrc.json
@@ -0,0 +1,14 @@
+{
+ "printWidth": 80,
+ "tabWidth": 2,
+ "useTabs": true,
+ "semi": true,
+ "singleQuote": true,
+ "jsxSingleQuote": false,
+ "jsxBracketSameLine": false,
+ "trailingComma": "es5",
+ "bracketSpacing": true,
+ "arrowParens": "always",
+ "proseWrap": "preserve",
+ "endOfLine": "lf"
+}
diff --git a/web/README.md b/web/README.md
index 37a25d5f74..613ea587ff 100644
--- a/web/README.md
+++ b/web/README.md
@@ -1,23 +1,30 @@
# Web Application
+
HollaEx Kit uses Reactjs framework as a single page application and communicates with the back-end servers through REST API and Websocket channels.
## Development
+
### Requirements
+
You need to have nodejs and npm installed
### Installation
+
1. clone the repository
2. `cd web`
3. `npm install`
### Run in your local machine
+
2. HollaEx uses sass for styling. You need to generate css files before running the project. `node run build-css` builds all css files from sass styles in `/src` folder.
3. `npm start` it will also listen to changes in sass files and autogenerates css files in there.
## Production
+
You can build the project by running `npm run build` and the projects builds the entire client in `/build` folder
## Properties to set
+
- Build variables in `.env` file:
- NODE_ENV `['production', 'development']`
- REACT_APP_PUBLIC_URL `https://hollaex.com`
@@ -25,7 +32,9 @@ You can build the project by running `npm run build` and the projects builds the
- REACT_APP_CAPTCHA_SITE_KEY your Google Recaptcha key for security purposes
### Styles
+
### Steps to configure white and dark theme
+
1. Modify colors under `colors for white theme` and `colors for dark theme` text in variables.scss file. there is also some common colors that effect in both dark and white theme.
2. Coin colors also categorized by theme in variables.scss file.
3. To apply different colors for chart element outline(slice in dount, bar in bar chart) change the `coin-${symbol}-1` and `dark-coin-${symbol}-1`.
diff --git a/web/build-benchmark.txt b/web/build-benchmark.txt
new file mode 100644
index 0000000000..14cf5fb5d8
--- /dev/null
+++ b/web/build-benchmark.txt
@@ -0,0 +1,40 @@
+
+
+ SMP ⏱
+General output time took 6 mins, 40.43 secs
+
+ SMP ⏱ Plugins
+TerserPlugin took 2 mins, 20.43 secs
+IgnorePlugin took 42.85 secs
+OptimizeCssAssetsWebpackPlugin took 9.88 secs
+MiniCssExtractPlugin took 7.91 secs
+HtmlWebpackPlugin took 6.25 secs
+ManifestPlugin took 4.34 secs
+GenerateSW took 0.067 secs
+InterpolateHtmlPlugin took 0.018 secs
+InlineChunkHtmlPlugin took 0.017 secs
+DefinePlugin took 0.014 secs
+ModuleNotFoundPlugin took 0.01 secs
+
+ SMP ⏱ Loaders
+babel-loader took 3 mins, 36.58 secs
+ module count = 3751
+babel-loader, and
+eslint-loader took 1 min, 59.18 secs
+ module count = 402
+mini-css-extract-plugin, and
+css-loader, and
+postcss-loader took 36.24 secs
+ module count = 19
+css-loader, and
+postcss-loader took 20.39 secs
+ module count = 23
+modules with no loaders took 15.52 secs
+ module count = 65
+file-loader took 7.88 secs
+ module count = 514
+html-webpack-plugin took 0.056 secs
+ module count = 1
+
+
+
diff --git a/web/config-overrides.js b/web/config-overrides.js
new file mode 100644
index 0000000000..c55e4dba1e
--- /dev/null
+++ b/web/config-overrides.js
@@ -0,0 +1,12 @@
+const SpeedMeasurePlugin = require('speed-measure-webpack-plugin');
+const smp = new SpeedMeasurePlugin({
+ outputFormat: 'human',
+ outputTarget: './measure.txt',
+});
+
+module.exports = function (config, env) {
+ config = smp.wrap({
+ ...config,
+ });
+ return config;
+};
diff --git a/web/docker/Dockerfile b/web/docker/Dockerfile
index 4f128ff48f..f23233ac10 100644
--- a/web/docker/Dockerfile
+++ b/web/docker/Dockerfile
@@ -1,5 +1,5 @@
# build environment
-FROM node:10.15.3-alpine as build
+FROM node:12.18.3-alpine as build
ENV NODE_OPTIONS=--max_old_space_size=3072
WORKDIR /app
COPY package.json /app/package.json
diff --git a/web/jsconfig.json b/web/jsconfig.json
new file mode 100644
index 0000000000..7a2b846014
--- /dev/null
+++ b/web/jsconfig.json
@@ -0,0 +1,6 @@
+{
+ "compilerOptions": {
+ "baseUrl": "src"
+ },
+ "include": ["src"]
+}
diff --git a/web/package-lock.json b/web/package-lock.json
index 886573cfdf..b89e08b2c2 100644
--- a/web/package-lock.json
+++ b/web/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "hollaex-kit",
- "version": "1.5.15",
+ "version": "2.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -12,13 +12,20 @@
"tinycolor2": "^1.4.1"
}
},
- "@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==",
+ "@ant-design/compatible": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@ant-design/compatible/-/compatible-1.0.5.tgz",
+ "integrity": "sha512-UrMtEtx0M7blj/0EKvhfE7U/Q6vLd9c1EUsIf2fl8C3CRWogAUu67FwKAJKtcwQZwkinCDCJgTjtscZm1UvX4A==",
"requires": {
- "gud": "^1.0.0",
- "warning": "^4.0.3"
+ "@ant-design/icons": "^4.0.0",
+ "classnames": "^2.2.6",
+ "lodash.camelcase": "^4.3.0",
+ "lodash.upperfirst": "^4.3.1",
+ "omit.js": "^1.0.2",
+ "rc-animate": "^2.10.2",
+ "rc-editor-mention": "^1.1.13",
+ "rc-form": "^2.4.10",
+ "rc-util": "^4.10.0"
}
},
"@ant-design/css-animation": {
@@ -27,91 +34,119 @@
"integrity": "sha512-LrX0OGZtW+W6iLnTAqnTaoIsRelYeuLZWsrmBJFUXDALQphPsN8cE5DCsmoSlL0QYb94BQxINiuS70Ar/8BNgA=="
},
"@ant-design/icons": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-2.1.1.tgz",
- "integrity": "sha512-jCH+k2Vjlno4YWl6g535nHR09PwCEmTBKAG6VqF+rhkrSPRLfgpU2maagwbZPLjaHuU5Jd1DFQ2KJpQuI6uG8w=="
- },
- "@ant-design/icons-react": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@ant-design/icons-react/-/icons-react-2.0.1.tgz",
- "integrity": "sha512-r1QfoltMuruJZqdiKcbPim3d8LNsVPB733U0gZEUSxBLuqilwsW28K2rCTWSMTjmFX7Mfpf+v/wdiFe/XCqThw==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-4.2.2.tgz",
+ "integrity": "sha512-DrVV+wcupnHS7PehJ6KiTcJtAR5c25UMgjGECCc6pUT9rsvw0AuYG+a4HDjfxEQuDqKTHwW+oX/nIvCymyLE8Q==",
"requires": {
"@ant-design/colors": "^3.1.0",
- "babel-runtime": "^6.26.0"
+ "@ant-design/icons-svg": "^4.0.0",
+ "@babel/runtime": "^7.10.4",
+ "classnames": "^2.2.6",
+ "insert-css": "^2.0.0",
+ "rc-util": "^5.0.1"
+ },
+ "dependencies": {
+ "rc-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz",
+ "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==",
+ "requires": {
+ "react-is": "^16.12.0",
+ "shallowequal": "^1.1.0"
+ }
+ }
+ }
+ },
+ "@ant-design/icons-svg": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.1.0.tgz",
+ "integrity": "sha512-Fi03PfuUqRs76aI3UWYpP864lkrfPo0hluwGqh7NJdLhvH4iRDc3jbJqZIvRDLHKbXrvAfPPV3+zjUccfFvWOQ=="
+ },
+ "@ant-design/react-slick": {
+ "version": "0.27.10",
+ "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-0.27.10.tgz",
+ "integrity": "sha512-Lg/9RlGaYGeFjB1UkvK50xUKf7XgIVpxXVPkm+45/VoA66c3uC1KN5yRxx7AEayHcSPZDqO9TGvMXu1WbbY2vw==",
+ "requires": {
+ "@babel/runtime": "^7.10.4",
+ "classnames": "^2.2.5",
+ "json2mq": "^0.2.0",
+ "lodash": "^4.17.15",
+ "resize-observer-polyfill": "^1.5.0"
}
},
"@babel/code-frame": {
- "version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz",
- "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
"dev": true,
"requires": {
"@babel/highlight": "^7.10.4"
}
},
"@babel/compat-data": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.7.tgz",
- "integrity": "sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==",
- "dev": true
- },
- "@babel/core": {
- "version": "7.2.2",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.2.2.tgz",
- "integrity": "sha512-59vB0RWt09cAct5EIe58+NzGP4TFSD3Bz//2/ELy3ZeTeKF6VTD1AXlH8BGGbCX0PuobZBsIzO7IAI9PH67eKw==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz",
+ "integrity": "sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.0.0",
- "@babel/generator": "^7.2.2",
- "@babel/helpers": "^7.2.0",
- "@babel/parser": "^7.2.2",
- "@babel/template": "^7.2.2",
- "@babel/traverse": "^7.2.2",
- "@babel/types": "^7.2.2",
- "convert-source-map": "^1.1.0",
+ "browserslist": "^4.12.0",
+ "invariant": "^2.2.4",
+ "semver": "^5.5.0"
+ }
+ },
+ "@babel/core": {
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz",
+ "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.8.3",
+ "@babel/generator": "^7.9.0",
+ "@babel/helper-module-transforms": "^7.9.0",
+ "@babel/helpers": "^7.9.0",
+ "@babel/parser": "^7.9.0",
+ "@babel/template": "^7.8.6",
+ "@babel/traverse": "^7.9.0",
+ "@babel/types": "^7.9.0",
+ "convert-source-map": "^1.7.0",
"debug": "^4.1.0",
- "json5": "^2.1.0",
- "lodash": "^4.17.10",
+ "gensync": "^1.0.0-beta.1",
+ "json5": "^2.1.2",
+ "lodash": "^4.17.13",
"resolve": "^1.3.2",
"semver": "^5.4.1",
"source-map": "^0.5.0"
},
"dependencies": {
"debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "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.2"
+ "ms": "^2.1.1"
}
- },
- "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
}
}
},
"@babel/generator": {
- "version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz",
- "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz",
+ "integrity": "sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==",
"dev": true,
"requires": {
- "@babel/types": "^7.12.11",
+ "@babel/types": "^7.11.0",
"jsesc": "^2.5.1",
"source-map": "^0.5.0"
}
},
"@babel/helper-annotate-as-pure": {
- "version": "7.12.10",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz",
- "integrity": "sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz",
+ "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==",
"dev": true,
"requires": {
- "@babel/types": "^7.12.10"
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-builder-binary-assignment-operator-visitor": {
@@ -124,39 +159,63 @@
"@babel/types": "^7.10.4"
}
},
+ "@babel/helper-builder-react-jsx": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz",
+ "integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.10.4",
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helper-builder-react-jsx-experimental": {
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.5.tgz",
+ "integrity": "sha512-Buewnx6M4ttG+NLkKyt7baQn7ScC/Td+e99G914fRU8fGIUivDDgVIQeDHFa5e4CRSJQt58WpNHhsAZgtzVhsg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.10.4",
+ "@babel/helper-module-imports": "^7.10.4",
+ "@babel/types": "^7.10.5"
+ }
+ },
"@babel/helper-compilation-targets": {
- "version": "7.12.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz",
- "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz",
+ "integrity": "sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==",
"dev": true,
"requires": {
- "@babel/compat-data": "^7.12.5",
- "@babel/helper-validator-option": "^7.12.1",
- "browserslist": "^4.14.5",
+ "@babel/compat-data": "^7.10.4",
+ "browserslist": "^4.12.0",
+ "invariant": "^2.2.4",
+ "levenary": "^1.1.1",
"semver": "^5.5.0"
}
},
"@babel/helper-create-class-features-plugin": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz",
- "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz",
+ "integrity": "sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==",
"dev": true,
"requires": {
"@babel/helper-function-name": "^7.10.4",
- "@babel/helper-member-expression-to-functions": "^7.12.1",
+ "@babel/helper-member-expression-to-functions": "^7.10.5",
"@babel/helper-optimise-call-expression": "^7.10.4",
- "@babel/helper-replace-supers": "^7.12.1",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-replace-supers": "^7.10.4",
"@babel/helper-split-export-declaration": "^7.10.4"
}
},
"@babel/helper-create-regexp-features-plugin": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz",
- "integrity": "sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz",
+ "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==",
"dev": true,
"requires": {
"@babel/helper-annotate-as-pure": "^7.10.4",
- "regexpu-core": "^4.7.1"
+ "@babel/helper-regex": "^7.10.4",
+ "regexpu-core": "^4.7.0"
}
},
"@babel/helper-define-map": {
@@ -171,32 +230,33 @@
}
},
"@babel/helper-explode-assignable-expression": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz",
- "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz",
+ "integrity": "sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==",
"dev": true,
"requires": {
- "@babel/types": "^7.12.1"
+ "@babel/traverse": "^7.10.4",
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-function-name": {
- "version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz",
- "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
+ "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
"dev": true,
"requires": {
- "@babel/helper-get-function-arity": "^7.12.10",
- "@babel/template": "^7.12.7",
- "@babel/types": "^7.12.11"
+ "@babel/helper-get-function-arity": "^7.10.4",
+ "@babel/template": "^7.10.4",
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-get-function-arity": {
- "version": "7.12.10",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz",
- "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
+ "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
"dev": true,
"requires": {
- "@babel/types": "^7.12.10"
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-hoist-variables": {
@@ -209,47 +269,45 @@
}
},
"@babel/helper-member-expression-to-functions": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz",
- "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz",
+ "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==",
"dev": true,
"requires": {
- "@babel/types": "^7.12.7"
+ "@babel/types": "^7.11.0"
}
},
"@babel/helper-module-imports": {
- "version": "7.12.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz",
- "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz",
+ "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==",
"dev": true,
"requires": {
- "@babel/types": "^7.12.5"
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-module-transforms": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz",
- "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz",
+ "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==",
"dev": true,
"requires": {
- "@babel/helper-module-imports": "^7.12.1",
- "@babel/helper-replace-supers": "^7.12.1",
- "@babel/helper-simple-access": "^7.12.1",
+ "@babel/helper-module-imports": "^7.10.4",
+ "@babel/helper-replace-supers": "^7.10.4",
+ "@babel/helper-simple-access": "^7.10.4",
"@babel/helper-split-export-declaration": "^7.11.0",
- "@babel/helper-validator-identifier": "^7.10.4",
"@babel/template": "^7.10.4",
- "@babel/traverse": "^7.12.1",
- "@babel/types": "^7.12.1",
+ "@babel/types": "^7.11.0",
"lodash": "^4.17.19"
}
},
"@babel/helper-optimise-call-expression": {
- "version": "7.12.10",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz",
- "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz",
+ "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==",
"dev": true,
"requires": {
- "@babel/types": "^7.12.10"
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-plugin-utils": {
@@ -258,72 +316,78 @@
"integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==",
"dev": true
},
+ "@babel/helper-regex": {
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz",
+ "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.19"
+ }
+ },
"@babel/helper-remap-async-to-generator": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz",
- "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz",
+ "integrity": "sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==",
"dev": true,
"requires": {
"@babel/helper-annotate-as-pure": "^7.10.4",
"@babel/helper-wrap-function": "^7.10.4",
- "@babel/types": "^7.12.1"
+ "@babel/template": "^7.10.4",
+ "@babel/traverse": "^7.10.4",
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-replace-supers": {
- "version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz",
- "integrity": "sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz",
+ "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==",
"dev": true,
"requires": {
- "@babel/helper-member-expression-to-functions": "^7.12.7",
- "@babel/helper-optimise-call-expression": "^7.12.10",
- "@babel/traverse": "^7.12.10",
- "@babel/types": "^7.12.11"
+ "@babel/helper-member-expression-to-functions": "^7.10.4",
+ "@babel/helper-optimise-call-expression": "^7.10.4",
+ "@babel/traverse": "^7.10.4",
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-simple-access": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz",
- "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz",
+ "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==",
"dev": true,
"requires": {
- "@babel/types": "^7.12.1"
+ "@babel/template": "^7.10.4",
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz",
- "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz",
+ "integrity": "sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q==",
"dev": true,
"requires": {
- "@babel/types": "^7.12.1"
+ "@babel/types": "^7.11.0"
}
},
"@babel/helper-split-export-declaration": {
- "version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz",
- "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz",
+ "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==",
"dev": true,
"requires": {
- "@babel/types": "^7.12.11"
+ "@babel/types": "^7.11.0"
}
},
"@babel/helper-validator-identifier": {
- "version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz",
- "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==",
- "dev": true
- },
- "@babel/helper-validator-option": {
- "version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz",
- "integrity": "sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+ "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
"dev": true
},
"@babel/helper-wrap-function": {
- "version": "7.12.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz",
- "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz",
+ "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==",
"dev": true,
"requires": {
"@babel/helper-function-name": "^7.10.4",
@@ -333,14 +397,14 @@
}
},
"@babel/helpers": {
- "version": "7.12.5",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz",
- "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz",
+ "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==",
"dev": true,
"requires": {
"@babel/template": "^7.10.4",
- "@babel/traverse": "^7.12.5",
- "@babel/types": "^7.12.5"
+ "@babel/traverse": "^7.10.4",
+ "@babel/types": "^7.10.4"
}
},
"@babel/highlight": {
@@ -355,47 +419,47 @@
}
},
"@babel/parser": {
- "version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz",
- "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==",
+ "version": "7.11.3",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.3.tgz",
+ "integrity": "sha512-REo8xv7+sDxkKvoxEywIdsNFiZLybwdI7hcT5uEPyQrSMB4YQ973BfC9OOrD/81MaIjh6UxdulIQXkjmiH3PcA==",
"dev": true
},
"@babel/plugin-proposal-async-generator-functions": {
- "version": "7.12.12",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.12.tgz",
- "integrity": "sha512-nrz9y0a4xmUrRq51bYkWJIO5SBZyG2ys2qinHsN0zHDHVsUaModrkpyWWWXfGqYQmOL3x9sQIcTNN/pBGpo09A==",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz",
+ "integrity": "sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4",
- "@babel/helper-remap-async-to-generator": "^7.12.1",
+ "@babel/helper-remap-async-to-generator": "^7.10.4",
"@babel/plugin-syntax-async-generators": "^7.8.0"
}
},
"@babel/plugin-proposal-class-properties": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz",
- "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz",
+ "integrity": "sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==",
"dev": true,
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.12.1",
+ "@babel/helper-create-class-features-plugin": "^7.10.4",
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-proposal-decorators": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.3.0.tgz",
- "integrity": "sha512-3W/oCUmsO43FmZIqermmq6TKaRSYhmh/vybPfVFwQWdSb8xwki38uAIvknCRzuyHRuYfCYmJzL9or1v0AffPjg==",
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.8.3.tgz",
+ "integrity": "sha512-e3RvdvS4qPJVTe288DlXjwKflpfy1hr0j5dz5WpIYYeP7vQZg2WfAEIp8k5/Lwis/m5REXEteIz6rrcDtXXG7w==",
"dev": true,
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.3.0",
- "@babel/helper-plugin-utils": "^7.0.0",
- "@babel/plugin-syntax-decorators": "^7.2.0"
+ "@babel/helper-create-class-features-plugin": "^7.8.3",
+ "@babel/helper-plugin-utils": "^7.8.3",
+ "@babel/plugin-syntax-decorators": "^7.8.3"
}
},
"@babel/plugin-proposal-dynamic-import": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz",
- "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz",
+ "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4",
@@ -403,9 +467,9 @@
}
},
"@babel/plugin-proposal-export-namespace-from": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz",
- "integrity": "sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz",
+ "integrity": "sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4",
@@ -413,9 +477,9 @@
}
},
"@babel/plugin-proposal-json-strings": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz",
- "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz",
+ "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4",
@@ -423,9 +487,9 @@
}
},
"@babel/plugin-proposal-logical-assignment-operators": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz",
- "integrity": "sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz",
+ "integrity": "sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4",
@@ -433,9 +497,9 @@
}
},
"@babel/plugin-proposal-nullish-coalescing-operator": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz",
- "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz",
+ "integrity": "sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4",
@@ -443,9 +507,9 @@
}
},
"@babel/plugin-proposal-numeric-separator": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz",
- "integrity": "sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz",
+ "integrity": "sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4",
@@ -453,20 +517,20 @@
}
},
"@babel/plugin-proposal-object-rest-spread": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz",
- "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz",
+ "integrity": "sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4",
"@babel/plugin-syntax-object-rest-spread": "^7.8.0",
- "@babel/plugin-transform-parameters": "^7.12.1"
+ "@babel/plugin-transform-parameters": "^7.10.4"
}
},
"@babel/plugin-proposal-optional-catch-binding": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz",
- "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz",
+ "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4",
@@ -474,33 +538,33 @@
}
},
"@babel/plugin-proposal-optional-chaining": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz",
- "integrity": "sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz",
+ "integrity": "sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0",
"@babel/plugin-syntax-optional-chaining": "^7.8.0"
}
},
"@babel/plugin-proposal-private-methods": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz",
- "integrity": "sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz",
+ "integrity": "sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==",
"dev": true,
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.12.1",
+ "@babel/helper-create-class-features-plugin": "^7.10.4",
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-proposal-unicode-property-regex": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz",
- "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz",
+ "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==",
"dev": true,
"requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.12.1",
+ "@babel/helper-create-regexp-features-plugin": "^7.10.4",
"@babel/helper-plugin-utils": "^7.10.4"
}
},
@@ -514,18 +578,18 @@
}
},
"@babel/plugin-syntax-class-properties": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz",
- "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz",
+ "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-syntax-decorators": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.1.tgz",
- "integrity": "sha512-ir9YW5daRrTYiy9UJ2TzdNIJEZu8KclVzDcfSt4iEmOtwQ4llPtWInNKJyKnVXp1vE4bbVd5S31M/im3mYMO1w==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.10.4.tgz",
+ "integrity": "sha512-2NaoC6fAk2VMdhY1eerkfHV+lVYC1u8b+jmRJISqANCJlTxYy19HGdIkkQtix2UtkcPuPu+IlDgrVseZnU03bw==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
@@ -550,9 +614,9 @@
}
},
"@babel/plugin-syntax-flow": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.1.tgz",
- "integrity": "sha512-1lBLLmtxrwpm4VKmtVFselI/P3pX+G63fAtUUt6b2Nzgao77KNDwyuRt90Mj2/9pKobtt68FdvjfqohZjg/FCA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.4.tgz",
+ "integrity": "sha512-yxQsX1dJixF4qEEdzVbst3SZQ58Nrooz8NV9Z9GL4byTE25BvJgl5lf0RECUf0fh28rZBb/RYTWn/eeKwCMrZQ==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
@@ -568,9 +632,9 @@
}
},
"@babel/plugin-syntax-jsx": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz",
- "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz",
+ "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
@@ -631,65 +695,65 @@
}
},
"@babel/plugin-syntax-top-level-await": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz",
- "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz",
+ "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-syntax-typescript": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.1.tgz",
- "integrity": "sha512-UZNEcCY+4Dp9yYRCAHrHDU+9ZXLYaY9MgBXSRLkB9WjYFRR6quJBumfVrEkUxrePPBwFcpWfNKXqVRQQtm7mMA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.4.tgz",
+ "integrity": "sha512-oSAEz1YkBCAKr5Yiq8/BNtvSAPwkp/IyUnwZogd8p+F0RuYQQrLeRUzIQhueQTTBy/F+a40uS7OFKxnkRvmvFQ==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-arrow-functions": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz",
- "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz",
+ "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-async-to-generator": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz",
- "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz",
+ "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==",
"dev": true,
"requires": {
- "@babel/helper-module-imports": "^7.12.1",
+ "@babel/helper-module-imports": "^7.10.4",
"@babel/helper-plugin-utils": "^7.10.4",
- "@babel/helper-remap-async-to-generator": "^7.12.1"
+ "@babel/helper-remap-async-to-generator": "^7.10.4"
}
},
"@babel/plugin-transform-block-scoped-functions": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz",
- "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz",
+ "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-block-scoping": {
- "version": "7.12.12",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.12.tgz",
- "integrity": "sha512-VOEPQ/ExOVqbukuP7BYJtI5ZxxsmegTwzZ04j1aF0dkSypGo9XpDHuOrABsJu+ie+penpSJheDJ11x1BEZNiyQ==",
+ "version": "7.11.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz",
+ "integrity": "sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-classes": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz",
- "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz",
+ "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==",
"dev": true,
"requires": {
"@babel/helper-annotate-as-pure": "^7.10.4",
@@ -697,52 +761,52 @@
"@babel/helper-function-name": "^7.10.4",
"@babel/helper-optimise-call-expression": "^7.10.4",
"@babel/helper-plugin-utils": "^7.10.4",
- "@babel/helper-replace-supers": "^7.12.1",
+ "@babel/helper-replace-supers": "^7.10.4",
"@babel/helper-split-export-declaration": "^7.10.4",
"globals": "^11.1.0"
}
},
"@babel/plugin-transform-computed-properties": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz",
- "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz",
+ "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-destructuring": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz",
- "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz",
+ "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-dotall-regex": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz",
- "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz",
+ "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==",
"dev": true,
"requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.12.1",
+ "@babel/helper-create-regexp-features-plugin": "^7.10.4",
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-duplicate-keys": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz",
- "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz",
+ "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-exponentiation-operator": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz",
- "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz",
+ "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==",
"dev": true,
"requires": {
"@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4",
@@ -750,28 +814,28 @@
}
},
"@babel/plugin-transform-flow-strip-types": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.2.3.tgz",
- "integrity": "sha512-xnt7UIk9GYZRitqCnsVMjQK1O2eKZwFB3CvvHjf5SGx6K6vr/MScCKQDnf1DxRaj501e3pXjti+inbSXX2ZUoQ==",
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.9.0.tgz",
+ "integrity": "sha512-7Qfg0lKQhEHs93FChxVLAvhBshOPQDtJUTVHr/ZwQNRccCm4O9D79r9tVSoV8iNwjP1YgfD+e/fgHcPkN1qEQg==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "@babel/plugin-syntax-flow": "^7.2.0"
+ "@babel/helper-plugin-utils": "^7.8.3",
+ "@babel/plugin-syntax-flow": "^7.8.3"
}
},
"@babel/plugin-transform-for-of": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz",
- "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz",
+ "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-function-name": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz",
- "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz",
+ "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==",
"dev": true,
"requires": {
"@babel/helper-function-name": "^7.10.4",
@@ -779,177 +843,180 @@
}
},
"@babel/plugin-transform-literals": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz",
- "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz",
+ "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-member-expression-literals": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz",
- "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz",
+ "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-modules-amd": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz",
- "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz",
+ "integrity": "sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==",
"dev": true,
"requires": {
- "@babel/helper-module-transforms": "^7.12.1",
+ "@babel/helper-module-transforms": "^7.10.5",
"@babel/helper-plugin-utils": "^7.10.4",
"babel-plugin-dynamic-import-node": "^2.3.3"
}
},
"@babel/plugin-transform-modules-commonjs": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz",
- "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz",
+ "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==",
"dev": true,
"requires": {
- "@babel/helper-module-transforms": "^7.12.1",
+ "@babel/helper-module-transforms": "^7.10.4",
"@babel/helper-plugin-utils": "^7.10.4",
- "@babel/helper-simple-access": "^7.12.1",
+ "@babel/helper-simple-access": "^7.10.4",
"babel-plugin-dynamic-import-node": "^2.3.3"
}
},
"@babel/plugin-transform-modules-systemjs": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz",
- "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz",
+ "integrity": "sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==",
"dev": true,
"requires": {
"@babel/helper-hoist-variables": "^7.10.4",
- "@babel/helper-module-transforms": "^7.12.1",
+ "@babel/helper-module-transforms": "^7.10.5",
"@babel/helper-plugin-utils": "^7.10.4",
- "@babel/helper-validator-identifier": "^7.10.4",
"babel-plugin-dynamic-import-node": "^2.3.3"
}
},
"@babel/plugin-transform-modules-umd": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz",
- "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz",
+ "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==",
"dev": true,
"requires": {
- "@babel/helper-module-transforms": "^7.12.1",
+ "@babel/helper-module-transforms": "^7.10.4",
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz",
- "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz",
+ "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==",
"dev": true,
"requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.12.1"
+ "@babel/helper-create-regexp-features-plugin": "^7.10.4"
}
},
"@babel/plugin-transform-new-target": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz",
- "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz",
+ "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-object-super": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz",
- "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz",
+ "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4",
- "@babel/helper-replace-supers": "^7.12.1"
+ "@babel/helper-replace-supers": "^7.10.4"
}
},
"@babel/plugin-transform-parameters": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz",
- "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz",
+ "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==",
"dev": true,
"requires": {
+ "@babel/helper-get-function-arity": "^7.10.4",
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-property-literals": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz",
- "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz",
+ "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-react-constant-elements": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.12.1.tgz",
- "integrity": "sha512-KOHd0tIRLoER+J+8f9DblZDa1fLGPwaaN1DI1TVHuQFOpjHV22C3CUB3obeC4fexHY9nx+fH0hQNvLFFfA1mxA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.10.4.tgz",
+ "integrity": "sha512-cYmQBW1pXrqBte1raMkAulXmi7rjg3VI6ZLg9QIic8Hq7BtYXaWuZSxsr2siOMI6SWwpxjWfnwhTUrd7JlAV7g==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-react-display-name": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.1.tgz",
- "integrity": "sha512-cAzB+UzBIrekfYxyLlFqf/OagTvHLcVBb5vpouzkYkBclRPraiygVnafvAoipErZLI8ANv8Ecn6E/m5qPXD26w==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz",
+ "integrity": "sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-react-jsx": {
- "version": "7.12.12",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.12.tgz",
- "integrity": "sha512-JDWGuzGNWscYcq8oJVCtSE61a5+XAOos+V0HrxnDieUus4UMnBEosDnY1VJqU5iZ4pA04QY7l0+JvHL1hZEfsw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz",
+ "integrity": "sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A==",
"dev": true,
"requires": {
- "@babel/helper-annotate-as-pure": "^7.12.10",
- "@babel/helper-module-imports": "^7.12.5",
+ "@babel/helper-builder-react-jsx": "^7.10.4",
+ "@babel/helper-builder-react-jsx-experimental": "^7.10.4",
"@babel/helper-plugin-utils": "^7.10.4",
- "@babel/plugin-syntax-jsx": "^7.12.1",
- "@babel/types": "^7.12.12"
+ "@babel/plugin-syntax-jsx": "^7.10.4"
}
},
"@babel/plugin-transform-react-jsx-development": {
- "version": "7.12.12",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.12.tgz",
- "integrity": "sha512-i1AxnKxHeMxUaWVXQOSIco4tvVvvCxMSfeBMnMM06mpaJt3g+MpxYQQrDfojUQldP1xxraPSJYSMEljoWM/dCg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.4.tgz",
+ "integrity": "sha512-RM3ZAd1sU1iQ7rI2dhrZRZGv0aqzNQMbkIUCS1txYpi9wHQ2ZHNjo5TwX+UD6pvFW4AbWqLVYvKy5qJSAyRGjQ==",
"dev": true,
"requires": {
- "@babel/plugin-transform-react-jsx": "^7.12.12"
+ "@babel/helper-builder-react-jsx-experimental": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-jsx": "^7.10.4"
}
},
"@babel/plugin-transform-react-jsx-self": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.1.tgz",
- "integrity": "sha512-FbpL0ieNWiiBB5tCldX17EtXgmzeEZjFrix72rQYeq9X6nUK38HCaxexzVQrZWXanxKJPKVVIU37gFjEQYkPkA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz",
+ "integrity": "sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-jsx": "^7.10.4"
}
},
"@babel/plugin-transform-react-jsx-source": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.1.tgz",
- "integrity": "sha512-keQ5kBfjJNRc6zZN1/nVHCd6LLIHq4aUKcVnvE/2l+ZZROSbqoiGFRtT5t3Is89XJxBQaP7NLZX2jgGHdZvvFQ==",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz",
+ "integrity": "sha512-wTeqHVkN1lfPLubRiZH3o73f4rfon42HpgxUSs86Nc+8QIcm/B9s8NNVXu/gwGcOyd7yDib9ikxoDLxJP0UiDA==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-jsx": "^7.10.4"
}
},
"@babel/plugin-transform-react-pure-annotations": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz",
- "integrity": "sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz",
+ "integrity": "sha512-+njZkqcOuS8RaPakrnR9KvxjoG1ASJWpoIv/doyWngId88JoFlPlISenGXjrVacZUIALGUr6eodRs1vmPnF23A==",
"dev": true,
"requires": {
"@babel/helper-annotate-as-pure": "^7.10.4",
@@ -957,137 +1024,138 @@
}
},
"@babel/plugin-transform-regenerator": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz",
- "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz",
+ "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==",
"dev": true,
"requires": {
"regenerator-transform": "^0.14.2"
}
},
"@babel/plugin-transform-reserved-words": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz",
- "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz",
+ "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-runtime": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.2.0.tgz",
- "integrity": "sha512-jIgkljDdq4RYDnJyQsiWbdvGeei/0MOTtSHKO/rfbd/mXBxNpdlulMx49L0HQ4pug1fXannxoqCI+fYSle9eSw==",
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.0.tgz",
+ "integrity": "sha512-pUu9VSf3kI1OqbWINQ7MaugnitRss1z533436waNXp+0N3ur3zfut37sXiQMxkuCF4VUjwZucen/quskCh7NHw==",
"dev": true,
"requires": {
- "@babel/helper-module-imports": "^7.0.0",
- "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/helper-module-imports": "^7.8.3",
+ "@babel/helper-plugin-utils": "^7.8.3",
"resolve": "^1.8.1",
"semver": "^5.5.1"
}
},
"@babel/plugin-transform-shorthand-properties": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz",
- "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz",
+ "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-spread": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz",
- "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz",
+ "integrity": "sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1"
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0"
}
},
"@babel/plugin-transform-sticky-regex": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz",
- "integrity": "sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz",
+ "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-regex": "^7.10.4"
}
},
"@babel/plugin-transform-template-literals": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz",
- "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz",
+ "integrity": "sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==",
"dev": true,
"requires": {
+ "@babel/helper-annotate-as-pure": "^7.10.4",
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-typeof-symbol": {
- "version": "7.12.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz",
- "integrity": "sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz",
+ "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-typescript": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.1.tgz",
- "integrity": "sha512-VrsBByqAIntM+EYMqSm59SiMEf7qkmI9dqMt6RbD/wlwueWmYcI0FFK5Fj47pP6DRZm+3teXjosKlwcZJ5lIMw==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.11.0.tgz",
+ "integrity": "sha512-edJsNzTtvb3MaXQwj8403B7mZoGu9ElDJQZOKjGUnvilquxBA3IQoEIOvkX/1O8xfAsnHS/oQhe2w/IXrr+w0w==",
"dev": true,
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.12.1",
+ "@babel/helper-create-class-features-plugin": "^7.10.5",
"@babel/helper-plugin-utils": "^7.10.4",
- "@babel/plugin-syntax-typescript": "^7.12.1"
+ "@babel/plugin-syntax-typescript": "^7.10.4"
}
},
"@babel/plugin-transform-unicode-escapes": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz",
- "integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz",
+ "integrity": "sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-unicode-regex": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz",
- "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz",
+ "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==",
"dev": true,
"requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.12.1",
+ "@babel/helper-create-regexp-features-plugin": "^7.10.4",
"@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/preset-env": {
- "version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.11.tgz",
- "integrity": "sha512-j8Tb+KKIXKYlDBQyIOy4BLxzv1NUOwlHfZ74rvW+Z0Gp4/cI2IMDPBWAgWceGcE7aep9oL/0K9mlzlMGxA8yNw==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz",
+ "integrity": "sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==",
"dev": true,
"requires": {
- "@babel/compat-data": "^7.12.7",
- "@babel/helper-compilation-targets": "^7.12.5",
- "@babel/helper-module-imports": "^7.12.5",
+ "@babel/compat-data": "^7.11.0",
+ "@babel/helper-compilation-targets": "^7.10.4",
+ "@babel/helper-module-imports": "^7.10.4",
"@babel/helper-plugin-utils": "^7.10.4",
- "@babel/helper-validator-option": "^7.12.11",
- "@babel/plugin-proposal-async-generator-functions": "^7.12.1",
- "@babel/plugin-proposal-class-properties": "^7.12.1",
- "@babel/plugin-proposal-dynamic-import": "^7.12.1",
- "@babel/plugin-proposal-export-namespace-from": "^7.12.1",
- "@babel/plugin-proposal-json-strings": "^7.12.1",
- "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1",
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1",
- "@babel/plugin-proposal-numeric-separator": "^7.12.7",
- "@babel/plugin-proposal-object-rest-spread": "^7.12.1",
- "@babel/plugin-proposal-optional-catch-binding": "^7.12.1",
- "@babel/plugin-proposal-optional-chaining": "^7.12.7",
- "@babel/plugin-proposal-private-methods": "^7.12.1",
- "@babel/plugin-proposal-unicode-property-regex": "^7.12.1",
+ "@babel/plugin-proposal-async-generator-functions": "^7.10.4",
+ "@babel/plugin-proposal-class-properties": "^7.10.4",
+ "@babel/plugin-proposal-dynamic-import": "^7.10.4",
+ "@babel/plugin-proposal-export-namespace-from": "^7.10.4",
+ "@babel/plugin-proposal-json-strings": "^7.10.4",
+ "@babel/plugin-proposal-logical-assignment-operators": "^7.11.0",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4",
+ "@babel/plugin-proposal-numeric-separator": "^7.10.4",
+ "@babel/plugin-proposal-object-rest-spread": "^7.11.0",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.10.4",
+ "@babel/plugin-proposal-optional-chaining": "^7.11.0",
+ "@babel/plugin-proposal-private-methods": "^7.10.4",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.10.4",
"@babel/plugin-syntax-async-generators": "^7.8.0",
- "@babel/plugin-syntax-class-properties": "^7.12.1",
+ "@babel/plugin-syntax-class-properties": "^7.10.4",
"@babel/plugin-syntax-dynamic-import": "^7.8.0",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3",
"@babel/plugin-syntax-json-strings": "^7.8.0",
@@ -1097,49 +1165,52 @@
"@babel/plugin-syntax-object-rest-spread": "^7.8.0",
"@babel/plugin-syntax-optional-catch-binding": "^7.8.0",
"@babel/plugin-syntax-optional-chaining": "^7.8.0",
- "@babel/plugin-syntax-top-level-await": "^7.12.1",
- "@babel/plugin-transform-arrow-functions": "^7.12.1",
- "@babel/plugin-transform-async-to-generator": "^7.12.1",
- "@babel/plugin-transform-block-scoped-functions": "^7.12.1",
- "@babel/plugin-transform-block-scoping": "^7.12.11",
- "@babel/plugin-transform-classes": "^7.12.1",
- "@babel/plugin-transform-computed-properties": "^7.12.1",
- "@babel/plugin-transform-destructuring": "^7.12.1",
- "@babel/plugin-transform-dotall-regex": "^7.12.1",
- "@babel/plugin-transform-duplicate-keys": "^7.12.1",
- "@babel/plugin-transform-exponentiation-operator": "^7.12.1",
- "@babel/plugin-transform-for-of": "^7.12.1",
- "@babel/plugin-transform-function-name": "^7.12.1",
- "@babel/plugin-transform-literals": "^7.12.1",
- "@babel/plugin-transform-member-expression-literals": "^7.12.1",
- "@babel/plugin-transform-modules-amd": "^7.12.1",
- "@babel/plugin-transform-modules-commonjs": "^7.12.1",
- "@babel/plugin-transform-modules-systemjs": "^7.12.1",
- "@babel/plugin-transform-modules-umd": "^7.12.1",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1",
- "@babel/plugin-transform-new-target": "^7.12.1",
- "@babel/plugin-transform-object-super": "^7.12.1",
- "@babel/plugin-transform-parameters": "^7.12.1",
- "@babel/plugin-transform-property-literals": "^7.12.1",
- "@babel/plugin-transform-regenerator": "^7.12.1",
- "@babel/plugin-transform-reserved-words": "^7.12.1",
- "@babel/plugin-transform-shorthand-properties": "^7.12.1",
- "@babel/plugin-transform-spread": "^7.12.1",
- "@babel/plugin-transform-sticky-regex": "^7.12.7",
- "@babel/plugin-transform-template-literals": "^7.12.1",
- "@babel/plugin-transform-typeof-symbol": "^7.12.10",
- "@babel/plugin-transform-unicode-escapes": "^7.12.1",
- "@babel/plugin-transform-unicode-regex": "^7.12.1",
+ "@babel/plugin-syntax-top-level-await": "^7.10.4",
+ "@babel/plugin-transform-arrow-functions": "^7.10.4",
+ "@babel/plugin-transform-async-to-generator": "^7.10.4",
+ "@babel/plugin-transform-block-scoped-functions": "^7.10.4",
+ "@babel/plugin-transform-block-scoping": "^7.10.4",
+ "@babel/plugin-transform-classes": "^7.10.4",
+ "@babel/plugin-transform-computed-properties": "^7.10.4",
+ "@babel/plugin-transform-destructuring": "^7.10.4",
+ "@babel/plugin-transform-dotall-regex": "^7.10.4",
+ "@babel/plugin-transform-duplicate-keys": "^7.10.4",
+ "@babel/plugin-transform-exponentiation-operator": "^7.10.4",
+ "@babel/plugin-transform-for-of": "^7.10.4",
+ "@babel/plugin-transform-function-name": "^7.10.4",
+ "@babel/plugin-transform-literals": "^7.10.4",
+ "@babel/plugin-transform-member-expression-literals": "^7.10.4",
+ "@babel/plugin-transform-modules-amd": "^7.10.4",
+ "@babel/plugin-transform-modules-commonjs": "^7.10.4",
+ "@babel/plugin-transform-modules-systemjs": "^7.10.4",
+ "@babel/plugin-transform-modules-umd": "^7.10.4",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4",
+ "@babel/plugin-transform-new-target": "^7.10.4",
+ "@babel/plugin-transform-object-super": "^7.10.4",
+ "@babel/plugin-transform-parameters": "^7.10.4",
+ "@babel/plugin-transform-property-literals": "^7.10.4",
+ "@babel/plugin-transform-regenerator": "^7.10.4",
+ "@babel/plugin-transform-reserved-words": "^7.10.4",
+ "@babel/plugin-transform-shorthand-properties": "^7.10.4",
+ "@babel/plugin-transform-spread": "^7.11.0",
+ "@babel/plugin-transform-sticky-regex": "^7.10.4",
+ "@babel/plugin-transform-template-literals": "^7.10.4",
+ "@babel/plugin-transform-typeof-symbol": "^7.10.4",
+ "@babel/plugin-transform-unicode-escapes": "^7.10.4",
+ "@babel/plugin-transform-unicode-regex": "^7.10.4",
"@babel/preset-modules": "^0.1.3",
- "@babel/types": "^7.12.11",
- "core-js-compat": "^3.8.0",
+ "@babel/types": "^7.11.0",
+ "browserslist": "^4.12.0",
+ "core-js-compat": "^3.6.2",
+ "invariant": "^2.2.2",
+ "levenary": "^1.1.1",
"semver": "^5.5.0"
}
},
"@babel/preset-modules": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz",
- "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==",
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz",
+ "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.0.0",
@@ -1150,154 +1221,447 @@
}
},
"@babel/preset-react": {
- "version": "7.12.10",
- "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.12.10.tgz",
- "integrity": "sha512-vtQNjaHRl4DUpp+t+g4wvTHsLQuye+n0H/wsXIZRn69oz/fvNC7gQ4IK73zGJBaxvHoxElDvnYCthMcT7uzFoQ==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.10.4.tgz",
+ "integrity": "sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4",
- "@babel/plugin-transform-react-display-name": "^7.12.1",
- "@babel/plugin-transform-react-jsx": "^7.12.10",
- "@babel/plugin-transform-react-jsx-development": "^7.12.7",
- "@babel/plugin-transform-react-pure-annotations": "^7.12.1"
+ "@babel/plugin-transform-react-display-name": "^7.10.4",
+ "@babel/plugin-transform-react-jsx": "^7.10.4",
+ "@babel/plugin-transform-react-jsx-development": "^7.10.4",
+ "@babel/plugin-transform-react-jsx-self": "^7.10.4",
+ "@babel/plugin-transform-react-jsx-source": "^7.10.4",
+ "@babel/plugin-transform-react-pure-annotations": "^7.10.4"
}
},
"@babel/preset-typescript": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.1.0.tgz",
- "integrity": "sha512-LYveByuF9AOM8WrsNne5+N79k1YxjNB6gmpCQsnuSBAcV8QUeB+ZUxQzL7Rz7HksPbahymKkq2qBR+o36ggFZA==",
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.9.0.tgz",
+ "integrity": "sha512-S4cueFnGrIbvYJgwsVFKdvOmpiL0XGw9MFW9D0vgRys5g36PBhZRL8NX8Gr2akz8XRtzq6HuDXPD/1nniagNUg==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "@babel/plugin-transform-typescript": "^7.1.0"
+ "@babel/helper-plugin-utils": "^7.8.3",
+ "@babel/plugin-transform-typescript": "^7.9.0"
}
},
"@babel/runtime": {
- "version": "7.12.5",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
- "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.4.tgz",
+ "integrity": "sha512-UpTN5yUJr9b4EX2CnGNWIvER7Ab83ibv0pcvvHc4UOdrBI5jb8bj+32cCwPX6xu0mt2daFNjYhoi+X7beH0RSw==",
"requires": {
"regenerator-runtime": "^0.13.4"
},
+ "dependencies": {
+ "regenerator-runtime": {
+ "version": "0.13.5",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
+ "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA=="
+ }
+ }
+ },
+ "@babel/runtime-corejs3": {
+ "version": "7.11.2",
+ "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.11.2.tgz",
+ "integrity": "sha512-qh5IR+8VgFz83VBa6OkaET6uN/mJOhHONuy3m1sgF0CV6mXdPSEBdA7e1eUbVvyNtANjMbg22JUv71BaDXLY6A==",
+ "dev": true,
+ "requires": {
+ "core-js-pure": "^3.0.0",
+ "regenerator-runtime": "^0.13.4"
+ },
"dependencies": {
"regenerator-runtime": {
"version": "0.13.7",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
- "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
+ "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==",
+ "dev": true
}
}
},
"@babel/template": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz",
- "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+ "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.10.4",
- "@babel/parser": "^7.12.7",
- "@babel/types": "^7.12.7"
+ "@babel/parser": "^7.10.4",
+ "@babel/types": "^7.10.4"
}
},
"@babel/traverse": {
- "version": "7.12.12",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz",
- "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz",
+ "integrity": "sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.12.11",
- "@babel/generator": "^7.12.11",
- "@babel/helper-function-name": "^7.12.11",
- "@babel/helper-split-export-declaration": "^7.12.11",
- "@babel/parser": "^7.12.11",
- "@babel/types": "^7.12.12",
+ "@babel/code-frame": "^7.10.4",
+ "@babel/generator": "^7.11.0",
+ "@babel/helper-function-name": "^7.10.4",
+ "@babel/helper-split-export-declaration": "^7.11.0",
+ "@babel/parser": "^7.11.0",
+ "@babel/types": "^7.11.0",
"debug": "^4.1.0",
"globals": "^11.1.0",
"lodash": "^4.17.19"
},
"dependencies": {
"debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "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.2"
+ "ms": "^2.1.1"
}
- },
- "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
}
}
},
"@babel/types": {
- "version": "7.12.12",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz",
- "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz",
+ "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==",
"dev": true,
"requires": {
- "@babel/helper-validator-identifier": "^7.12.11",
+ "@babel/helper-validator-identifier": "^7.10.4",
"lodash": "^4.17.19",
"to-fast-properties": "^2.0.0"
}
},
+ "@cnakazawa/watch": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz",
+ "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==",
+ "dev": true,
+ "requires": {
+ "exec-sh": "^0.3.2",
+ "minimist": "^1.2.0"
+ }
+ },
"@csstools/convert-colors": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz",
"integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==",
"dev": true
},
- "@material/animation": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/@material/animation/-/animation-0.4.1.tgz",
- "integrity": "sha1-v4tQrtrUz/zopbQo/cqPGruvF24="
+ "@csstools/normalize.css": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-10.1.0.tgz",
+ "integrity": "sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==",
+ "dev": true
},
- "@material/base": {
- "version": "0.2.6",
- "resolved": "https://registry.npmjs.org/@material/base/-/base-0.2.6.tgz",
- "integrity": "sha1-MAPz3ywG0XIVHUFguMiy5sZefAE="
+ "@hapi/address": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz",
+ "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==",
+ "dev": true
},
- "@material/button": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/@material/button/-/button-0.7.0.tgz",
- "integrity": "sha512-T2Gcn8IJOJtzSU8mHN7HMqGbvkOy5lEWDZ/dLmVviGKeip22XR9pjm8sO52dCcs1rJJxsJPCl9UnaQUmT8Shaw==",
+ "@hapi/bourne": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz",
+ "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==",
+ "dev": true
+ },
+ "@hapi/hoek": {
+ "version": "8.5.1",
+ "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz",
+ "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==",
+ "dev": true
+ },
+ "@hapi/joi": {
+ "version": "15.1.1",
+ "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz",
+ "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==",
+ "dev": true,
"requires": {
- "@material/elevation": "^0.1.12",
- "@material/ripple": "^0.8.7",
- "@material/theme": "^0.3.1",
- "@material/typography": "^0.3.0"
+ "@hapi/address": "2.x.x",
+ "@hapi/bourne": "1.x.x",
+ "@hapi/hoek": "8.x.x",
+ "@hapi/topo": "3.x.x"
}
},
- "@material/elevation": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-0.1.13.tgz",
- "integrity": "sha1-o4iF88r0OYymp0aMMIiH1wvUYFs=",
+ "@hapi/topo": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz",
+ "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==",
+ "dev": true,
"requires": {
- "@material/animation": "^0.4.1"
+ "@hapi/hoek": "^8.3.0"
}
},
- "@material/ripple": {
- "version": "0.8.8",
- "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-0.8.8.tgz",
- "integrity": "sha1-Irie2eY4g/F/pPANEjcOMuDEWbc=",
+ "@jest/console": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz",
+ "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==",
+ "dev": true,
"requires": {
- "@material/base": "^0.2.6",
- "@material/theme": "^0.4.0"
- },
- "dependencies": {
- "@material/theme": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.4.0.tgz",
- "integrity": "sha1-Cu8aAnm2XBWZBYT7i47KCVxzRkE="
- }
+ "@jest/source-map": "^24.9.0",
+ "chalk": "^2.0.1",
+ "slash": "^2.0.0"
}
},
- "@material/theme": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.3.1.tgz",
- "integrity": "sha512-0PRLqMPCL3mEaUXyc/SWZWDHWjfyS7xXT64h7dT4lwwA0oHpq0OdQaqemYWkI1h+CVHeT0qSwirRNJ0jxBlhtA=="
+ "@jest/core": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-24.9.0.tgz",
+ "integrity": "sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A==",
+ "dev": true,
+ "requires": {
+ "@jest/console": "^24.7.1",
+ "@jest/reporters": "^24.9.0",
+ "@jest/test-result": "^24.9.0",
+ "@jest/transform": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "ansi-escapes": "^3.0.0",
+ "chalk": "^2.0.1",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.1.15",
+ "jest-changed-files": "^24.9.0",
+ "jest-config": "^24.9.0",
+ "jest-haste-map": "^24.9.0",
+ "jest-message-util": "^24.9.0",
+ "jest-regex-util": "^24.3.0",
+ "jest-resolve": "^24.9.0",
+ "jest-resolve-dependencies": "^24.9.0",
+ "jest-runner": "^24.9.0",
+ "jest-runtime": "^24.9.0",
+ "jest-snapshot": "^24.9.0",
+ "jest-util": "^24.9.0",
+ "jest-validate": "^24.9.0",
+ "jest-watcher": "^24.9.0",
+ "micromatch": "^3.1.10",
+ "p-each-series": "^1.0.0",
+ "realpath-native": "^1.1.0",
+ "rimraf": "^2.5.4",
+ "slash": "^2.0.0",
+ "strip-ansi": "^5.0.0"
+ },
+ "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
+ },
+ "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"
+ }
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "@jest/environment": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-24.9.0.tgz",
+ "integrity": "sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ==",
+ "dev": true,
+ "requires": {
+ "@jest/fake-timers": "^24.9.0",
+ "@jest/transform": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "jest-mock": "^24.9.0"
+ }
+ },
+ "@jest/fake-timers": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz",
+ "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^24.9.0",
+ "jest-message-util": "^24.9.0",
+ "jest-mock": "^24.9.0"
+ }
+ },
+ "@jest/reporters": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-24.9.0.tgz",
+ "integrity": "sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw==",
+ "dev": true,
+ "requires": {
+ "@jest/environment": "^24.9.0",
+ "@jest/test-result": "^24.9.0",
+ "@jest/transform": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "chalk": "^2.0.1",
+ "exit": "^0.1.2",
+ "glob": "^7.1.2",
+ "istanbul-lib-coverage": "^2.0.2",
+ "istanbul-lib-instrument": "^3.0.1",
+ "istanbul-lib-report": "^2.0.4",
+ "istanbul-lib-source-maps": "^3.0.1",
+ "istanbul-reports": "^2.2.6",
+ "jest-haste-map": "^24.9.0",
+ "jest-resolve": "^24.9.0",
+ "jest-runtime": "^24.9.0",
+ "jest-util": "^24.9.0",
+ "jest-worker": "^24.6.0",
+ "node-notifier": "^5.4.2",
+ "slash": "^2.0.0",
+ "source-map": "^0.6.0",
+ "string-length": "^2.0.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "@jest/source-map": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz",
+ "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==",
+ "dev": true,
+ "requires": {
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.1.15",
+ "source-map": "^0.6.0"
+ },
+ "dependencies": {
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "@jest/test-result": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz",
+ "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==",
+ "dev": true,
+ "requires": {
+ "@jest/console": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "@types/istanbul-lib-coverage": "^2.0.0"
+ }
+ },
+ "@jest/test-sequencer": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz",
+ "integrity": "sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A==",
+ "dev": true,
+ "requires": {
+ "@jest/test-result": "^24.9.0",
+ "jest-haste-map": "^24.9.0",
+ "jest-runner": "^24.9.0",
+ "jest-runtime": "^24.9.0"
+ }
+ },
+ "@jest/transform": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz",
+ "integrity": "sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.1.0",
+ "@jest/types": "^24.9.0",
+ "babel-plugin-istanbul": "^5.1.0",
+ "chalk": "^2.0.1",
+ "convert-source-map": "^1.4.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "graceful-fs": "^4.1.15",
+ "jest-haste-map": "^24.9.0",
+ "jest-regex-util": "^24.9.0",
+ "jest-util": "^24.9.0",
+ "micromatch": "^3.1.10",
+ "pirates": "^4.0.1",
+ "realpath-native": "^1.1.0",
+ "slash": "^2.0.0",
+ "source-map": "^0.6.1",
+ "write-file-atomic": "2.4.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "@jest/types": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
+ "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^1.1.1",
+ "@types/yargs": "^13.0.0"
+ }
+ },
+ "@material/animation": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/@material/animation/-/animation-0.4.1.tgz",
+ "integrity": "sha1-v4tQrtrUz/zopbQo/cqPGruvF24="
+ },
+ "@material/base": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/@material/base/-/base-0.2.6.tgz",
+ "integrity": "sha1-MAPz3ywG0XIVHUFguMiy5sZefAE="
+ },
+ "@material/button": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/@material/button/-/button-0.7.0.tgz",
+ "integrity": "sha512-T2Gcn8IJOJtzSU8mHN7HMqGbvkOy5lEWDZ/dLmVviGKeip22XR9pjm8sO52dCcs1rJJxsJPCl9UnaQUmT8Shaw==",
+ "requires": {
+ "@material/elevation": "^0.1.12",
+ "@material/ripple": "^0.8.7",
+ "@material/theme": "^0.3.1",
+ "@material/typography": "^0.3.0"
+ }
+ },
+ "@material/elevation": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-0.1.13.tgz",
+ "integrity": "sha1-o4iF88r0OYymp0aMMIiH1wvUYFs=",
+ "requires": {
+ "@material/animation": "^0.4.1"
+ }
+ },
+ "@material/ripple": {
+ "version": "0.8.8",
+ "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-0.8.8.tgz",
+ "integrity": "sha1-Irie2eY4g/F/pPANEjcOMuDEWbc=",
+ "requires": {
+ "@material/base": "^0.2.6",
+ "@material/theme": "^0.4.0"
+ },
+ "dependencies": {
+ "@material/theme": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.4.0.tgz",
+ "integrity": "sha1-Cu8aAnm2XBWZBYT7i47KCVxzRkE="
+ }
+ }
+ },
+ "@material/theme": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.3.1.tgz",
+ "integrity": "sha512-0PRLqMPCL3mEaUXyc/SWZWDHWjfyS7xXT64h7dT4lwwA0oHpq0OdQaqemYWkI1h+CVHeT0qSwirRNJ0jxBlhtA=="
},
"@material/typography": {
"version": "0.3.0",
@@ -1320,14 +1684,6 @@
"integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==",
"dev": true
},
- "@samverschueren/stream-to-observable": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz",
- "integrity": "sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==",
- "requires": {
- "any-observable": "^0.3.0"
- }
- },
"@svgr/babel-plugin-add-jsx-attribute": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz",
@@ -1430,46 +1786,6 @@
"@svgr/babel-preset": "^4.3.3",
"@svgr/hast-util-to-babel-ast": "^4.3.2",
"svg-parser": "^2.0.0"
- },
- "dependencies": {
- "@babel/core": {
- "version": "7.12.10",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.10.tgz",
- "integrity": "sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.10.4",
- "@babel/generator": "^7.12.10",
- "@babel/helper-module-transforms": "^7.12.1",
- "@babel/helpers": "^7.12.5",
- "@babel/parser": "^7.12.10",
- "@babel/template": "^7.12.7",
- "@babel/traverse": "^7.12.10",
- "@babel/types": "^7.12.10",
- "convert-source-map": "^1.7.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.1",
- "json5": "^2.1.2",
- "lodash": "^4.17.19",
- "semver": "^5.4.1",
- "source-map": "^0.5.0"
- }
- },
- "debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "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
- }
}
},
"@svgr/plugin-svgo": {
@@ -1484,235 +1800,454 @@
}
},
"@svgr/webpack": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-4.1.0.tgz",
- "integrity": "sha512-d09ehQWqLMywP/PT/5JvXwPskPK9QCXUjiSkAHehreB381qExXf5JFCBWhfEyNonRbkIneCeYM99w+Ud48YIQQ==",
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-4.3.3.tgz",
+ "integrity": "sha512-bjnWolZ6KVsHhgyCoYRFmbd26p8XVbulCzSG53BDQqAr+JOAderYK7CuYrB3bDjHJuF6LJ7Wrr42+goLRV9qIg==",
"dev": true,
"requires": {
- "@babel/core": "^7.1.6",
+ "@babel/core": "^7.4.5",
"@babel/plugin-transform-react-constant-elements": "^7.0.0",
- "@babel/preset-env": "^7.1.6",
+ "@babel/preset-env": "^7.4.5",
"@babel/preset-react": "^7.0.0",
- "@svgr/core": "^4.1.0",
- "@svgr/plugin-jsx": "^4.1.0",
- "@svgr/plugin-svgo": "^4.0.3",
- "loader-utils": "^1.1.0"
+ "@svgr/core": "^4.3.3",
+ "@svgr/plugin-jsx": "^4.3.3",
+ "@svgr/plugin-svgo": "^4.3.1",
+ "loader-utils": "^1.2.3"
}
},
- "@types/cookie": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.3.3.tgz",
- "integrity": "sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow=="
- },
- "@types/object-assign": {
- "version": "4.0.30",
- "resolved": "https://registry.npmjs.org/@types/object-assign/-/object-assign-4.0.30.tgz",
- "integrity": "sha1-iUk3HVqZ9Dge4PHfCpt6GH4H5lI="
- },
- "@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=="
- },
- "@types/q": {
- "version": "1.5.4",
- "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz",
- "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==",
- "dev": true
- },
- "@types/react": {
- "version": "17.0.0",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.0.tgz",
- "integrity": "sha512-aj/L7RIMsRlWML3YB6KZiXB3fV2t41+5RBGYF8z+tAKU43Px8C3cYUZsDvf1/+Bm4FK21QWBrDutu8ZJ/70qOw==",
+ "@tanem/svg-injector": {
+ "version": "8.2.2",
+ "resolved": "https://registry.npmjs.org/@tanem/svg-injector/-/svg-injector-8.2.2.tgz",
+ "integrity": "sha512-a4C3GMCD15URV+ZNjt8Fibxu04qejJip0G6qIDl/Dne7TGt++2MjJzwV5lRVo7yqT/OIVFOnAQwMH0qfHGWlpw==",
"requires": {
- "@types/prop-types": "*",
- "csstype": "^3.0.2"
+ "@babel/runtime": "^7.12.5",
+ "content-type": "^1.0.4",
+ "tslib": "^2.0.3"
+ },
+ "dependencies": {
+ "@babel/runtime": {
+ "version": "7.12.5",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
+ "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
+ "requires": {
+ "regenerator-runtime": "^0.13.4"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.13.7",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
+ "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
+ },
+ "tslib": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
+ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A=="
+ }
}
},
- "@types/react-slick": {
- "version": "0.23.4",
- "resolved": "https://registry.npmjs.org/@types/react-slick/-/react-slick-0.23.4.tgz",
- "integrity": "sha512-vXoIy4GUfB7/YgqubR4H7RALo+pRdMYCeLgWwV3MPwl5pggTlEkFBTF19R7u+LJc85uMqC7RfsbkqPLMQ4ab+A==",
+ "@types/babel__core": {
+ "version": "7.1.9",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.9.tgz",
+ "integrity": "sha512-sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw==",
+ "dev": true,
"requires": {
- "@types/react": "*"
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
}
},
- "@types/tapable": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.2.tgz",
- "integrity": "sha512-42zEJkBpNfMEAvWR5WlwtTH22oDzcMjFsL9gDGExwF8X8WvAiw7Vwop7hPw03QT8TKfec83LwbHj6SvpqM4ELQ==",
- "dev": true
- },
- "@webassemblyjs/ast": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz",
- "integrity": "sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==",
+ "@types/babel__generator": {
+ "version": "7.6.1",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz",
+ "integrity": "sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==",
"dev": true,
"requires": {
- "@webassemblyjs/helper-module-context": "1.7.11",
- "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
- "@webassemblyjs/wast-parser": "1.7.11"
+ "@babel/types": "^7.0.0"
}
},
- "@webassemblyjs/floating-point-hex-parser": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz",
- "integrity": "sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==",
- "dev": true
- },
- "@webassemblyjs/helper-api-error": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz",
- "integrity": "sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==",
- "dev": true
- },
- "@webassemblyjs/helper-buffer": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz",
- "integrity": "sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==",
- "dev": true
+ "@types/babel__template": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz",
+ "integrity": "sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==",
+ "dev": true,
+ "requires": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
},
- "@webassemblyjs/helper-code-frame": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz",
- "integrity": "sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==",
+ "@types/babel__traverse": {
+ "version": "7.0.13",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.13.tgz",
+ "integrity": "sha512-i+zS7t6/s9cdQvbqKDARrcbrPvtJGlbYsMkazo03nTAK3RX9FNrLllXys22uiTGJapPOTZTQ35nHh4ISph4SLQ==",
"dev": true,
"requires": {
- "@webassemblyjs/wast-printer": "1.7.11"
+ "@babel/types": "^7.3.0"
}
},
- "@webassemblyjs/helper-fsm": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz",
- "integrity": "sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==",
+ "@types/color-name": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
+ "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
"dev": true
},
- "@webassemblyjs/helper-module-context": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz",
- "integrity": "sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==",
- "dev": true
+ "@types/cookie": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.3.3.tgz",
+ "integrity": "sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow=="
},
- "@webassemblyjs/helper-wasm-bytecode": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz",
- "integrity": "sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==",
+ "@types/eslint-visitor-keys": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
+ "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==",
"dev": true
},
- "@webassemblyjs/helper-wasm-section": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz",
- "integrity": "sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==",
+ "@types/glob": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz",
+ "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==",
"dev": true,
"requires": {
- "@webassemblyjs/ast": "1.7.11",
- "@webassemblyjs/helper-buffer": "1.7.11",
- "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
- "@webassemblyjs/wasm-gen": "1.7.11"
+ "@types/minimatch": "*",
+ "@types/node": "*"
}
},
- "@webassemblyjs/ieee754": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz",
- "integrity": "sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==",
+ "@types/istanbul-lib-coverage": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz",
+ "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==",
+ "dev": true
+ },
+ "@types/istanbul-lib-report": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
+ "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
"dev": true,
"requires": {
- "@xtuc/ieee754": "^1.2.0"
+ "@types/istanbul-lib-coverage": "*"
}
},
- "@webassemblyjs/leb128": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.11.tgz",
- "integrity": "sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==",
+ "@types/istanbul-reports": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz",
+ "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==",
"dev": true,
"requires": {
- "@xtuc/long": "4.2.1"
+ "@types/istanbul-lib-coverage": "*",
+ "@types/istanbul-lib-report": "*"
}
},
- "@webassemblyjs/utf8": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.11.tgz",
- "integrity": "sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==",
+ "@types/json-schema": {
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz",
+ "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==",
"dev": true
},
- "@webassemblyjs/wasm-edit": {
- "version": "1.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz",
- "integrity": "sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==",
- "dev": true,
+ "@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
+ },
+ "@types/minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY=",
+ "dev": true
+ },
+ "@types/node": {
+ "version": "14.6.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.6.0.tgz",
+ "integrity": "sha512-mikldZQitV94akrc4sCcSjtJfsTKt4p+e/s0AGscVA6XArQ9kFclP+ZiYUMnq987rc6QlYxXv/EivqlfSLxpKA==",
+ "dev": true
+ },
+ "@types/normalize-package-data": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
+ "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==",
+ "dev": true
+ },
+ "@types/object-assign": {
+ "version": "4.0.30",
+ "resolved": "https://registry.npmjs.org/@types/object-assign/-/object-assign-4.0.30.tgz",
+ "integrity": "sha1-iUk3HVqZ9Dge4PHfCpt6GH4H5lI="
+ },
+ "@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==",
+ "dev": true
+ },
+ "@types/q": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz",
+ "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==",
+ "dev": true
+ },
+ "@types/stack-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz",
+ "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==",
+ "dev": true
+ },
+ "@types/yargs": {
+ "version": "13.0.10",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.10.tgz",
+ "integrity": "sha512-MU10TSgzNABgdzKvQVW1nuuT+sgBMWeXNc3XOs5YXV5SDAK+PPja2eUuBNB9iqElu03xyEDqlnGw0jgl4nbqGQ==",
+ "dev": true,
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "@types/yargs-parser": {
+ "version": "15.0.0",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz",
+ "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==",
+ "dev": true
+ },
+ "@typescript-eslint/eslint-plugin": {
+ "version": "2.34.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz",
+ "integrity": "sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/experimental-utils": "2.34.0",
+ "functional-red-black-tree": "^1.0.1",
+ "regexpp": "^3.0.0",
+ "tsutils": "^3.17.1"
+ }
+ },
+ "@typescript-eslint/experimental-utils": {
+ "version": "2.34.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz",
+ "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.3",
+ "@typescript-eslint/typescript-estree": "2.34.0",
+ "eslint-scope": "^5.0.0",
+ "eslint-utils": "^2.0.0"
+ }
+ },
+ "@typescript-eslint/parser": {
+ "version": "2.34.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.34.0.tgz",
+ "integrity": "sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA==",
+ "dev": true,
+ "requires": {
+ "@types/eslint-visitor-keys": "^1.0.0",
+ "@typescript-eslint/experimental-utils": "2.34.0",
+ "@typescript-eslint/typescript-estree": "2.34.0",
+ "eslint-visitor-keys": "^1.1.0"
+ }
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "2.34.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz",
+ "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.1",
+ "eslint-visitor-keys": "^1.1.0",
+ "glob": "^7.1.6",
+ "is-glob": "^4.0.1",
+ "lodash": "^4.17.15",
+ "semver": "^7.3.2",
+ "tsutils": "^3.17.1"
+ },
+ "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"
+ }
+ },
+ "semver": {
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+ "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
+ "dev": true
+ }
+ }
+ },
+ "@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"
+ }
+ },
+ "@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
+ },
+ "@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
+ },
+ "@webassemblyjs/helper-buffer": {
+ "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
+ },
+ "@webassemblyjs/helper-code-frame": {
+ "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": {
+ "@webassemblyjs/wast-printer": "1.8.5"
+ }
+ },
+ "@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
+ },
+ "@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": {
+ "@webassemblyjs/ast": "1.8.5",
+ "mamacro": "^0.0.3"
+ }
+ },
+ "@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
+ },
+ "@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": {
- "@webassemblyjs/ast": "1.7.11",
- "@webassemblyjs/helper-buffer": "1.7.11",
- "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
- "@webassemblyjs/helper-wasm-section": "1.7.11",
- "@webassemblyjs/wasm-gen": "1.7.11",
- "@webassemblyjs/wasm-opt": "1.7.11",
- "@webassemblyjs/wasm-parser": "1.7.11",
- "@webassemblyjs/wast-printer": "1.7.11"
+ "@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",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz",
+ "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==",
+ "dev": true,
+ "requires": {
+ "@xtuc/ieee754": "^1.2.0"
+ }
+ },
+ "@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": {
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@webassemblyjs/utf8": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz",
+ "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==",
+ "dev": true
+ },
+ "@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": {
+ "@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.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz",
- "integrity": "sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==",
+ "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": {
- "@webassemblyjs/ast": "1.7.11",
- "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
- "@webassemblyjs/ieee754": "1.7.11",
- "@webassemblyjs/leb128": "1.7.11",
- "@webassemblyjs/utf8": "1.7.11"
+ "@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.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz",
- "integrity": "sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==",
+ "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": {
- "@webassemblyjs/ast": "1.7.11",
- "@webassemblyjs/helper-buffer": "1.7.11",
- "@webassemblyjs/wasm-gen": "1.7.11",
- "@webassemblyjs/wasm-parser": "1.7.11"
+ "@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.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz",
- "integrity": "sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==",
+ "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": {
- "@webassemblyjs/ast": "1.7.11",
- "@webassemblyjs/helper-api-error": "1.7.11",
- "@webassemblyjs/helper-wasm-bytecode": "1.7.11",
- "@webassemblyjs/ieee754": "1.7.11",
- "@webassemblyjs/leb128": "1.7.11",
- "@webassemblyjs/utf8": "1.7.11"
+ "@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.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz",
- "integrity": "sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==",
+ "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": {
- "@webassemblyjs/ast": "1.7.11",
- "@webassemblyjs/floating-point-hex-parser": "1.7.11",
- "@webassemblyjs/helper-api-error": "1.7.11",
- "@webassemblyjs/helper-code-frame": "1.7.11",
- "@webassemblyjs/helper-fsm": "1.7.11",
- "@xtuc/long": "4.2.1"
+ "@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.7.11",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz",
- "integrity": "sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==",
+ "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": {
- "@webassemblyjs/ast": "1.7.11",
- "@webassemblyjs/wast-parser": "1.7.11",
- "@xtuc/long": "4.2.1"
+ "@webassemblyjs/ast": "1.8.5",
+ "@webassemblyjs/wast-parser": "1.8.5",
+ "@xtuc/long": "4.2.2"
}
},
"@xtuc/ieee754": {
@@ -1722,64 +2257,31 @@
"dev": true
},
"@xtuc/long": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz",
- "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==",
+ "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
},
- "abab": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
- "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4="
- },
"abbrev": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
- "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+ "dev": true
},
"accepts": {
"version": "1.3.7",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
"integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+ "dev": true,
"requires": {
"mime-types": "~2.1.24",
"negotiator": "0.6.2"
}
},
- "acorn": {
- "version": "4.0.13",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
- "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c="
- },
- "acorn-dynamic-import": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz",
- "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==",
- "dev": true,
- "requires": {
- "acorn": "^5.0.0"
- },
- "dependencies": {
- "acorn": {
- "version": "5.7.4",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz",
- "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==",
- "dev": true
- }
- }
- },
- "acorn-globals": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz",
- "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=",
- "requires": {
- "acorn": "^4.0.4"
- }
- },
"acorn-jsx": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz",
- "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz",
+ "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==",
"dev": true
},
"acorn-walk": {
@@ -1802,15 +2304,75 @@
"integrity": "sha1-0ME1RB+oAUqBN5BFMQlvZ/KPJjo="
},
"address": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/address/-/address-1.0.3.tgz",
- "integrity": "sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz",
+ "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==",
"dev": true
},
- "after": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
- "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8="
+ "adjust-sourcemap-loader": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-2.0.0.tgz",
+ "integrity": "sha512-4hFsTsn58+YjrU9qKzML2JSSDqKvN8mUGQ0nNIrfPi8hmIONT4L3uUaT6MKdMsZ9AjsU6D2xDkZxCkbQPxChrA==",
+ "dev": true,
+ "requires": {
+ "assert": "1.4.1",
+ "camelcase": "5.0.0",
+ "loader-utils": "1.2.3",
+ "object-path": "0.11.4",
+ "regex-parser": "2.2.10"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz",
+ "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==",
+ "dev": true
+ },
+ "emojis-list": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+ "dev": true
+ },
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
+ "loader-utils": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
+ "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
+ "dev": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^2.0.0",
+ "json5": "^1.0.1"
+ }
+ }
+ }
+ },
+ "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": {
+ "clean-stack": "^2.0.0",
+ "indent-string": "^4.0.0"
+ },
+ "dependencies": {
+ "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
+ }
+ }
},
"airbnb-prop-types": {
"version": "2.16.0",
@@ -1829,9 +2391,10 @@
}
},
"ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "version": "6.12.3",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz",
+ "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==",
+ "dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -1860,7 +2423,8 @@
"amdefine": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
- "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
+ "dev": true
},
"ansi-colors": {
"version": "3.2.4",
@@ -1871,7 +2435,8 @@
"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=="
+ "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
+ "dev": true
},
"ansi-html": {
"version": "0.0.7",
@@ -1882,7 +2447,8 @@
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
},
"ansi-styles": {
"version": "3.2.1",
@@ -1893,62 +2459,134 @@
}
},
"antd": {
- "version": "3.21.4",
- "resolved": "https://registry.npmjs.org/antd/-/antd-3.21.4.tgz",
- "integrity": "sha512-ZtX2UAEewrWUepl4sT6TeJw91A98bgl4VGTjRIKfwzNW1GKGKKf4iI9bA6oCyMt/C4QEFsSsmkBwfBqT+N+Xzg==",
- "requires": {
- "@ant-design/create-react-context": "^0.2.4",
- "@ant-design/icons": "~2.1.1",
- "@ant-design/icons-react": "~2.0.1",
- "@types/react-slick": "^0.23.4",
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/antd/-/antd-4.6.2.tgz",
+ "integrity": "sha512-6hmSRiSV3Lzz/1fKGOLHld7gf0d+MW7fg7MNGCAAceGmxtG1WEaaOtV8dZeL2WXq0SGH4wY4GytN6chRrtatfw==",
+ "requires": {
+ "@ant-design/colors": "^4.0.5",
+ "@ant-design/css-animation": "^1.7.2",
+ "@ant-design/icons": "^4.2.1",
+ "@ant-design/react-slick": "~0.27.0",
+ "@babel/runtime": "^7.10.4",
"array-tree-filter": "^2.1.0",
- "babel-runtime": "6.x",
- "classnames": "~2.2.6",
+ "classnames": "^2.2.6",
"copy-to-clipboard": "^3.2.0",
- "css-animation": "^1.5.0",
- "dom-closest": "^0.2.0",
- "enquire.js": "^2.1.6",
- "lodash": "^4.17.13",
- "moment": "^2.24.0",
- "omit.js": "^1.0.2",
- "prop-types": "^15.7.2",
+ "lodash": "^4.17.20",
+ "moment": "^2.25.3",
+ "omit.js": "^2.0.2",
"raf": "^3.4.1",
- "rc-animate": "^2.8.3",
- "rc-calendar": "~9.15.5",
- "rc-cascader": "~0.17.4",
- "rc-checkbox": "~2.1.6",
- "rc-collapse": "~1.11.3",
- "rc-dialog": "~7.5.2",
- "rc-drawer": "~2.0.1",
- "rc-dropdown": "~2.4.1",
- "rc-editor-mention": "^1.1.13",
- "rc-form": "^2.4.5",
- "rc-input-number": "~4.4.5",
- "rc-mentions": "~0.3.1",
- "rc-menu": "~7.4.23",
- "rc-notification": "~3.3.1",
- "rc-pagination": "~1.20.5",
- "rc-progress": "~2.5.0",
- "rc-rate": "~2.5.0",
- "rc-select": "~9.2.0",
- "rc-slider": "~8.6.11",
- "rc-steps": "~3.4.1",
- "rc-switch": "~1.9.0",
- "rc-table": "~6.7.0",
- "rc-tabs": "~9.6.4",
- "rc-time-picker": "~3.7.1",
- "rc-tooltip": "~3.7.3",
- "rc-tree": "~2.1.0",
- "rc-tree-select": "~2.9.1",
- "rc-trigger": "^2.6.2",
- "rc-upload": "~2.7.0",
- "rc-util": "^4.6.0",
- "react-lazy-load": "^3.0.13",
- "react-lifecycles-compat": "^3.0.4",
- "react-slick": "~0.24.0",
- "resize-observer-polyfill": "^1.5.1",
- "shallowequal": "^1.1.0",
- "warning": "~4.0.3"
+ "rc-animate": "~3.1.0",
+ "rc-cascader": "~1.3.0",
+ "rc-checkbox": "~2.3.0",
+ "rc-collapse": "~2.0.0",
+ "rc-dialog": "~8.1.0",
+ "rc-drawer": "~4.1.0",
+ "rc-dropdown": "~3.1.2",
+ "rc-field-form": "~1.10.0",
+ "rc-image": "~3.0.2",
+ "rc-input-number": "~6.0.0",
+ "rc-mentions": "~1.4.0",
+ "rc-menu": "~8.5.2",
+ "rc-motion": "^1.0.0",
+ "rc-notification": "~4.4.0",
+ "rc-pagination": "~3.0.3",
+ "rc-picker": "~2.0.6",
+ "rc-progress": "~3.0.0",
+ "rc-rate": "~2.8.2",
+ "rc-resize-observer": "^0.2.3",
+ "rc-select": "~11.1.0",
+ "rc-slider": "~9.3.0",
+ "rc-steps": "~4.1.0",
+ "rc-switch": "~3.2.0",
+ "rc-table": "~7.9.2",
+ "rc-tabs": "~11.6.0",
+ "rc-textarea": "~0.3.0",
+ "rc-tooltip": "~4.2.0",
+ "rc-tree": "~3.9.0",
+ "rc-tree-select": "~4.1.1",
+ "rc-trigger": "~4.4.0",
+ "rc-upload": "~3.2.1",
+ "rc-util": "^5.1.0",
+ "scroll-into-view-if-needed": "^2.2.25",
+ "warning": "^4.0.3"
+ },
+ "dependencies": {
+ "@ant-design/colors": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-4.0.5.tgz",
+ "integrity": "sha512-3mnuX2prnWOWvpFTS2WH2LoouWlOgtnIpc6IarWN6GOzzLF8dW/U8UctuvIPhoboETehZfJ61XP+CGakBEPJ3Q==",
+ "requires": {
+ "tinycolor2": "^1.4.1"
+ }
+ },
+ "lodash": {
+ "version": "4.17.20",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
+ "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="
+ },
+ "moment": {
+ "version": "2.27.0",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz",
+ "integrity": "sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ=="
+ },
+ "omit.js": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/omit.js/-/omit.js-2.0.2.tgz",
+ "integrity": "sha512-hJmu9D+bNB40YpL9jYebQl4lsTW6yEHRTroJzNLqQJYHm7c+NQnJGfZmIWh8S3q3KoaxV1aLhV6B3+0N0/kyJg=="
+ },
+ "rc-align": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/rc-align/-/rc-align-4.0.3.tgz",
+ "integrity": "sha512-TpI0t1tvAo/wYdoZbZlkCK+MkQBqNuPyRZesfsji4tMlqoqQ0q0MhnC9JD5KGPitMvmSB+KWgFpaN2uTz4hw6Q==",
+ "requires": {
+ "@babel/runtime": "^7.10.1",
+ "classnames": "2.x",
+ "dom-align": "^1.7.0",
+ "rc-util": "^5.0.1",
+ "resize-observer-polyfill": "^1.5.1"
+ }
+ },
+ "rc-animate": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/rc-animate/-/rc-animate-3.1.0.tgz",
+ "integrity": "sha512-8FsM+3B1H+0AyTyGggY6JyVldHTs1CyYT8CfTmG/nGHHXlecvSLeICJhcKgRLjUiQlctNnRtB1rwz79cvBVmrw==",
+ "requires": {
+ "@ant-design/css-animation": "^1.7.2",
+ "classnames": "^2.2.6",
+ "raf": "^3.4.0",
+ "rc-util": "^5.0.1"
+ }
+ },
+ "rc-tooltip": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-4.2.2.tgz",
+ "integrity": "sha512-mAs+gAngUyHVA6HdFXsELoJOHgfjAACLLc8SGtnVhovJdyqs5ZGSL9p5i+ApNaVpwjswqShw7L4DRtMl7cXCQg==",
+ "requires": {
+ "rc-trigger": "^4.2.1"
+ }
+ },
+ "rc-trigger": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-4.4.2.tgz",
+ "integrity": "sha512-uw2/s7j1b/RXyixa4omPuxZWv/3ln+H+p0v3trIUBxseolbdj8TTFpXYjXMZdGtMpAEAIbN1yo/K+r7wRB+xtQ==",
+ "requires": {
+ "@babel/runtime": "^7.10.1",
+ "classnames": "^2.2.6",
+ "raf": "^3.4.1",
+ "rc-align": "^4.0.0",
+ "rc-motion": "^1.0.0",
+ "rc-util": "^5.0.1"
+ }
+ },
+ "rc-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz",
+ "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==",
+ "requires": {
+ "react-is": "^16.12.0",
+ "shallowequal": "^1.1.0"
+ }
+ }
}
},
"antd-mobile": {
@@ -2027,15 +2665,11 @@
}
}
},
- "any-observable": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz",
- "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog=="
- },
"anymatch": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
"integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+ "dev": true,
"requires": {
"micromatch": "^3.1.4",
"normalize-path": "^2.1.1"
@@ -2045,30 +2679,24 @@
"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"
}
}
}
},
- "append-transform": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz",
- "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=",
- "dev": true,
- "requires": {
- "default-require-extensions": "^1.0.0"
- }
- },
"aproba": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
- "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+ "dev": true
},
"are-we-there-yet": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
"integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
+ "dev": true,
"requires": {
"delegates": "^1.0.0",
"readable-stream": "^2.0.6"
@@ -2078,6 +2706,7 @@
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
"integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dev": true,
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -2091,12 +2720,14 @@
"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=="
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
},
"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==",
+ "dev": true,
"requires": {
"safe-buffer": "~5.1.0"
}
@@ -2107,6 +2738,7 @@
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
"requires": {
"sprintf-js": "~1.0.2"
}
@@ -2121,67 +2753,59 @@
"commander": "^2.11.0"
}
},
+ "arity-n": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz",
+ "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=",
+ "dev": true
+ },
"arr-diff": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true
},
"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=="
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+ "dev": true
},
"arr-union": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
- "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
+ "dev": true
},
"array-equal": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz",
- "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM="
- },
- "array-filter": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz",
- "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=",
+ "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=",
"dev": true
},
"array-find-index": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
- "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E="
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+ "dev": true
},
"array-flatten": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
+ "dev": true
},
"array-includes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.2.tgz",
- "integrity": "sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz",
+ "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==",
"dev": true,
"requires": {
- "call-bind": "^1.0.0",
"define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.1",
- "get-intrinsic": "^1.0.1",
+ "es-abstract": "^1.17.0",
"is-string": "^1.0.5"
}
},
- "array-map": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz",
- "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=",
- "dev": true
- },
- "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
- },
"array-tree-filter": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz",
@@ -2191,6 +2815,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
"integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+ "dev": true,
"requires": {
"array-uniq": "^1.0.1"
}
@@ -2198,12 +2823,14 @@
"array-uniq": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
- "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY="
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+ "dev": true
},
"array-unique": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
- "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true
},
"array.prototype.find": {
"version": "2.1.1",
@@ -2212,47 +2839,22 @@
"requires": {
"define-properties": "^1.1.3",
"es-abstract": "^1.17.4"
- },
- "dependencies": {
- "es-abstract": {
- "version": "1.17.7",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz",
- "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==",
- "requires": {
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.2.2",
- "is-regex": "^1.1.1",
- "object-inspect": "^1.8.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.1",
- "string.prototype.trimend": "^1.0.1",
- "string.prototype.trimstart": "^1.0.1"
- }
- }
}
},
"array.prototype.flat": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz",
- "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==",
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz",
+ "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==",
"requires": {
- "call-bind": "^1.0.0",
"define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.1"
+ "es-abstract": "^1.17.0-next.1"
}
},
- "arraybuffer.slice": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
- "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog=="
- },
"arrify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
- "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0="
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+ "dev": true
},
"asap": {
"version": "2.0.6",
@@ -2263,6 +2865,7 @@
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
"integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+ "dev": true,
"requires": {
"safer-buffer": "~2.1.0"
}
@@ -2288,41 +2891,25 @@
}
},
"assert": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
- "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
+ "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
"dev": true,
"requires": {
- "object-assign": "^4.1.1",
"util": "0.10.3"
- },
- "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"
- }
- }
}
},
"assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "dev": true
},
"assign-symbols": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
- "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
+ "dev": true
},
"ast-types-flow": {
"version": "0.0.7",
@@ -2348,17 +2935,20 @@
"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=="
+ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
+ "dev": true
},
"async-foreach": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
- "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI="
+ "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
+ "dev": true
},
"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=="
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
+ "dev": true
},
"async-validator": {
"version": "1.11.5",
@@ -2368,12 +2958,14 @@
"asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+ "dev": true
},
"atob": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
- "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
+ "dev": true
},
"autoprefixer": {
"version": "9.8.6",
@@ -2390,62 +2982,37 @@
"postcss-value-parser": "^4.1.0"
},
"dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
"postcss-value-parser": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz",
"integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==",
"dev": true
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
}
}
},
"awesome-phonenumber": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/awesome-phonenumber/-/awesome-phonenumber-2.7.0.tgz",
- "integrity": "sha512-oV8NvckkLmVK9V0QhjACiP8E3jRC4oHn/xjDckB+Dv9NLhqjoa3JDNOIFnhACpssLFK3ITLhVyxUpLNh9AT//w=="
+ "version": "2.43.0",
+ "resolved": "https://registry.npmjs.org/awesome-phonenumber/-/awesome-phonenumber-2.43.0.tgz",
+ "integrity": "sha512-UjrT0oi4k5EDUoasCT0C6HszA2qqKaG5ZCM136Akgq+oDlevR2wIcAFQFpduGjV7/GHBaWpEwiQDh3mCMlpe+g=="
},
"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="
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+ "dev": true
},
"aws4": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
- "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz",
+ "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==",
+ "dev": true
},
"axios": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz",
- "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=",
+ "version": "0.21.1",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
+ "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
"requires": {
- "follow-redirects": "^1.3.0",
- "is-buffer": "^1.1.5"
+ "follow-redirects": "^1.10.0"
}
},
"axobject-query": {
@@ -2498,24 +3065,18 @@
}
}
},
- "babel-core": {
- "version": "7.0.0-bridge.0",
- "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz",
- "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==",
- "dev": true
- },
"babel-eslint": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-9.0.0.tgz",
- "integrity": "sha512-itv1MwE3TMbY0QtNfeL7wzak1mV47Uy+n6HtSOO4Xd7rvmO+tsGQSgyOEEgo6Y2vHZKZphaoelNeSVj4vkLA1g==",
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz",
+ "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
- "@babel/parser": "^7.0.0",
- "@babel/traverse": "^7.0.0",
- "@babel/types": "^7.0.0",
- "eslint-scope": "3.7.1",
- "eslint-visitor-keys": "^1.0.0"
+ "@babel/parser": "^7.7.0",
+ "@babel/traverse": "^7.7.0",
+ "@babel/types": "^7.7.0",
+ "eslint-visitor-keys": "^1.0.0",
+ "resolve": "^1.12.0"
}
},
"babel-extract-comments": {
@@ -2527,69 +3088,40 @@
"babylon": "^6.18.0"
}
},
- "babel-generator": {
- "version": "6.26.1",
- "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz",
- "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
- "dev": true,
- "requires": {
- "babel-messages": "^6.23.0",
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "detect-indent": "^4.0.0",
- "jsesc": "^1.3.0",
- "lodash": "^4.17.4",
- "source-map": "^0.5.7",
- "trim-right": "^1.0.1"
- },
- "dependencies": {
- "jsesc": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
- "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
- "dev": true
- }
- }
- },
- "babel-helpers": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
- "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.22.0",
- "babel-template": "^6.24.1"
- }
- },
"babel-jest": {
- "version": "23.6.0",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-23.6.0.tgz",
- "integrity": "sha512-lqKGG6LYXYu+DQh/slrQ8nxXQkEkhugdXsU6St7GmhVS7Ilc/22ArwqXNJrf0QaOBjZB0360qZMwXqDYQHXaew==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz",
+ "integrity": "sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==",
"dev": true,
"requires": {
- "babel-plugin-istanbul": "^4.1.6",
- "babel-preset-jest": "^23.2.0"
+ "@jest/transform": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "@types/babel__core": "^7.1.0",
+ "babel-plugin-istanbul": "^5.1.0",
+ "babel-preset-jest": "^24.9.0",
+ "chalk": "^2.4.2",
+ "slash": "^2.0.0"
}
},
"babel-loader": {
- "version": "8.0.5",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.5.tgz",
- "integrity": "sha512-NTnHnVRd2JnRqPC0vW+iOQWU5pchDbYXsG2E6DMXEpMfUcQKclF9gmf3G3ZMhzG7IG9ji4coL0cm+FxeWxDpnw==",
- "dev": true,
- "requires": {
- "find-cache-dir": "^2.0.0",
- "loader-utils": "^1.0.2",
- "mkdirp": "^0.5.1",
- "util.promisify": "^1.0.0"
- }
- },
- "babel-messages": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
- "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz",
+ "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==",
"dev": true,
"requires": {
- "babel-runtime": "^6.22.0"
+ "find-cache-dir": "^2.1.0",
+ "loader-utils": "^1.4.0",
+ "mkdirp": "^0.5.3",
+ "pify": "^4.0.1",
+ "schema-utils": "^2.6.5"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true
+ }
}
},
"babel-plugin-dynamic-import-node": {
@@ -2602,82 +3134,90 @@
}
},
"babel-plugin-istanbul": {
- "version": "4.1.6",
- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz",
- "integrity": "sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz",
+ "integrity": "sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "find-up": "^3.0.0",
+ "istanbul-lib-instrument": "^3.3.0",
+ "test-exclude": "^5.2.3"
+ }
+ },
+ "babel-plugin-jest-hoist": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz",
+ "integrity": "sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==",
+ "dev": true,
+ "requires": {
+ "@types/babel__traverse": "^7.0.6"
+ }
+ },
+ "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==",
"dev": true,
"requires": {
- "babel-plugin-syntax-object-rest-spread": "^6.13.0",
- "find-up": "^2.1.0",
- "istanbul-lib-instrument": "^1.10.1",
- "test-exclude": "^4.2.1"
+ "@babel/runtime": "^7.7.2",
+ "cosmiconfig": "^6.0.0",
+ "resolve": "^1.12.0"
},
"dependencies": {
- "find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "cosmiconfig": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
+ "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
"dev": true,
"requires": {
- "locate-path": "^2.0.0"
+ "@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"
}
},
- "locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "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==",
"dev": true,
"requires": {
- "p-locate": "^2.0.0",
- "path-exists": "^3.0.0"
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
}
},
- "p-limit": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "parse-json": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.1.tgz",
+ "integrity": "sha512-ztoZ4/DYeXQq4E21v169sC8qWINGpcosGv9XhTDvg9/hWvx/zrFkc9BiWxR58OJLHGk28j5BL0SDLeV2WmFZlQ==",
"dev": true,
"requires": {
- "p-try": "^1.0.0"
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1",
+ "lines-and-columns": "^1.1.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"
- }
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true
},
- "p-try": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "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==",
"dev": true
}
}
},
- "babel-plugin-jest-hoist": {
- "version": "23.2.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.2.0.tgz",
- "integrity": "sha1-5h+uBaHKiAGq3uV6bWa4zvr0QWc=",
- "dev": true
- },
- "babel-plugin-macros": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.5.0.tgz",
- "integrity": "sha512-BWw0lD0kVZAXRD3Od1kMrdmfudqzDzYv2qrN3l2ISR1HVp1EgLKfbOrYV9xmY5k3qx3RIu5uPAUZZZHpo0o5Iw==",
- "dev": true,
- "requires": {
- "cosmiconfig": "^5.0.5",
- "resolve": "^1.8.1"
- }
- },
"babel-plugin-named-asset-import": {
- "version": "0.3.7",
- "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.7.tgz",
- "integrity": "sha512-squySRkf+6JGnvjoUtDEjSREJEBirnXi9NqP6rjSYsylxQxqBTz+pkmf395i9E2zsvmYUaI40BHo6SqZUdydlw==",
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.6.tgz",
+ "integrity": "sha512-1aGDUfL1qOOIoqk9QKGIo2lANk+C7ko/fqH0uIyC71x3PEGz0uVP8ISgfEsFuG+FKmjHTvFK/nNM8dowpmUxLA==",
"dev": true
},
"babel-plugin-syntax-object-rest-spread": {
@@ -2720,272 +3260,182 @@
}
},
"babel-preset-jest": {
- "version": "23.2.0",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz",
- "integrity": "sha1-jsegOhOPABoaj7HoETZSvxpV2kY=",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz",
+ "integrity": "sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==",
"dev": true,
"requires": {
- "babel-plugin-jest-hoist": "^23.2.0",
- "babel-plugin-syntax-object-rest-spread": "^6.13.0"
+ "@babel/plugin-syntax-object-rest-spread": "^7.0.0",
+ "babel-plugin-jest-hoist": "^24.9.0"
}
},
"babel-preset-react-app": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-7.0.2.tgz",
- "integrity": "sha512-mwCk/u2wuiO8qQqblN5PlDa44taY0acq7hw6W+a70W522P7a9mIcdggL1fe5/LgAT7tqCq46q9wwhqaMoYKslQ==",
- "dev": true,
- "requires": {
- "@babel/core": "7.2.2",
- "@babel/plugin-proposal-class-properties": "7.3.0",
- "@babel/plugin-proposal-decorators": "7.3.0",
- "@babel/plugin-proposal-object-rest-spread": "7.3.2",
- "@babel/plugin-syntax-dynamic-import": "7.2.0",
- "@babel/plugin-transform-classes": "7.2.2",
- "@babel/plugin-transform-destructuring": "7.3.2",
- "@babel/plugin-transform-flow-strip-types": "7.2.3",
- "@babel/plugin-transform-react-constant-elements": "7.2.0",
- "@babel/plugin-transform-react-display-name": "7.2.0",
- "@babel/plugin-transform-runtime": "7.2.0",
- "@babel/preset-env": "7.3.1",
- "@babel/preset-react": "7.0.0",
- "@babel/preset-typescript": "7.1.0",
- "@babel/runtime": "7.3.1",
- "babel-loader": "8.0.5",
- "babel-plugin-dynamic-import-node": "2.2.0",
- "babel-plugin-macros": "2.5.0",
+ "version": "9.1.2",
+ "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-9.1.2.tgz",
+ "integrity": "sha512-k58RtQOKH21NyKtzptoAvtAODuAJJs3ZhqBMl456/GnXEQ/0La92pNmwgWoMn5pBTrsvk3YYXdY7zpY4e3UIxA==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "7.9.0",
+ "@babel/plugin-proposal-class-properties": "7.8.3",
+ "@babel/plugin-proposal-decorators": "7.8.3",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "7.8.3",
+ "@babel/plugin-proposal-numeric-separator": "7.8.3",
+ "@babel/plugin-proposal-optional-chaining": "7.9.0",
+ "@babel/plugin-transform-flow-strip-types": "7.9.0",
+ "@babel/plugin-transform-react-display-name": "7.8.3",
+ "@babel/plugin-transform-runtime": "7.9.0",
+ "@babel/preset-env": "7.9.0",
+ "@babel/preset-react": "7.9.1",
+ "@babel/preset-typescript": "7.9.0",
+ "@babel/runtime": "7.9.0",
+ "babel-plugin-macros": "2.8.0",
"babel-plugin-transform-react-remove-prop-types": "0.4.24"
},
"dependencies": {
"@babel/plugin-proposal-class-properties": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.3.0.tgz",
- "integrity": "sha512-wNHxLkEKTQ2ay0tnsam2z7fGZUi+05ziDJflEt3AZTP3oXLKHJp9HqhfroB/vdMvt3sda9fAbq7FsG8QPDrZBg==",
- "dev": true,
- "requires": {
- "@babel/helper-create-class-features-plugin": "^7.3.0",
- "@babel/helper-plugin-utils": "^7.0.0"
- }
- },
- "@babel/plugin-proposal-object-rest-spread": {
- "version": "7.3.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.2.tgz",
- "integrity": "sha512-DjeMS+J2+lpANkYLLO+m6GjoTMygYglKmRe6cDTbFv3L9i6mmiE8fe6B8MtCSLZpVXscD5kn7s6SgtHrDoBWoA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "@babel/plugin-syntax-object-rest-spread": "^7.2.0"
- }
- },
- "@babel/plugin-syntax-dynamic-import": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz",
- "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==",
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz",
+ "integrity": "sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.0.0"
+ "@babel/helper-create-class-features-plugin": "^7.8.3",
+ "@babel/helper-plugin-utils": "^7.8.3"
}
},
- "@babel/plugin-transform-classes": {
- "version": "7.2.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.2.tgz",
- "integrity": "sha512-gEZvgTy1VtcDOaQty1l10T3jQmJKlNVxLDCs+3rCVPr6nMkODLELxViq5X9l+rfxbie3XrfrMCYYY6eX3aOcOQ==",
+ "@babel/plugin-proposal-nullish-coalescing-operator": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz",
+ "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==",
"dev": true,
"requires": {
- "@babel/helper-annotate-as-pure": "^7.0.0",
- "@babel/helper-define-map": "^7.1.0",
- "@babel/helper-function-name": "^7.1.0",
- "@babel/helper-optimise-call-expression": "^7.0.0",
- "@babel/helper-plugin-utils": "^7.0.0",
- "@babel/helper-replace-supers": "^7.1.0",
- "@babel/helper-split-export-declaration": "^7.0.0",
- "globals": "^11.1.0"
+ "@babel/helper-plugin-utils": "^7.8.3",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0"
}
},
- "@babel/plugin-transform-destructuring": {
- "version": "7.3.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.3.2.tgz",
- "integrity": "sha512-Lrj/u53Ufqxl/sGxyjsJ2XNtNuEjDyjpqdhMNh5aZ+XFOdThL46KBj27Uem4ggoezSYBxKWAil6Hu8HtwqesYw==",
+ "@babel/plugin-proposal-numeric-separator": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz",
+ "integrity": "sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.0.0"
+ "@babel/helper-plugin-utils": "^7.8.3",
+ "@babel/plugin-syntax-numeric-separator": "^7.8.3"
}
},
- "@babel/plugin-transform-react-constant-elements": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.2.0.tgz",
- "integrity": "sha512-YYQFg6giRFMsZPKUM9v+VcHOdfSQdz9jHCx3akAi3UYgyjndmdYGSXylQ/V+HswQt4fL8IklchD9HTsaOCrWQQ==",
+ "@babel/plugin-proposal-optional-chaining": {
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz",
+ "integrity": "sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w==",
"dev": true,
"requires": {
- "@babel/helper-annotate-as-pure": "^7.0.0",
- "@babel/helper-plugin-utils": "^7.0.0"
+ "@babel/helper-plugin-utils": "^7.8.3",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.0"
}
},
"@babel/plugin-transform-react-display-name": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz",
- "integrity": "sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A==",
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz",
+ "integrity": "sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.0.0"
+ "@babel/helper-plugin-utils": "^7.8.3"
}
},
"@babel/preset-env": {
- "version": "7.3.1",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.3.1.tgz",
- "integrity": "sha512-FHKrD6Dxf30e8xgHQO0zJZpUPfVZg+Xwgz5/RdSWCbza9QLNk4Qbp40ctRoqDxml3O8RMzB1DU55SXeDG6PqHQ==",
- "dev": true,
- "requires": {
- "@babel/helper-module-imports": "^7.0.0",
- "@babel/helper-plugin-utils": "^7.0.0",
- "@babel/plugin-proposal-async-generator-functions": "^7.2.0",
- "@babel/plugin-proposal-json-strings": "^7.2.0",
- "@babel/plugin-proposal-object-rest-spread": "^7.3.1",
- "@babel/plugin-proposal-optional-catch-binding": "^7.2.0",
- "@babel/plugin-proposal-unicode-property-regex": "^7.2.0",
- "@babel/plugin-syntax-async-generators": "^7.2.0",
- "@babel/plugin-syntax-json-strings": "^7.2.0",
- "@babel/plugin-syntax-object-rest-spread": "^7.2.0",
- "@babel/plugin-syntax-optional-catch-binding": "^7.2.0",
- "@babel/plugin-transform-arrow-functions": "^7.2.0",
- "@babel/plugin-transform-async-to-generator": "^7.2.0",
- "@babel/plugin-transform-block-scoped-functions": "^7.2.0",
- "@babel/plugin-transform-block-scoping": "^7.2.0",
- "@babel/plugin-transform-classes": "^7.2.0",
- "@babel/plugin-transform-computed-properties": "^7.2.0",
- "@babel/plugin-transform-destructuring": "^7.2.0",
- "@babel/plugin-transform-dotall-regex": "^7.2.0",
- "@babel/plugin-transform-duplicate-keys": "^7.2.0",
- "@babel/plugin-transform-exponentiation-operator": "^7.2.0",
- "@babel/plugin-transform-for-of": "^7.2.0",
- "@babel/plugin-transform-function-name": "^7.2.0",
- "@babel/plugin-transform-literals": "^7.2.0",
- "@babel/plugin-transform-modules-amd": "^7.2.0",
- "@babel/plugin-transform-modules-commonjs": "^7.2.0",
- "@babel/plugin-transform-modules-systemjs": "^7.2.0",
- "@babel/plugin-transform-modules-umd": "^7.2.0",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0",
- "@babel/plugin-transform-new-target": "^7.0.0",
- "@babel/plugin-transform-object-super": "^7.2.0",
- "@babel/plugin-transform-parameters": "^7.2.0",
- "@babel/plugin-transform-regenerator": "^7.0.0",
- "@babel/plugin-transform-shorthand-properties": "^7.2.0",
- "@babel/plugin-transform-spread": "^7.2.0",
- "@babel/plugin-transform-sticky-regex": "^7.2.0",
- "@babel/plugin-transform-template-literals": "^7.2.0",
- "@babel/plugin-transform-typeof-symbol": "^7.2.0",
- "@babel/plugin-transform-unicode-regex": "^7.2.0",
- "browserslist": "^4.3.4",
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.0.tgz",
+ "integrity": "sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ==",
+ "dev": true,
+ "requires": {
+ "@babel/compat-data": "^7.9.0",
+ "@babel/helper-compilation-targets": "^7.8.7",
+ "@babel/helper-module-imports": "^7.8.3",
+ "@babel/helper-plugin-utils": "^7.8.3",
+ "@babel/plugin-proposal-async-generator-functions": "^7.8.3",
+ "@babel/plugin-proposal-dynamic-import": "^7.8.3",
+ "@babel/plugin-proposal-json-strings": "^7.8.3",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3",
+ "@babel/plugin-proposal-numeric-separator": "^7.8.3",
+ "@babel/plugin-proposal-object-rest-spread": "^7.9.0",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.8.3",
+ "@babel/plugin-proposal-optional-chaining": "^7.9.0",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.8.3",
+ "@babel/plugin-syntax-async-generators": "^7.8.0",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.0",
+ "@babel/plugin-syntax-json-strings": "^7.8.0",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0",
+ "@babel/plugin-syntax-numeric-separator": "^7.8.0",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.0",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.0",
+ "@babel/plugin-syntax-top-level-await": "^7.8.3",
+ "@babel/plugin-transform-arrow-functions": "^7.8.3",
+ "@babel/plugin-transform-async-to-generator": "^7.8.3",
+ "@babel/plugin-transform-block-scoped-functions": "^7.8.3",
+ "@babel/plugin-transform-block-scoping": "^7.8.3",
+ "@babel/plugin-transform-classes": "^7.9.0",
+ "@babel/plugin-transform-computed-properties": "^7.8.3",
+ "@babel/plugin-transform-destructuring": "^7.8.3",
+ "@babel/plugin-transform-dotall-regex": "^7.8.3",
+ "@babel/plugin-transform-duplicate-keys": "^7.8.3",
+ "@babel/plugin-transform-exponentiation-operator": "^7.8.3",
+ "@babel/plugin-transform-for-of": "^7.9.0",
+ "@babel/plugin-transform-function-name": "^7.8.3",
+ "@babel/plugin-transform-literals": "^7.8.3",
+ "@babel/plugin-transform-member-expression-literals": "^7.8.3",
+ "@babel/plugin-transform-modules-amd": "^7.9.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.9.0",
+ "@babel/plugin-transform-modules-systemjs": "^7.9.0",
+ "@babel/plugin-transform-modules-umd": "^7.9.0",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3",
+ "@babel/plugin-transform-new-target": "^7.8.3",
+ "@babel/plugin-transform-object-super": "^7.8.3",
+ "@babel/plugin-transform-parameters": "^7.8.7",
+ "@babel/plugin-transform-property-literals": "^7.8.3",
+ "@babel/plugin-transform-regenerator": "^7.8.7",
+ "@babel/plugin-transform-reserved-words": "^7.8.3",
+ "@babel/plugin-transform-shorthand-properties": "^7.8.3",
+ "@babel/plugin-transform-spread": "^7.8.3",
+ "@babel/plugin-transform-sticky-regex": "^7.8.3",
+ "@babel/plugin-transform-template-literals": "^7.8.3",
+ "@babel/plugin-transform-typeof-symbol": "^7.8.4",
+ "@babel/plugin-transform-unicode-regex": "^7.8.3",
+ "@babel/preset-modules": "^0.1.3",
+ "@babel/types": "^7.9.0",
+ "browserslist": "^4.9.1",
+ "core-js-compat": "^3.6.2",
"invariant": "^2.2.2",
- "js-levenshtein": "^1.1.3",
- "semver": "^5.3.0"
+ "levenary": "^1.1.1",
+ "semver": "^5.5.0"
}
},
"@babel/preset-react": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.0.0.tgz",
- "integrity": "sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w==",
+ "version": "7.9.1",
+ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.9.1.tgz",
+ "integrity": "sha512-aJBYF23MPj0RNdp/4bHnAP0NVqqZRr9kl0NAOP4nJCex6OYVio59+dnQzsAWFuogdLyeaKA1hmfUIVZkY5J+TQ==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "@babel/plugin-transform-react-display-name": "^7.0.0",
- "@babel/plugin-transform-react-jsx": "^7.0.0",
- "@babel/plugin-transform-react-jsx-self": "^7.0.0",
- "@babel/plugin-transform-react-jsx-source": "^7.0.0"
+ "@babel/helper-plugin-utils": "^7.8.3",
+ "@babel/plugin-transform-react-display-name": "^7.8.3",
+ "@babel/plugin-transform-react-jsx": "^7.9.1",
+ "@babel/plugin-transform-react-jsx-development": "^7.9.0",
+ "@babel/plugin-transform-react-jsx-self": "^7.9.0",
+ "@babel/plugin-transform-react-jsx-source": "^7.9.0"
}
},
"@babel/runtime": {
- "version": "7.3.1",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.1.tgz",
- "integrity": "sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA==",
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.0.tgz",
+ "integrity": "sha512-cTIudHnzuWLS56ik4DnRnqqNf8MkdUzV4iFFI1h7Jo9xvrpQROYaAnaSd2mHLQAzzZAPfATynX5ord6YlNYNMA==",
"dev": true,
"requires": {
- "regenerator-runtime": "^0.12.0"
- }
- },
- "babel-plugin-dynamic-import-node": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.2.0.tgz",
- "integrity": "sha512-fP899ELUnTaBcIzmrW7nniyqqdYWrWuJUyPWHxFa/c7r7hS6KC8FscNfLlBNIoPSc55kYMGEEKjPjJGCLbE1qA==",
- "dev": true,
- "requires": {
- "object.assign": "^4.1.0"
+ "regenerator-runtime": "^0.13.4"
}
},
"regenerator-runtime": {
- "version": "0.12.1",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz",
- "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==",
- "dev": true
- }
- }
- },
- "babel-register": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
- "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
- "dev": true,
- "requires": {
- "babel-core": "^6.26.0",
- "babel-runtime": "^6.26.0",
- "core-js": "^2.5.0",
- "home-or-tmp": "^2.0.0",
- "lodash": "^4.17.4",
- "mkdirp": "^0.5.1",
- "source-map-support": "^0.4.15"
- },
- "dependencies": {
- "babel-core": {
- "version": "6.26.3",
- "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz",
- "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==",
- "dev": true,
- "requires": {
- "babel-code-frame": "^6.26.0",
- "babel-generator": "^6.26.0",
- "babel-helpers": "^6.24.1",
- "babel-messages": "^6.23.0",
- "babel-register": "^6.26.0",
- "babel-runtime": "^6.26.0",
- "babel-template": "^6.26.0",
- "babel-traverse": "^6.26.0",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0",
- "convert-source-map": "^1.5.1",
- "debug": "^2.6.9",
- "json5": "^0.5.1",
- "lodash": "^4.17.4",
- "minimatch": "^3.0.4",
- "path-is-absolute": "^1.0.1",
- "private": "^0.1.8",
- "slash": "^1.0.0",
- "source-map": "^0.5.7"
- }
- },
- "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"
- }
- },
- "json5": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
- "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
- "dev": true
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true
- },
- "slash": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
- "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+ "version": "0.13.7",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
+ "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==",
"dev": true
}
}
@@ -2999,99 +3449,22 @@
"regenerator-runtime": "^0.11.0"
}
},
- "babel-template": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
- "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
+ "babylon": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ },
+ "base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
"dev": true,
- "requires": {
- "babel-runtime": "^6.26.0",
- "babel-traverse": "^6.26.0",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0",
- "lodash": "^4.17.4"
- }
- },
- "babel-traverse": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
- "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
- "dev": true,
- "requires": {
- "babel-code-frame": "^6.26.0",
- "babel-messages": "^6.23.0",
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0",
- "debug": "^2.6.8",
- "globals": "^9.18.0",
- "invariant": "^2.2.2",
- "lodash": "^4.17.4"
- },
- "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"
- }
- },
- "globals": {
- "version": "9.18.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
- "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
- "dev": true
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true
- }
- }
- },
- "babel-types": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
- "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
- "dev": true,
- "requires": {
- "babel-runtime": "^6.26.0",
- "esutils": "^2.0.2",
- "lodash": "^4.17.4",
- "to-fast-properties": "^1.0.3"
- },
- "dependencies": {
- "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=",
- "dev": true
- }
- }
- },
- "babylon": {
- "version": "6.18.0",
- "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
- "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
- "dev": true
- },
- "backo2": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
- "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc="
- },
- "balanced-match": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
- },
- "base": {
- "version": "0.11.2",
- "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
- "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
"requires": {
"cache-base": "^1.0.1",
"class-utils": "^0.3.5",
@@ -3106,6 +3479,7 @@
"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"
}
@@ -3114,6 +3488,7 @@
"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"
}
@@ -3122,6 +3497,7 @@
"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"
}
@@ -3130,6 +3506,7 @@
"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",
@@ -3146,15 +3523,10 @@
"safe-buffer": "^5.0.1"
}
},
- "base64-arraybuffer": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
- "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg="
- },
"base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
+ "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g=="
},
"batch": {
"version": "0.6.1",
@@ -3175,33 +3547,9 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
"integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
- "requires": {
- "tweetnacl": "^0.14.3"
- }
- },
- "bech32": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz",
- "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ=="
- },
- "better-assert": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
- "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
- "requires": {
- "callsite": "1.0.0"
- }
- },
- "bfj": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.1.tgz",
- "integrity": "sha512-+GUNvzHR4nRyGybQc2WpNJL4MJazMuvf92ueIyA0bIkPRwhhQu3IfZQ2PSoVPpCBJfmoSdOxu5rnotfFLlvYRQ==",
"dev": true,
"requires": {
- "bluebird": "^3.5.1",
- "check-types": "^7.3.0",
- "hoopy": "^0.1.2",
- "tryer": "^1.0.0"
+ "tweetnacl": "^0.14.3"
}
},
"big-integer": {
@@ -3218,46 +3566,24 @@
"binary-extensions": {
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
- "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw=="
+ "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"
}
},
- "bitcoin-address-validation": {
- "version": "0.2.7",
- "resolved": "https://registry.npmjs.org/bitcoin-address-validation/-/bitcoin-address-validation-0.2.7.tgz",
- "integrity": "sha512-UuBju2QlGggTln5IeoyLmgXuwDHA4fK40WQ4/a0WiYjcNZvLQcJqXPG06UJGenP/0/OrNZDDq79HeRQcYXj+Bg==",
- "requires": {
- "base-x": "3.0.4",
- "bech32": "^1.1.3",
- "hash.js": "^1.1.7"
- },
- "dependencies": {
- "base-x": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.4.tgz",
- "integrity": "sha512-UYOadoSIkEI/VrRGSG6qp93rp2WdokiAiNYDfGW5qURAY8GiAQkvMbwNNSDYiVJopqv4gCna7xqf4rrNGp+5AA==",
- "requires": {
- "safe-buffer": "^5.0.1"
- }
- }
- }
- },
- "blob": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz",
- "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig=="
- },
"block-stream": {
"version": "0.0.9",
"resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
"integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
+ "dev": true,
"requires": {
"inherits": "~2.0.0"
}
@@ -3277,6 +3603,7 @@
"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": {
"bytes": "3.1.0",
"content-type": "~1.0.4",
@@ -3294,27 +3621,22 @@
"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"
}
},
- "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"
- }
- },
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
},
"qs": {
"version": "6.7.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
- "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
+ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+ "dev": true
}
}
},
@@ -3359,6 +3681,7 @@
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
"integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dev": true,
"requires": {
"arr-flatten": "^1.1.0",
"array-unique": "^0.3.2",
@@ -3376,6 +3699,7 @@
"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"
}
@@ -3454,13 +3778,21 @@
}
},
"browserify-rsa": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz",
- "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==",
+ "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": {
- "bn.js": "^5.0.0",
+ "bn.js": "^4.1.0",
"randombytes": "^2.0.1"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.11.9",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+ "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+ "dev": true
+ }
}
},
"browserify-sign": {
@@ -3490,16 +3822,15 @@
}
},
"browserslist": {
- "version": "4.16.0",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.0.tgz",
- "integrity": "sha512-/j6k8R0p3nxOC6kx5JGAxsnhc9ixaWJfYc+TNTzxg6+ARaESAvQGV7h0uNOB4t+pLQJZWzcrMxXOxjgsCj3dqQ==",
+ "version": "4.14.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.0.tgz",
+ "integrity": "sha512-pUsXKAF2lVwhmtpeA3LJrZ76jXuusrNyhduuQs7CDFf9foT4Y38aQOserd2lMe5DSSrjf3fx34oHwryuvxAUgQ==",
"dev": true,
"requires": {
- "caniuse-lite": "^1.0.30001165",
- "colorette": "^1.2.1",
- "electron-to-chromium": "^1.3.621",
- "escalade": "^3.1.1",
- "node-releases": "^1.1.67"
+ "caniuse-lite": "^1.0.30001111",
+ "electron-to-chromium": "^1.3.523",
+ "escalade": "^3.0.2",
+ "node-releases": "^1.1.60"
}
},
"bs58": {
@@ -3530,12 +3861,12 @@
}
},
"buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz",
+ "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==",
"requires": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4"
}
},
"buffer-from": {
@@ -3565,28 +3896,33 @@
"bytes": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
- "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
+ "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
+ "dev": true
},
"cacache": {
- "version": "11.3.3",
- "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz",
- "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==",
+ "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": {
- "bluebird": "^3.5.5",
- "chownr": "^1.1.1",
+ "chownr": "^1.1.2",
"figgy-pudding": "^3.5.1",
+ "fs-minipass": "^2.0.0",
"glob": "^7.1.4",
- "graceful-fs": "^4.1.15",
+ "graceful-fs": "^4.2.2",
+ "infer-owner": "^1.0.4",
"lru-cache": "^5.1.1",
- "mississippi": "^3.0.0",
+ "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.6.3",
- "ssri": "^6.0.1",
- "unique-filename": "^1.1.1",
- "y18n": "^4.0.0"
+ "rimraf": "^2.7.1",
+ "ssri": "^7.0.0",
+ "unique-filename": "^1.1.1"
},
"dependencies": {
"lru-cache": {
@@ -3598,6 +3934,24 @@
"yallist": "^3.0.2"
}
},
+ "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"
+ }
+ },
+ "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"
+ }
+ },
"yallist": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
@@ -3610,6 +3964,7 @@
"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": {
"collection-visit": "^1.0.0",
"component-emitter": "^1.2.1",
@@ -3622,15 +3977,6 @@
"unset-value": "^1.0.0"
}
},
- "call-bind": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz",
- "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==",
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.0"
- }
- },
"call-me-maybe": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz",
@@ -3641,6 +3987,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
"integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
+ "dev": true,
"requires": {
"callsites": "^2.0.0"
}
@@ -3649,39 +3996,38 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
"integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
+ "dev": true,
"requires": {
"caller-callsite": "^2.0.0"
}
},
- "callsite": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
- "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA="
- },
"callsites": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
- "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA="
+ "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
+ "dev": true
},
"camel-case": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
- "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz",
+ "integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==",
"dev": true,
"requires": {
- "no-case": "^2.2.0",
- "upper-case": "^1.1.1"
+ "pascal-case": "^3.1.1",
+ "tslib": "^1.10.0"
}
},
"camelcase": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
- "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+ "dev": true
},
"camelcase-keys": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
"integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+ "dev": true,
"requires": {
"camelcase": "^2.0.0",
"map-obj": "^1.0.0"
@@ -3705,30 +4051,31 @@
}
},
"caniuse-lite": {
- "version": "1.0.30001170",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001170.tgz",
- "integrity": "sha512-Dd4d/+0tsK0UNLrZs3CvNukqalnVTRrxb5mcQm8rHL49t7V5ZaTygwXkrq+FB+dVDf++4ri8eJnFEJAB8332PA==",
+ "version": "1.0.30001116",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001116.tgz",
+ "integrity": "sha512-f2lcYnmAI5Mst9+g0nkMIznFGsArRmZ0qU+dnq8l91hymdc2J3SFbiPhOJEeDqC1vtE8nc1qNQyklzB8veJefQ==",
"dev": true
},
"capture-exit": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-1.2.0.tgz",
- "integrity": "sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz",
+ "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==",
"dev": true,
"requires": {
- "rsvp": "^3.3.3"
+ "rsvp": "^4.8.4"
}
},
"case-sensitive-paths-webpack-plugin": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.2.0.tgz",
- "integrity": "sha512-u5ElzokS8A1pm9vM3/iDgTcI3xqHxuCao94Oz8etI3cf0Tio0p8izkDYbTIn09uP3yUUr6+veaE6IkjnTYS46g==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz",
+ "integrity": "sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ==",
"dev": true
},
"caseless": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
+ "dev": true
},
"cashaddrjs": {
"version": "0.3.12",
@@ -3754,16 +4101,11 @@
"integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
"dev": true
},
- "check-types": {
- "version": "7.4.0",
- "resolved": "https://registry.npmjs.org/check-types/-/check-types-7.4.0.tgz",
- "integrity": "sha512-YbulWHdfP99UfZ73NcUDlNJhEIDgm9Doq9GhpyXbF+7Aegi3CVV7qqMCKTTqJxlvEvnQBp9IA+dxsGN6xK/nSg==",
- "dev": true
- },
"chokidar": {
"version": "2.1.8",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
"integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
+ "dev": true,
"requires": {
"anymatch": "^2.0.0",
"async-each": "^1.0.1",
@@ -3797,7 +4139,8 @@
"ci-info": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
- "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
+ "dev": true
},
"cipher-base": {
"version": "1.0.4",
@@ -3808,16 +4151,11 @@
"safe-buffer": "^5.0.1"
}
},
- "circular-json": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
- "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==",
- "dev": true
- },
"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": {
"arr-union": "^3.1.0",
"define-property": "^0.2.5",
@@ -3829,6 +4167,7 @@
"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"
}
@@ -3857,33 +4196,126 @@
}
}
},
+ "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
+ },
"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": {
"restore-cursor": "^2.0.0"
}
},
+ "cli-table3": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz",
+ "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==",
+ "dev": true,
+ "requires": {
+ "colors": "^1.1.2",
+ "object-assign": "^4.1.0",
+ "string-width": "^2.1.1"
+ },
+ "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
+ },
+ "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
+ },
+ "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",
+ "strip-ansi": "^4.0.0"
+ }
+ },
+ "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"
+ }
+ }
+ }
+ },
"cli-truncate": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz",
- "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz",
+ "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==",
+ "dev": true,
"requires": {
- "slice-ansi": "0.0.4",
- "string-width": "^1.0.1"
+ "slice-ansi": "^3.0.0",
+ "string-width": "^4.2.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ }
}
},
"cli-width": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz",
- "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
+ "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
"dev": true
},
"cliui": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
"integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "dev": true,
"requires": {
"string-width": "^3.1.0",
"strip-ansi": "^5.2.0",
@@ -3893,17 +4325,20 @@
"ansi-regex": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
},
"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="
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "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",
@@ -3914,6 +4349,7 @@
"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"
}
@@ -3922,6 +4358,7 @@
"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",
"string-width": "^3.0.0",
@@ -3974,12 +4411,14 @@
"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="
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+ "dev": true
},
"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": {
"map-visit": "^1.0.0",
"object-visit": "^1.0.0"
@@ -3989,7 +4428,6 @@
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz",
"integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==",
- "dev": true,
"requires": {
"color-convert": "^1.9.1",
"color-string": "^1.5.4"
@@ -4012,7 +4450,6 @@
"version": "1.5.4",
"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz",
"integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==",
- "dev": true,
"requires": {
"color-name": "^1.0.0",
"simple-swizzle": "^0.2.2"
@@ -4024,10 +4461,18 @@
"integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==",
"dev": true
},
+ "colors": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
+ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
+ "dev": true,
+ "optional": true
+ },
"combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dev": true,
"requires": {
"delayed-stream": "~1.0.0"
}
@@ -4035,7 +4480,8 @@
"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=="
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true
},
"common-tags": {
"version": "1.8.0",
@@ -4049,16 +4495,17 @@
"integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
"dev": true
},
+ "compare-versions": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz",
+ "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==",
+ "dev": true
+ },
"complex.js": {
"version": "2.0.11",
"resolved": "https://registry.npmjs.org/complex.js/-/complex.js-2.0.11.tgz",
"integrity": "sha512-6IArJLApNtdg1P1dFtn3dnyzoZBEF0MwMnrfF1exSBRpZYoy4yieMkpZhQDC0uwctw48vii0CFVyHfpgZ/DfGw=="
},
- "component-bind": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
- "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E="
- },
"component-classes": {
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/component-classes/-/component-classes-1.2.6.tgz",
@@ -4070,17 +4517,22 @@
"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=="
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+ "dev": true
},
"component-indexof": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/component-indexof/-/component-indexof-0.0.3.tgz",
"integrity": "sha1-EdCRMSI5648yyPJa6csAL/6NPCQ="
},
- "component-inherit": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",
- "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM="
+ "compose-function": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz",
+ "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=",
+ "dev": true,
+ "requires": {
+ "arity-n": "^1.0.4"
+ }
},
"compressible": {
"version": "2.0.18",
@@ -4135,6 +4587,11 @@
}
}
},
+ "compute-scroll-into-view": {
+ "version": "1.0.16",
+ "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.16.tgz",
+ "integrity": "sha512-a85LHKY81oQnikatZYA90pufpZ6sQx++BoCxOEMsjpZx+ZnaKGQnCyCehTRr/1p9GBIAHTjcU9k71kSYWloLiQ=="
+ },
"computed-style": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/computed-style/-/computed-style-0.1.4.tgz",
@@ -4190,15 +4647,16 @@
}
},
"confusing-browser-globals": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz",
- "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==",
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz",
+ "integrity": "sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw==",
"dev": true
},
"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=="
+ "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==",
+ "dev": true
},
"console-browserify": {
"version": "1.2.0",
@@ -4209,7 +4667,8 @@
"console-control-strings": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
- "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
+ "dev": true
},
"consolidated-events": {
"version": "2.0.2",
@@ -4232,6 +4691,7 @@
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
"integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
+ "dev": true,
"requires": {
"safe-buffer": "5.1.2"
},
@@ -4239,7 +4699,8 @@
"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=="
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
}
}
},
@@ -4248,11 +4709,6 @@
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
},
- "content-type-parser": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz",
- "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ=="
- },
"convert-source-map": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
@@ -4278,7 +4734,8 @@
"cookie-signature": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
+ "dev": true
},
"copy-concurrently": {
"version": "1.0.5",
@@ -4292,12 +4749,24 @@
"mkdirp": "^0.5.1",
"rimraf": "^2.5.4",
"run-queue": "^1.0.0"
+ },
+ "dependencies": {
+ "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"
+ }
+ }
}
},
"copy-descriptor": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
- "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+ "dev": true
},
"copy-to-clipboard": {
"version": "3.3.1",
@@ -4308,17 +4777,17 @@
}
},
"core-js": {
- "version": "2.6.12",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
- "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="
+ "version": "2.6.11",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
+ "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg=="
},
"core-js-compat": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.1.tgz",
- "integrity": "sha512-a16TLmy9NVD1rkjUGbwuyWkiDoN0FDpAwrfLONvHFQx0D9k7J9y0srwMT8QP/Z6HE3MIFaVynEeYwZwPX1o5RQ==",
+ "version": "3.6.5",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz",
+ "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==",
"dev": true,
"requires": {
- "browserslist": "^4.15.0",
+ "browserslist": "^4.8.5",
"semver": "7.0.0"
},
"dependencies": {
@@ -4330,15 +4799,23 @@
}
}
},
+ "core-js-pure": {
+ "version": "3.6.5",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz",
+ "integrity": "sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==",
+ "dev": true
+ },
"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="
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "dev": true
},
"cosmiconfig": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
"integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+ "dev": true,
"requires": {
"import-fresh": "^2.0.0",
"is-directory": "^0.3.1",
@@ -4355,6 +4832,303 @@
"underscore": ">1.4.4"
}
},
+ "cp-file": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-7.0.0.tgz",
+ "integrity": "sha512-0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "make-dir": "^3.0.0",
+ "nested-error-stacks": "^2.0.0",
+ "p-event": "^4.1.0"
+ },
+ "dependencies": {
+ "make-dir": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "dev": true,
+ "requires": {
+ "semver": "^6.0.0"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
+ }
+ },
+ "cpy": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/cpy/-/cpy-8.1.0.tgz",
+ "integrity": "sha512-XwlImkjPxMr01qXqC564VD4rfcDQ2eKtYmFlCy0ixsLRJ1cwYVUBh+v47jsQTO1IrmvdjqO813VpDQ0JiTuOdA==",
+ "dev": true,
+ "requires": {
+ "arrify": "^2.0.1",
+ "cp-file": "^7.0.0",
+ "globby": "^9.2.0",
+ "has-glob": "^1.0.0",
+ "junk": "^3.1.0",
+ "nested-error-stacks": "^2.1.0",
+ "p-all": "^2.1.0",
+ "p-filter": "^2.1.0",
+ "p-map": "^3.0.0"
+ },
+ "dependencies": {
+ "arrify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
+ "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
+ "dev": true
+ },
+ "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": {
+ "path-type": "^3.0.0"
+ }
+ },
+ "globby": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz",
+ "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==",
+ "dev": true,
+ "requires": {
+ "@types/glob": "^7.1.1",
+ "array-union": "^1.0.2",
+ "dir-glob": "^2.2.2",
+ "fast-glob": "^2.2.6",
+ "glob": "^7.1.3",
+ "ignore": "^4.0.3",
+ "pify": "^4.0.1",
+ "slash": "^2.0.0"
+ }
+ },
+ "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"
+ }
+ },
+ "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"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "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
+ }
+ }
+ },
+ "cpy-cli": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/cpy-cli/-/cpy-cli-3.1.1.tgz",
+ "integrity": "sha512-HCpNdBkQy3rw+uARLuIf0YurqsMXYzBa9ihhSAuxYJcNIrqrSq3BstPfr0cQN38AdMrQiO9Dp4hYy7GtGJsLPg==",
+ "dev": true,
+ "requires": {
+ "cpy": "^8.0.0",
+ "meow": "^6.1.1"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
+ "camelcase-keys": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
+ "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.3.1",
+ "map-obj": "^4.0.0",
+ "quick-lru": "^4.0.1"
+ }
+ },
+ "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",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "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
+ },
+ "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"
+ }
+ },
+ "map-obj": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz",
+ "integrity": "sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==",
+ "dev": true
+ },
+ "meow": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-6.1.1.tgz",
+ "integrity": "sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==",
+ "dev": true,
+ "requires": {
+ "@types/minimist": "^1.2.0",
+ "camelcase-keys": "^6.2.2",
+ "decamelize-keys": "^1.1.0",
+ "hard-rejection": "^2.1.0",
+ "minimist-options": "^4.0.2",
+ "normalize-package-data": "^2.5.0",
+ "read-pkg-up": "^7.0.1",
+ "redent": "^3.0.0",
+ "trim-newlines": "^3.0.0",
+ "type-fest": "^0.13.1",
+ "yargs-parser": "^18.1.3"
+ }
+ },
+ "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"
+ }
+ },
+ "parse-json": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.1.tgz",
+ "integrity": "sha512-ztoZ4/DYeXQq4E21v169sC8qWINGpcosGv9XhTDvg9/hWvx/zrFkc9BiWxR58OJLHGk28j5BL0SDLeV2WmFZlQ==",
+ "dev": true,
+ "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-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
+ },
+ "read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "dev": true,
+ "requires": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+ "dev": true
+ }
+ }
+ },
+ "read-pkg-up": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
+ "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
+ "dev": true,
+ "requires": {
+ "find-up": "^4.1.0",
+ "read-pkg": "^5.2.0",
+ "type-fest": "^0.8.1"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true
+ }
+ }
+ },
+ "redent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
+ "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
+ "dev": true,
+ "requires": {
+ "indent-string": "^4.0.0",
+ "strip-indent": "^3.0.0"
+ }
+ },
+ "strip-indent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
+ "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
+ "dev": true,
+ "requires": {
+ "min-indent": "^1.0.0"
+ }
+ },
+ "trim-newlines": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz",
+ "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==",
+ "dev": true
+ },
+ "type-fest": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz",
+ "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==",
+ "dev": true
+ },
+ "yargs-parser": {
+ "version": "18.1.3",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
+ }
+ },
"create-ecdh": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
@@ -4400,10 +5174,11 @@
}
},
"create-react-class": {
- "version": "15.7.0",
- "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.7.0.tgz",
- "integrity": "sha512-QZv4sFWG9S5RUvkTYWbflxeZX+JG7Cz0Tn33rQBJ+WFQTqTfUTjMjiv9tnfXazjsO5r0KhPs+AqCjyrQX6h2ng==",
+ "version": "15.6.3",
+ "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz",
+ "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==",
"requires": {
+ "fbjs": "^0.8.9",
"loose-envify": "^1.3.1",
"object-assign": "^4.1.1"
}
@@ -4439,6 +5214,26 @@
"randomfill": "^1.0.3"
}
},
+ "css": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
+ "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "source-map": "^0.6.1",
+ "source-map-resolve": "^0.5.2",
+ "urix": "^0.1.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
"css-animation": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/css-animation/-/css-animation-1.6.1.tgz",
@@ -4455,34 +5250,6 @@
"dev": true,
"requires": {
"postcss": "^7.0.5"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"css-color-keywords": {
@@ -4504,34 +5271,6 @@
"requires": {
"postcss": "^7.0.1",
"timsort": "^0.3.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"css-has-pseudo": {
@@ -4550,63 +5289,51 @@
"integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==",
"dev": true
},
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "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==",
+ "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",
"indexes-of": "^1.0.1",
"uniq": "^1.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==",
- "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"
- }
}
}
},
"css-loader": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.0.tgz",
- "integrity": "sha512-tMXlTYf3mIMt3b0dDCOQFJiVvxbocJ5Ho577WiGPYPZcqVEO218L2iU22pDXzkTZCLDE+9AmGSUkWxeh/nZReA==",
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.4.2.tgz",
+ "integrity": "sha512-jYq4zdZT0oS0Iykt+fqnzVLRIeiPWhka+7BqPn+oSIpWJAHak5tmB/WZrJ2a21JhCeFyNnnlroSl8c+MtVndzA==",
"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.camelcase": "^4.3.0",
- "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"
+ "camelcase": "^5.3.1",
+ "cssesc": "^3.0.0",
+ "icss-utils": "^4.1.1",
+ "loader-utils": "^1.2.3",
+ "normalize-path": "^3.0.0",
+ "postcss": "^7.0.23",
+ "postcss-modules-extract-imports": "^2.0.0",
+ "postcss-modules-local-by-default": "^3.0.2",
+ "postcss-modules-scope": "^2.1.1",
+ "postcss-modules-values": "^3.0.0",
+ "postcss-value-parser": "^4.0.2",
+ "schema-utils": "^2.6.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
+ "postcss-value-parser": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz",
+ "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==",
+ "dev": true
+ }
}
},
"css-prefers-color-scheme": {
@@ -4616,34 +5343,6 @@
"dev": true,
"requires": {
"postcss": "^7.0.5"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"css-select": {
@@ -4664,16 +5363,6 @@
"integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==",
"dev": true
},
- "css-selector-tokenizer": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz",
- "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==",
- "dev": true,
- "requires": {
- "cssesc": "^3.0.0",
- "fastparse": "^1.1.2"
- }
- },
"css-to-react-native": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-2.3.2.tgz",
@@ -4703,9 +5392,9 @@
}
},
"css-what": {
- "version": "3.4.2",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz",
- "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.3.0.tgz",
+ "integrity": "sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg==",
"dev": true
},
"cssdb": {
@@ -4730,34 +5419,6 @@
"cssnano-preset-default": "^4.0.7",
"is-resolvable": "^1.0.0",
"postcss": "^7.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"cssnano-preset-default": {
@@ -4796,34 +5457,6 @@
"postcss-reduce-transforms": "^4.0.2",
"postcss-svgo": "^4.0.2",
"postcss-unique-selectors": "^4.0.1"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"cssnano-util-get-arguments": {
@@ -4845,34 +5478,6 @@
"dev": true,
"requires": {
"postcss": "^7.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"cssnano-util-same-parent": {
@@ -4882,28 +5487,28 @@
"dev": true
},
"csso": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz",
- "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz",
+ "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==",
"dev": true,
"requires": {
- "css-tree": "^1.1.2"
+ "css-tree": "1.0.0-alpha.39"
},
"dependencies": {
"css-tree": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz",
- "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==",
+ "version": "1.0.0-alpha.39",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz",
+ "integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==",
"dev": true,
"requires": {
- "mdn-data": "2.0.14",
+ "mdn-data": "2.0.6",
"source-map": "^0.6.1"
}
},
"mdn-data": {
- "version": "2.0.14",
- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
- "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==",
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz",
+ "integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==",
"dev": true
},
"source-map": {
@@ -4917,15 +5522,8 @@
"cssom": {
"version": "0.3.8",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
- "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="
- },
- "cssstyle": {
- "version": "0.2.37",
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz",
- "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=",
- "requires": {
- "cssom": "0.3.x"
- }
+ "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
+ "dev": true
},
"csstype": {
"version": "3.0.5",
@@ -4941,16 +5539,33 @@
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
"integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+ "dev": true,
"requires": {
"array-find-index": "^1.0.1"
}
},
+ "cycle": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz",
+ "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=",
+ "dev": true
+ },
"cyclist": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz",
"integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=",
"dev": true
},
+ "d": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
+ "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
+ "dev": true,
+ "requires": {
+ "es5-ext": "^0.10.50",
+ "type": "^1.0.1"
+ }
+ },
"d3-array": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz",
@@ -4988,9 +5603,9 @@
}
},
"d3-format": {
- "version": "1.4.5",
- "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz",
- "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ=="
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.4.tgz",
+ "integrity": "sha512-TWks25e7t8/cqctxCmxpUuzZN11QxIA7YrMbram94zMQ0PXjE4LVIMe/f6a4+xxL8HQ3OsAFULOINQi1pE62Aw=="
},
"d3-interpolate": {
"version": "1.4.0",
@@ -5042,9 +5657,9 @@
"integrity": "sha512-Z3wpvhPLW4vEScGeIMUckDW7+3hWKOQfAWg/U7PlWBnQmeKQ00gCUsTtWSYulrKNA7ta8hJ+xXc6MHrMuITwEw=="
},
"d3-time-format": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz",
- "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==",
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.2.3.tgz",
+ "integrity": "sha512-RAHNnD8+XvC4Zc4d2A56Uw0yJoM7bsvOlJR33bclxq399Rak/b9bhvu/InjxdWhPtkgU53JJcleJTGkNRnN6IA==",
"requires": {
"d3-time": "1"
}
@@ -5064,6 +5679,7 @@
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "dev": true,
"requires": {
"assert-plus": "^1.0.0"
}
@@ -5080,9 +5696,9 @@
},
"dependencies": {
"abab": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz",
- "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.4.tgz",
+ "integrity": "sha512-Eu9ELJWCz/c1e9gTiCY+FceWxcqzjYEbqMgtndnuSqZSUCOL73TWNK2mHfIj4Cw2E/ongOp+JISVNCmovt2KYQ==",
"dev": true
},
"tr46": {
@@ -5107,15 +5723,15 @@
}
}
},
- "date-fns": {
- "version": "1.30.1",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz",
- "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw=="
+ "dayjs": {
+ "version": "1.8.35",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.35.tgz",
+ "integrity": "sha512-isAbIEenO4ilm6f8cpqvgjZCsuerDAz2Kb7ri201AiNn58aqXuaLJEnCtfIMdCvERZHNGRY5lDMTr/jdAnKSWQ=="
},
"debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"requires": {
"ms": "^2.1.1"
}
@@ -5123,7 +5739,18 @@
"decamelize": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true
+ },
+ "decamelize-keys": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz",
+ "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=",
+ "dev": true,
+ "requires": {
+ "decamelize": "^1.1.0",
+ "map-obj": "^1.0.0"
+ }
},
"decimal.js": {
"version": "10.2.0",
@@ -5138,7 +5765,8 @@
"dedent": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
- "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw="
+ "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=",
+ "dev": true
},
"deep-diff": {
"version": "0.3.8",
@@ -5162,7 +5790,8 @@
"deep-is": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
- "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
+ "dev": true
},
"deepmerge": {
"version": "1.5.2",
@@ -5170,45 +5799,13 @@
"integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ=="
},
"default-gateway": {
- "version": "2.7.2",
- "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-2.7.2.tgz",
- "integrity": "sha512-lAc4i9QJR0YHSDFdzeBQKfZ1SRDG3hsJNEkrpcZa8QhBfidLAilT60BDEIVUUGqosFp425KOgB3uYqcnQrWafQ==",
+ "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": {
- "execa": "^0.10.0",
+ "execa": "^1.0.0",
"ip-regex": "^2.1.0"
- },
- "dependencies": {
- "execa": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
- "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==",
- "dev": true,
- "requires": {
- "cross-spawn": "^6.0.0",
- "get-stream": "^3.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"
- }
- },
- "get-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
- "dev": true
- }
- }
- },
- "default-require-extensions": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz",
- "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=",
- "dev": true,
- "requires": {
- "strip-bom": "^2.0.0"
}
},
"define-properties": {
@@ -5223,6 +5820,7 @@
"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": {
"is-descriptor": "^1.0.2",
"isobject": "^3.0.1"
@@ -5232,6 +5830,7 @@
"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"
}
@@ -5240,6 +5839,7 @@
"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"
}
@@ -5248,6 +5848,7 @@
"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",
@@ -5256,33 +5857,23 @@
}
}
},
- "del": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz",
- "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=",
- "requires": {
- "globby": "^6.1.0",
- "is-path-cwd": "^1.0.0",
- "is-path-in-cwd": "^1.0.0",
- "p-map": "^1.1.1",
- "pify": "^3.0.0",
- "rimraf": "^2.2.8"
- }
- },
"delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "dev": true
},
"delegates": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
- "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
+ "dev": true
},
"depd": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
+ "dev": true
},
"des.js": {
"version": "1.0.1",
@@ -5297,16 +5888,8 @@
"destroy": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
- "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
- },
- "detect-indent": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
- "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
- "dev": true,
- "requires": {
- "repeating": "^2.0.0"
- }
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
+ "dev": true
},
"detect-newline": {
"version": "2.1.0",
@@ -5347,10 +5930,10 @@
}
}
},
- "diff": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
- "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
+ "diff-sequences": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz",
+ "integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==",
"dev": true
},
"diffie-hellman": {
@@ -5424,9 +6007,9 @@
}
},
"doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
"dev": true,
"requires": {
"esutils": "^2.0.2"
@@ -5445,14 +6028,6 @@
"resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.12.0.tgz",
"integrity": "sha512-YkoezQuhp3SLFGdOlr5xkqZ640iXrnHAwVYcDg8ZKRUtO7mSzSC2BA5V0VuyAwPSJA4CLIc6EDDJh4bEsD2+zA=="
},
- "dom-closest": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/dom-closest/-/dom-closest-0.2.0.tgz",
- "integrity": "sha1-69n5HRvyLo1vR3h2u80+yQIWwM8=",
- "requires": {
- "dom-matches": ">=1.0.1"
- }
- },
"dom-converter": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
@@ -5472,10 +6047,14 @@
"to-camel-case": "1.0.0"
}
},
- "dom-matches": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/dom-matches/-/dom-matches-2.0.0.tgz",
- "integrity": "sha1-0nKLQWqHUzmA6wibhI0lPPI6dYw="
+ "dom-helpers": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.0.tgz",
+ "integrity": "sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==",
+ "requires": {
+ "@babel/runtime": "^7.8.7",
+ "csstype": "^3.0.2"
+ }
},
"dom-scroll-into-view": {
"version": "1.2.1",
@@ -5493,9 +6072,9 @@
},
"dependencies": {
"domelementtype": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz",
- "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz",
+ "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==",
"dev": true
}
}
@@ -5540,10 +6119,20 @@
"domelementtype": "1"
}
},
+ "dot-case": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz",
+ "integrity": "sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==",
+ "dev": true,
+ "requires": {
+ "no-case": "^3.0.3",
+ "tslib": "^1.10.0"
+ }
+ },
"dot-prop": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
- "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz",
+ "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==",
"dev": true,
"requires": {
"is-obj": "^2.0.0"
@@ -5558,15 +6147,15 @@
}
},
"dotenv": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.0.0.tgz",
- "integrity": "sha512-FlWbnhgjtwD+uNLUGHbMykMOYQaTivdHEmYwAKFjn6GKe/CqY0fNae93ZHTd20snh9ZLr8mTzIL9m0APQ1pjQg==",
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz",
+ "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==",
"dev": true
},
"dotenv-expand": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz",
- "integrity": "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz",
+ "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==",
"dev": true
},
"draft-js": {
@@ -5660,6 +6249,7 @@
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
"integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+ "dev": true,
"requires": {
"jsbn": "~0.1.0",
"safer-buffer": "^2.1.0"
@@ -5668,19 +6258,15 @@
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
+ "dev": true
},
"electron-to-chromium": {
- "version": "1.3.633",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.633.tgz",
- "integrity": "sha512-bsVCsONiVX1abkWdH7KtpuDAhsQ3N3bjPYhROSAXE78roJKet0Y5wznA14JE9pzbwSZmSMAW6KiKYf1RvbTJkA==",
+ "version": "1.3.539",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.539.tgz",
+ "integrity": "sha512-rM0LWDIstdqfaRUADZetNrL6+zd/0NBmavbMEhBXgc2u/CC1d1GaDyN5hho29fFvBiOVFwrSWZkzmNcZnCEDog==",
"dev": true
},
- "elegant-spinner": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz",
- "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4="
- },
"elliptic": {
"version": "6.5.3",
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz",
@@ -5715,7 +6301,8 @@
"emoji-regex": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
- "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
},
"emojis-list": {
"version": "3.0.0",
@@ -5726,83 +6313,35 @@
"encodeurl": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+ "dev": true
},
"encoding": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
- "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
+ "version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
+ "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
"requires": {
- "iconv-lite": "^0.6.2"
+ "iconv-lite": "~0.4.13"
}
},
"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": {
"once": "^1.4.0"
}
},
- "engine.io-client": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.3.2.tgz",
- "integrity": "sha512-y0CPINnhMvPuwtqXfsGuWE8BB66+B6wTtCofQDRecMQPYX3MYUZXFNKDhdrSe3EVjgOu4V3rxdeqN/Tr91IgbQ==",
- "requires": {
- "component-emitter": "1.2.1",
- "component-inherit": "0.0.3",
- "debug": "~3.1.0",
- "engine.io-parser": "~2.1.1",
- "has-cors": "1.1.0",
- "indexof": "0.0.1",
- "parseqs": "0.0.5",
- "parseuri": "0.0.5",
- "ws": "~6.1.0",
- "xmlhttprequest-ssl": "~1.5.4",
- "yeast": "0.1.2"
- },
- "dependencies": {
- "component-emitter": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
- "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
- },
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- }
- }
- },
- "engine.io-parser": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz",
- "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==",
- "requires": {
- "after": "0.8.2",
- "arraybuffer.slice": "~0.0.7",
- "base64-arraybuffer": "0.1.5",
- "blob": "0.0.5",
- "has-binary2": "~1.0.2"
- }
- },
- "enhanced-resolve": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz",
- "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.2",
- "memory-fs": "^0.5.0",
- "tapable": "^1.0.0"
+ "enhanced-resolve": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz",
+ "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "memory-fs": "^0.5.0",
+ "tapable": "^1.0.0"
},
"dependencies": {
"memory-fs": {
@@ -5847,21 +6386,33 @@
}
}
},
- "enquire.js": {
- "version": "2.1.6",
- "resolved": "https://registry.npmjs.org/enquire.js/-/enquire.js-2.1.6.tgz",
- "integrity": "sha1-PoeAybi4NQhMP2DhZtvDwqPImBQ="
+ "enquirer": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
+ "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
+ "dev": true,
+ "requires": {
+ "ansi-colors": "^4.1.1"
+ },
+ "dependencies": {
+ "ansi-colors": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
+ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+ "dev": true
+ }
+ }
},
"entities": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz",
- "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz",
+ "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==",
"dev": true
},
"errno": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
- "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
+ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
"dev": true,
"requires": {
"prr": "~1.0.1"
@@ -5876,20 +6427,19 @@
}
},
"es-abstract": {
- "version": "1.18.0-next.1",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz",
- "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==",
+ "version": "1.17.6",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz",
+ "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==",
"requires": {
"es-to-primitive": "^1.2.1",
"function-bind": "^1.1.1",
"has": "^1.0.3",
"has-symbols": "^1.0.1",
- "is-callable": "^1.2.2",
- "is-negative-zero": "^2.0.0",
- "is-regex": "^1.1.1",
- "object-inspect": "^1.8.0",
+ "is-callable": "^1.2.0",
+ "is-regex": "^1.1.0",
+ "object-inspect": "^1.7.0",
"object-keys": "^1.1.1",
- "object.assign": "^4.1.1",
+ "object.assign": "^4.1.0",
"string.prototype.trimend": "^1.0.1",
"string.prototype.trimstart": "^1.0.1"
}
@@ -5904,21 +6454,54 @@
"is-symbol": "^1.0.2"
}
},
+ "es5-ext": {
+ "version": "0.10.53",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz",
+ "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==",
+ "dev": true,
+ "requires": {
+ "es6-iterator": "~2.0.3",
+ "es6-symbol": "~3.1.3",
+ "next-tick": "~1.0.0"
+ }
+ },
"es6-error": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
"integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg=="
},
+ "es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
+ "dev": true,
+ "requires": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "es6-symbol": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
+ "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
+ "dev": true,
+ "requires": {
+ "d": "^1.0.1",
+ "ext": "^1.1.2"
+ }
+ },
"escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz",
+ "integrity": "sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==",
"dev": true
},
"escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
+ "dev": true
},
"escape-latex": {
"version": "1.2.0",
@@ -5934,6 +6517,7 @@
"version": "1.14.3",
"resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
"integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
+ "dev": true,
"requires": {
"esprima": "^4.0.1",
"estraverse": "^4.2.0",
@@ -5946,94 +6530,112 @@
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
"optional": true
}
}
},
"eslint": {
- "version": "5.12.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.12.0.tgz",
- "integrity": "sha512-LntwyPxtOHrsJdcSwyQKVtHofPHdv+4+mFwEe91r2V13vqpM8yLr7b1sW+Oo/yheOPkWYsYlYJCkzlFAt8KV7g==",
+ "version": "6.8.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz",
+ "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
- "ajv": "^6.5.3",
+ "ajv": "^6.10.0",
"chalk": "^2.1.0",
"cross-spawn": "^6.0.5",
"debug": "^4.0.1",
- "doctrine": "^2.1.0",
- "eslint-scope": "^4.0.0",
- "eslint-utils": "^1.3.1",
- "eslint-visitor-keys": "^1.0.0",
- "espree": "^5.0.0",
+ "doctrine": "^3.0.0",
+ "eslint-scope": "^5.0.0",
+ "eslint-utils": "^1.4.3",
+ "eslint-visitor-keys": "^1.1.0",
+ "espree": "^6.1.2",
"esquery": "^1.0.1",
"esutils": "^2.0.2",
- "file-entry-cache": "^2.0.0",
+ "file-entry-cache": "^5.0.1",
"functional-red-black-tree": "^1.0.1",
- "glob": "^7.1.2",
- "globals": "^11.7.0",
+ "glob-parent": "^5.0.0",
+ "globals": "^12.1.0",
"ignore": "^4.0.6",
"import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4",
- "inquirer": "^6.1.0",
- "js-yaml": "^3.12.0",
+ "inquirer": "^7.0.0",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^3.13.1",
"json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.3.0",
- "lodash": "^4.17.5",
+ "lodash": "^4.17.14",
"minimatch": "^3.0.4",
"mkdirp": "^0.5.1",
"natural-compare": "^1.4.0",
- "optionator": "^0.8.2",
- "path-is-inside": "^1.0.2",
- "pluralize": "^7.0.0",
+ "optionator": "^0.8.3",
"progress": "^2.0.0",
"regexpp": "^2.0.1",
- "semver": "^5.5.1",
- "strip-ansi": "^4.0.0",
- "strip-json-comments": "^2.0.1",
- "table": "^5.0.2",
- "text-table": "^0.2.0"
+ "semver": "^6.1.2",
+ "strip-ansi": "^5.2.0",
+ "strip-json-comments": "^3.0.1",
+ "table": "^5.2.3",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
},
"dependencies": {
"ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
"dev": true
},
"debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "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.2"
+ "ms": "^2.1.1"
}
},
- "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==",
+ "eslint-utils": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
+ "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
"dev": true,
"requires": {
- "esrecurse": "^4.1.0",
- "estraverse": "^4.1.1"
+ "eslint-visitor-keys": "^1.1.0"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
+ "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "globals": {
+ "version": "12.4.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
+ "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.8.1"
}
},
"import-fresh": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "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==",
"dev": true,
"requires": {
"parent-module": "^1.0.0",
"resolve-from": "^4.0.0"
}
},
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "regexpp": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
+ "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
"dev": true
},
"resolve-from": {
@@ -6042,24 +6644,30 @@
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"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
+ },
"strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "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": "^3.0.0"
+ "ansi-regex": "^4.1.0"
}
}
}
},
"eslint-config-react-app": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-3.0.8.tgz",
- "integrity": "sha512-Ovi6Bva67OjXrom9Y/SLJRkrGqKhMAL0XCH8BizPhjEVEhYczl2ZKiNZI2CuqO5/CJwAfMwRXAVGY0KToWr1aA==",
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-5.2.1.tgz",
+ "integrity": "sha512-pGIZ8t0mFLcV+6ZirRgYK6RVqUIKRIi9MmgzUEmrIknsn3AdO0I32asO86dJgloHq+9ZPl8UIg8mYrvgP5u2wQ==",
"dev": true,
"requires": {
- "confusing-browser-globals": "^1.0.6"
+ "confusing-browser-globals": "^1.0.9"
}
},
"eslint-import-resolver-node": {
@@ -6090,16 +6698,16 @@
}
},
"eslint-loader": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.1.1.tgz",
- "integrity": "sha512-1GrJFfSevQdYpoDzx8mEE2TDWsb/zmFuY09l6hURg1AeFIKQOvZ+vH0UPjzmd1CZIbfTV5HUkMeBmFiDBkgIsQ==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-3.0.3.tgz",
+ "integrity": "sha512-+YRqB95PnNvxNp1HEjQmvf9KNvCin5HXYYseOXVC2U0KEcw4IkQ2IQEBG46j7+gW39bMzeu0GsUhVbBY3Votpw==",
"dev": true,
"requires": {
- "loader-fs-cache": "^1.0.0",
- "loader-utils": "^1.0.2",
- "object-assign": "^4.0.1",
- "object-hash": "^1.1.4",
- "rimraf": "^2.6.1"
+ "fs-extra": "^8.1.0",
+ "loader-fs-cache": "^1.0.2",
+ "loader-utils": "^1.2.3",
+ "object-hash": "^2.0.1",
+ "schema-utils": "^2.6.1"
}
},
"eslint-module-utils": {
@@ -6182,30 +6790,32 @@
}
},
"eslint-plugin-flowtype": {
- "version": "2.50.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.50.1.tgz",
- "integrity": "sha512-9kRxF9hfM/O6WGZcZPszOVPd2W0TLHBtceulLTsGfwMPtiCCLnCW0ssRiOOiXyqrCA20pm1iXdXm7gQeN306zQ==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-4.6.0.tgz",
+ "integrity": "sha512-W5hLjpFfZyZsXfo5anlu7HM970JBDqbEshAJUkeczP6BFCIfJXuiIBQXyberLRtOStT0OGPF8efeTbxlHk4LpQ==",
"dev": true,
"requires": {
- "lodash": "^4.17.10"
+ "lodash": "^4.17.15"
}
},
"eslint-plugin-import": {
- "version": "2.14.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz",
- "integrity": "sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g==",
+ "version": "2.20.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz",
+ "integrity": "sha512-qQHgFOTjguR+LnYRoToeZWT62XM55MBVXObHM6SKFd1VzDcX/vqT1kAz8ssqigh5eMj8qXcRoXXGZpPP6RfdCw==",
"dev": true,
"requires": {
+ "array-includes": "^3.0.3",
+ "array.prototype.flat": "^1.2.1",
"contains-path": "^0.1.0",
- "debug": "^2.6.8",
+ "debug": "^2.6.9",
"doctrine": "1.5.0",
- "eslint-import-resolver-node": "^0.3.1",
- "eslint-module-utils": "^2.2.0",
- "has": "^1.0.1",
- "lodash": "^4.17.4",
- "minimatch": "^3.0.3",
+ "eslint-import-resolver-node": "^0.3.2",
+ "eslint-module-utils": "^2.4.1",
+ "has": "^1.0.3",
+ "minimatch": "^3.0.4",
+ "object.values": "^1.1.0",
"read-pkg-up": "^2.0.0",
- "resolve": "^1.6.0"
+ "resolve": "^1.12.0"
},
"dependencies": {
"debug": {
@@ -6342,48 +6952,69 @@
}
},
"eslint-plugin-jsx-a11y": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.2.tgz",
- "integrity": "sha512-7gSSmwb3A+fQwtw0arguwMdOdzmKUgnUcbSNlo+GjKLAQFuC2EZxWqG9XHRI8VscBJD5a8raz3RuxQNFW+XJbw==",
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz",
+ "integrity": "sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg==",
"dev": true,
"requires": {
+ "@babel/runtime": "^7.4.5",
"aria-query": "^3.0.0",
"array-includes": "^3.0.3",
"ast-types-flow": "^0.0.7",
- "axobject-query": "^2.0.1",
+ "axobject-query": "^2.0.2",
"damerau-levenshtein": "^1.0.4",
- "emoji-regex": "^6.5.1",
+ "emoji-regex": "^7.0.2",
"has": "^1.0.3",
- "jsx-ast-utils": "^2.0.1"
- },
- "dependencies": {
- "emoji-regex": {
- "version": "6.5.1",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.5.1.tgz",
- "integrity": "sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ==",
- "dev": true
- }
+ "jsx-ast-utils": "^2.2.1"
}
},
"eslint-plugin-react": {
- "version": "7.12.4",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.12.4.tgz",
- "integrity": "sha512-1puHJkXJY+oS1t467MjbqjvX53uQ05HXwjqDgdbGBqf5j9eeydI54G3KwiJmWciQ0HTBacIKw2jgwSBSH3yfgQ==",
+ "version": "7.19.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz",
+ "integrity": "sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ==",
"dev": true,
"requires": {
- "array-includes": "^3.0.3",
+ "array-includes": "^3.1.1",
"doctrine": "^2.1.0",
"has": "^1.0.3",
- "jsx-ast-utils": "^2.0.1",
- "object.fromentries": "^2.0.0",
- "prop-types": "^15.6.2",
- "resolve": "^1.9.0"
+ "jsx-ast-utils": "^2.2.3",
+ "object.entries": "^1.1.1",
+ "object.fromentries": "^2.0.2",
+ "object.values": "^1.1.1",
+ "prop-types": "^15.7.2",
+ "resolve": "^1.15.1",
+ "semver": "^6.3.0",
+ "string.prototype.matchall": "^4.0.2",
+ "xregexp": "^4.3.0"
+ },
+ "dependencies": {
+ "doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
}
},
+ "eslint-plugin-react-hooks": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz",
+ "integrity": "sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA==",
+ "dev": true
+ },
"eslint-scope": {
- "version": "3.7.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz",
- "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz",
+ "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==",
"dev": true,
"requires": {
"esrecurse": "^4.1.0",
@@ -6391,9 +7022,9 @@
}
},
"eslint-utils": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
- "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
+ "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
"dev": true,
"requires": {
"eslint-visitor-keys": "^1.1.0"
@@ -6406,20 +7037,20 @@
"dev": true
},
"espree": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz",
- "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==",
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz",
+ "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==",
"dev": true,
"requires": {
- "acorn": "^6.0.7",
- "acorn-jsx": "^5.0.0",
- "eslint-visitor-keys": "^1.0.0"
+ "acorn": "^7.1.1",
+ "acorn-jsx": "^5.2.0",
+ "eslint-visitor-keys": "^1.1.0"
},
"dependencies": {
"acorn": {
- "version": "6.4.2",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz",
- "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==",
+ "version": "7.4.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz",
+ "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==",
"dev": true
}
}
@@ -6427,7 +7058,8 @@
"esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true
},
"esquery": {
"version": "1.3.1",
@@ -6447,46 +7079,37 @@
}
},
"esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "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": {
- "estraverse": "^5.2.0"
- },
- "dependencies": {
- "estraverse": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
- "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
- "dev": true
- }
+ "estraverse": "^4.1.0"
}
},
"estraverse": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true
},
"esutils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true
},
"etag": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
+ "dev": true
},
"eventemitter3": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
- "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
- },
- "eventlistener": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/eventlistener/-/eventlistener-0.0.1.tgz",
- "integrity": "sha1-7Suqu4UiJ68rz4iRUscsY8pTLrg="
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
+ "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==",
+ "dev": true
},
"events": {
"version": "3.2.0",
@@ -6514,18 +7137,16 @@
}
},
"exec-sh": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz",
- "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==",
- "dev": true,
- "requires": {
- "merge": "^1.2.0"
- }
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz",
+ "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==",
+ "dev": true
},
"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": {
"cross-spawn": "^6.0.0",
"get-stream": "^4.0.0",
@@ -6551,6 +7172,7 @@
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
"integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "dev": true,
"requires": {
"debug": "^2.3.3",
"define-property": "^0.2.5",
@@ -6565,6 +7187,7 @@
"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"
}
@@ -6573,6 +7196,7 @@
"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"
}
@@ -6581,6 +7205,7 @@
"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"
}
@@ -6588,74 +7213,30 @@
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- }
- }
- },
- "expand-range": {
- "version": "1.8.2",
- "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
- "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
- "requires": {
- "fill-range": "^2.1.0"
- },
- "dependencies": {
- "fill-range": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
- "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
- "requires": {
- "is-number": "^2.1.0",
- "isobject": "^2.0.0",
- "randomatic": "^3.0.0",
- "repeat-element": "^1.1.2",
- "repeat-string": "^1.5.2"
- }
- },
- "is-number": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
- "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
- "requires": {
- "kind-of": "^3.0.2"
- }
- },
- "isobject": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
- "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
- "requires": {
- "isarray": "1.0.0"
- }
- },
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "requires": {
- "is-buffer": "^1.1.5"
- }
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
}
}
},
"expect": {
- "version": "23.6.0",
- "resolved": "https://registry.npmjs.org/expect/-/expect-23.6.0.tgz",
- "integrity": "sha512-dgSoOHgmtn/aDGRVFWclQyPDKl2CQRq0hmIEoUAuQs/2rn2NcvCWcSCovm6BLeuB/7EZuLGu2QfnR+qRt5OM4w==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz",
+ "integrity": "sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q==",
"dev": true,
"requires": {
+ "@jest/types": "^24.9.0",
"ansi-styles": "^3.2.0",
- "jest-diff": "^23.6.0",
- "jest-get-type": "^22.1.0",
- "jest-matcher-utils": "^23.6.0",
- "jest-message-util": "^23.4.0",
- "jest-regex-util": "^23.3.0"
+ "jest-get-type": "^24.9.0",
+ "jest-matcher-utils": "^24.9.0",
+ "jest-message-util": "^24.9.0",
+ "jest-regex-util": "^24.9.0"
}
},
"express": {
"version": "4.17.1",
"resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
"integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
+ "dev": true,
"requires": {
"accepts": "~1.3.7",
"array-flatten": "1.1.1",
@@ -6693,6 +7274,7 @@
"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"
}
@@ -6700,29 +7282,51 @@
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
},
"qs": {
"version": "6.7.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
- "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
+ "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=="
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ }
+ }
+ },
+ "ext": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz",
+ "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==",
+ "dev": true,
+ "requires": {
+ "type": "^2.0.0"
+ },
+ "dependencies": {
+ "type": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz",
+ "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==",
+ "dev": true
}
}
},
"extend": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "dev": true
},
"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": {
"assign-symbols": "^1.0.0",
"is-extendable": "^1.0.1"
@@ -6732,6 +7336,7 @@
"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"
}
@@ -6747,23 +7352,13 @@
"chardet": "^0.7.0",
"iconv-lite": "^0.4.24",
"tmp": "^0.0.33"
- },
- "dependencies": {
- "iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dev": true,
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- }
}
},
"extglob": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
"integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dev": true,
"requires": {
"array-unique": "^0.3.2",
"define-property": "^1.0.0",
@@ -6779,6 +7374,7 @@
"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"
}
@@ -6787,6 +7383,7 @@
"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"
}
@@ -6795,6 +7392,7 @@
"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"
}
@@ -6803,6 +7401,7 @@
"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"
}
@@ -6811,6 +7410,7 @@
"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",
@@ -6822,12 +7422,20 @@
"extsprintf": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
- "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+ "dev": true
+ },
+ "eyes": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
+ "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=",
+ "dev": true
},
"fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true
},
"fast-glob": {
"version": "2.2.7",
@@ -6846,23 +7454,19 @@
"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=="
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true
},
"fast-levenshtein": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
- },
- "fastparse": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz",
- "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
"dev": true
},
"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==",
+ "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"
@@ -6910,65 +7514,51 @@
"dev": true
},
"figures": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
- "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
+ "dev": true,
"requires": {
- "escape-string-regexp": "^1.0.5",
- "object-assign": "^4.1.0"
+ "escape-string-regexp": "^1.0.5"
}
},
"file-entry-cache": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
- "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
+ "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
"dev": true,
"requires": {
- "flat-cache": "^1.2.1",
- "object-assign": "^4.0.1"
+ "flat-cache": "^2.0.1"
}
},
"file-loader": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz",
- "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.3.0.tgz",
+ "integrity": "sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA==",
"dev": true,
"requires": {
- "loader-utils": "^1.0.2",
- "schema-utils": "^1.0.0"
+ "loader-utils": "^1.2.3",
+ "schema-utils": "^2.5.0"
}
},
"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==",
- "optional": true
- },
- "filename-regex": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
- "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY="
- },
- "fileset": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz",
- "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=",
"dev": true,
- "requires": {
- "glob": "^7.0.3",
- "minimatch": "^3.0.3"
- }
+ "optional": true
},
"filesize": {
- "version": "3.6.1",
- "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz",
- "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.0.1.tgz",
+ "integrity": "sha512-u4AYWPgbI5GBhs6id1KdImZWn5yfyFrrQ8OWZdN7ZMfA8Bf4HcO0BGo9bmUIEV8yrp8I1xVfJ/dn90GtFNNJcg==",
"dev": true
},
"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": {
"extend-shallow": "^2.0.1",
"is-number": "^3.0.0",
@@ -6980,6 +7570,7 @@
"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"
}
@@ -6990,6 +7581,7 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
"integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "dev": true,
"requires": {
"debug": "2.6.9",
"encodeurl": "~1.0.2",
@@ -7004,6 +7596,7 @@
"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"
}
@@ -7011,7 +7604,8 @@
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
}
}
},
@@ -7030,25 +7624,39 @@
"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"
}
},
+ "find-versions": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz",
+ "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==",
+ "dev": true,
+ "requires": {
+ "semver-regex": "^2.0.0"
+ }
+ },
"flag-icon-css": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/flag-icon-css/-/flag-icon-css-3.3.0.tgz",
"integrity": "sha512-u5lCGVExrJJRykNGd//ZrBU5Bkt0LTZJFSuG+Az/pwcHgzDeFwomwFbsgVtI1aJd6ysyHsx+5UGrA+nhSGd4yw=="
},
+ "flat": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
+ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ=="
+ },
"flat-cache": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz",
- "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
+ "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
"dev": true,
"requires": {
- "circular-json": "^0.3.1",
- "graceful-fs": "^4.1.2",
- "rimraf": "~2.6.2",
- "write": "^0.2.1"
+ "flatted": "^2.0.0",
+ "rimraf": "2.6.3",
+ "write": "1.0.3"
},
"dependencies": {
"rimraf": {
@@ -7062,6 +7670,12 @@
}
}
},
+ "flatted": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
+ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
+ "dev": true
+ },
"flatten": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz",
@@ -7110,25 +7724,22 @@
}
}
},
- "fn-name": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/fn-name/-/fn-name-2.0.1.tgz",
- "integrity": "sha1-UhTXU3pNBqSjAcDMJi/rhBiAAuc="
- },
"follow-redirects": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz",
- "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg=="
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.12.1.tgz",
+ "integrity": "sha512-tmRv0AVuR7ZyouUHLeNSiO6pqulF7dYa3s19c6t+wz9LD69/uSzdMxJ2S91nTI9U3rt/IldxpzMOFejp6f0hjg=="
},
"for-in": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
- "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+ "dev": true
},
"for-own": {
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
"integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+ "dev": true,
"requires": {
"for-in": "^1.0.1"
}
@@ -7136,27 +7747,131 @@
"forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+ "dev": true
},
"fork-ts-checker-webpack-plugin": {
- "version": "1.0.0-alpha.6",
- "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.0.0-alpha.6.tgz",
- "integrity": "sha512-s/V+58nLrUjuXyzYk8AL11XG8bxIirTbafDLMn26sL59HQx8QvvsRTqOkhq4MV0coIkog1jZuH/E9Abm8zFZ2g==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-3.1.1.tgz",
+ "integrity": "sha512-DuVkPNrM12jR41KM2e+N+styka0EgLkTnXmNcXdgOM37vtGeY+oCBK/Jx0hzSeEU6memFCtWb4htrHPMDfwwUQ==",
"dev": true,
"requires": {
"babel-code-frame": "^6.22.0",
"chalk": "^2.4.1",
- "chokidar": "^2.0.4",
+ "chokidar": "^3.3.0",
"micromatch": "^3.1.10",
"minimatch": "^3.0.4",
"semver": "^5.6.0",
- "tapable": "^1.0.0"
+ "tapable": "^1.0.0",
+ "worker-rpc": "^0.1.0"
+ },
+ "dependencies": {
+ "anymatch": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
+ "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+ "dev": true,
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "binary-extensions": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
+ "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==",
+ "dev": true
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chokidar": {
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz",
+ "integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==",
+ "dev": true,
+ "requires": {
+ "anymatch": "~3.1.1",
+ "braces": "~3.0.2",
+ "fsevents": "~2.1.2",
+ "glob-parent": "~5.1.0",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.4.0"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "fsevents": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
+ "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+ "dev": true,
+ "optional": true
+ },
+ "glob-parent": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
+ "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "requires": {
+ "binary-extensions": "^2.0.0"
+ }
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "readdirp": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz",
+ "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==",
+ "dev": true,
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ }
}
},
"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==",
+ "dev": true,
"requires": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.6",
@@ -7166,7 +7881,8 @@
"forwarded": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
- "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
+ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
+ "dev": true
},
"fraction.js": {
"version": "4.0.12",
@@ -7177,6 +7893,7 @@
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
"integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "dev": true,
"requires": {
"map-cache": "^0.2.2"
}
@@ -7184,7 +7901,8 @@
"fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
+ "dev": true
},
"from2": {
"version": "2.3.0",
@@ -7229,16 +7947,25 @@
}
},
"fs-extra": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
- "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.2",
+ "graceful-fs": "^4.2.0",
"jsonfile": "^4.0.0",
"universalify": "^0.1.0"
}
},
+ "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": {
+ "minipass": "^3.0.0"
+ }
+ },
"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",
@@ -7292,6 +8019,7 @@
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
"integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
+ "dev": true,
"optional": true,
"requires": {
"bindings": "^1.5.0",
@@ -7302,11 +8030,23 @@
"version": "1.0.12",
"resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
"integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
+ "dev": true,
"requires": {
"graceful-fs": "^4.1.2",
"inherits": "~2.0.0",
"mkdirp": ">=0.5 0",
"rimraf": "2"
+ },
+ "dependencies": {
+ "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"
+ }
+ }
}
},
"function-bind": {
@@ -7315,14 +8055,13 @@
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"function.prototype.name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.3.tgz",
- "integrity": "sha512-H51qkbNSp8mtkJt+nyW1gyStBiKZxfRqySNUR99ylq6BPXHKI4SEvIlTKp4odLfjRKJV04DFWMU3G/YRlQOsag==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.2.tgz",
+ "integrity": "sha512-C8A+LlHBJjB2AdcRPorc5JvJ5VUoWlXdEHLOJdCI7kjHEtGTpHQUiqMvCIKUwIsGwZX2jZJy761AXsn356bJQg==",
"requires": {
- "call-bind": "^1.0.0",
"define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.1",
- "functions-have-names": "^1.2.1"
+ "es-abstract": "^1.17.0-next.1",
+ "functions-have-names": "^1.2.0"
}
},
"functional-red-black-tree": {
@@ -7332,24 +8071,15 @@
"dev": true
},
"functions-have-names": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.2.tgz",
- "integrity": "sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA=="
- },
- "g-status": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/g-status/-/g-status-2.0.2.tgz",
- "integrity": "sha512-kQoE9qH+T1AHKgSSD0Hkv98bobE90ILQcXAF4wvGgsr7uFqNvwmh8j+Lq3l0RVt3E3HjSbv2B9biEGcEtpHLCA==",
- "requires": {
- "arrify": "^1.0.1",
- "matcher": "^1.0.0",
- "simple-git": "^1.85.0"
- }
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.1.tgz",
+ "integrity": "sha512-j48B/ZI7VKs3sgeI2cZp7WXWmZXu7Iq5pl5/vptV5N2mq+DGFuS/ulaDjtaoLpYzuD6u8UgrUKHfgo7fDTSiBA=="
},
"gauge": {
"version": "2.7.4",
"resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
"integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+ "dev": true,
"requires": {
"aproba": "^1.0.3",
"console-control-strings": "^1.0.0",
@@ -7365,45 +8095,34 @@
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
"integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
+ "dev": true,
"requires": {
"globule": "^1.0.0"
}
},
"gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "version": "1.0.0-beta.1",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz",
+ "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==",
"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=="
- },
- "get-intrinsic": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz",
- "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==",
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1"
- }
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true
},
"get-own-enumerable-property-symbols": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz",
- "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g=="
- },
- "get-stdin": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz",
- "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g=="
+ "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==",
+ "dev": true
},
"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"
}
@@ -7411,12 +8130,14 @@
"get-value": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
- "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
+ "dev": true
},
"getpass": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "dev": true,
"requires": {
"assert-plus": "^1.0.0"
}
@@ -7434,42 +8155,11 @@
"path-is-absolute": "^1.0.0"
}
},
- "glob-base": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
- "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
- "requires": {
- "glob-parent": "^2.0.0",
- "is-glob": "^2.0.0"
- },
- "dependencies": {
- "glob-parent": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
- "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
- "requires": {
- "is-glob": "^2.0.0"
- }
- },
- "is-extglob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
- },
- "is-glob": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
- "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
- "requires": {
- "is-extglob": "^1.0.0"
- }
- }
- }
- },
"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"
@@ -7479,6 +8169,7 @@
"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"
}
@@ -7488,7 +8179,8 @@
"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="
+ "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=",
+ "dev": true
},
"global-cache": {
"version": "1.2.1",
@@ -7529,6 +8221,7 @@
"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",
@@ -7540,7 +8233,8 @@
"pify": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
}
}
},
@@ -7548,6 +8242,7 @@
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz",
"integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==",
+ "dev": true,
"requires": {
"glob": "~7.1.1",
"lodash": "~4.17.10",
@@ -7565,67 +8260,52 @@
"integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=",
"dev": true
},
- "gud": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz",
- "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw=="
- },
"gzip-size": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.0.0.tgz",
- "integrity": "sha512-5iI7omclyqrnWw4XbXAmGhPsABkSIDQonv2K0h61lybgofWa6iZyvrI3r2zsJH4P8Nb64fFVzlvfhs0g7BBxAA==",
+ "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",
- "pify": "^3.0.0"
+ "pify": "^4.0.1"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true
+ }
}
},
- "hammerjs": {
- "version": "2.0.8",
- "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz",
- "integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE="
- },
"handle-thing": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz",
"integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==",
"dev": true
},
- "handlebars": {
- "version": "4.7.6",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz",
- "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==",
- "dev": true,
- "requires": {
- "minimist": "^1.2.5",
- "neo-async": "^2.6.0",
- "source-map": "^0.6.1",
- "uglify-js": "^3.1.4",
- "wordwrap": "^1.0.0"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- }
- }
- },
"har-schema": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
- "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+ "dev": true
},
"har-validator": {
- "version": "5.1.5",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
- "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
+ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
+ "dev": true,
"requires": {
- "ajv": "^6.12.3",
+ "ajv": "^6.5.5",
"har-schema": "^2.0.0"
}
},
+ "hard-rejection": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
+ "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
+ "dev": true
+ },
"harmony-reflect": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.1.tgz",
@@ -7644,35 +8324,36 @@
"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"
}
},
- "has-binary2": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz",
- "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==",
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
+ },
+ "has-glob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-glob/-/has-glob-1.0.0.tgz",
+ "integrity": "sha1-mqqe7b/7G6OZCnsAEPtnjuAIEgc=",
+ "dev": true,
"requires": {
- "isarray": "2.0.1"
+ "is-glob": "^3.0.0"
},
"dependencies": {
- "isarray": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
- "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
+ "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"
+ }
}
}
},
- "has-cors": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
- "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk="
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
- },
"has-symbols": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
@@ -7681,12 +8362,14 @@
"has-unicode": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
- "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
+ "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",
@@ -7697,6 +8380,7 @@
"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"
@@ -7706,6 +8390,7 @@
"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"
}
@@ -7726,6 +8411,7 @@
"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"
@@ -7743,6 +8429,16 @@
"integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==",
"dev": true
},
+ "highcharts": {
+ "version": "8.2.2",
+ "resolved": "https://registry.npmjs.org/highcharts/-/highcharts-8.2.2.tgz",
+ "integrity": "sha512-F63TXO7RxsvTcpO/KOubQZWualYpCMyCTuKtoWbt7KCsfQ3Kl7Fr6HEyyJdjkYl+XlnmnKlSRi9d3HjLK9Q0wg=="
+ },
+ "highcharts-react-official": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/highcharts-react-official/-/highcharts-react-official-3.0.0.tgz",
+ "integrity": "sha512-VefJgDY2hkT9gfppsQGrRF2g5u8d9dtfHGcx2/xqiP+PkZXCqalw9xOeKVCRvJKTOh0coiDFwvVjOvB7KaGl4A=="
+ },
"history": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/history/-/history-3.3.0.tgz",
@@ -7784,12 +8480,6 @@
"minimalistic-crypto-utils": "^1.0.1"
}
},
- "hoek": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz",
- "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==",
- "dev": true
- },
"hoist-non-react-statics": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
@@ -7798,22 +8488,6 @@
"react-is": "^16.7.0"
}
},
- "home-or-tmp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
- "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
- "dev": true,
- "requires": {
- "os-homedir": "^1.0.0",
- "os-tmpdir": "^1.0.1"
- }
- },
- "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
- },
"hosted-git-info": {
"version": "2.8.8",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz",
@@ -7885,35 +8559,42 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz",
"integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==",
+ "dev": true,
"requires": {
"whatwg-encoding": "^1.0.1"
}
},
"html-entities": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz",
- "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz",
+ "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==",
+ "dev": true
+ },
+ "html-escaper": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
"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==",
+ "html-minifier-terser": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz",
+ "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==",
"dev": true,
"requires": {
- "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"
+ "camel-case": "^4.1.1",
+ "clean-css": "^4.2.3",
+ "commander": "^4.1.1",
+ "he": "^1.2.0",
+ "param-case": "^3.0.3",
+ "relateurl": "^0.2.7",
+ "terser": "^4.6.3"
},
"dependencies": {
"commander": {
- "version": "2.17.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
- "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
+ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
"dev": true
}
}
@@ -7924,17 +8605,16 @@
"integrity": "sha512-kggLXBNciKDwKf+KYsuE+V5gw4dZ7nHyGMX9m0wy7urzWjKGWyNFetmArRLvRV0VrxKN70WylFsJvMTJx02OBQ=="
},
"html-webpack-plugin": {
- "version": "4.0.0-alpha.2",
- "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.0.0-alpha.2.tgz",
- "integrity": "sha512-tyvhjVpuGqD7QYHi1l1drMQTg5i+qRxpQEGbdnYFREgOKy7aFDf/ocQ/V1fuEDlQx7jV2zMap3Hj2nE9i5eGXw==",
+ "version": "4.0.0-beta.11",
+ "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.0.0-beta.11.tgz",
+ "integrity": "sha512-4Xzepf0qWxf8CGg7/WQM5qBB2Lc/NFI7MhU59eUDTkuQp3skZczH4UA1d6oQyDEIoMDgERVhRyTdtUPZ5s5HBg==",
"dev": true,
"requires": {
- "@types/tapable": "1.0.2",
- "html-minifier": "^3.2.3",
- "loader-utils": "^1.1.0",
- "lodash": "^4.17.10",
- "pretty-error": "^2.0.2",
- "tapable": "^1.0.0",
+ "html-minifier-terser": "^5.0.1",
+ "loader-utils": "^1.2.3",
+ "lodash": "^4.17.15",
+ "pretty-error": "^2.1.1",
+ "tapable": "^1.1.3",
"util.promisify": "1.0.0"
},
"dependencies": {
@@ -7982,6 +8662,7 @@
"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",
"inherits": "2.0.3",
@@ -7993,198 +8674,231 @@
"inherits": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
}
}
},
- "http-parser-js": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz",
- "integrity": "sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ==",
- "dev": true
- },
"http-proxy": {
"version": "1.18.1",
"resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
"integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
+ "dev": true,
"requires": {
"eventemitter3": "^4.0.0",
"follow-redirects": "^1.0.0",
"requires-port": "^1.0.0"
}
},
- "http-proxy-middleware": {
- "version": "0.17.4",
- "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz",
- "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=",
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "dev": true,
"requires": {
- "http-proxy": "^1.16.2",
- "is-glob": "^3.1.0",
- "lodash": "^4.17.2",
- "micromatch": "^2.3.11"
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "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
+ },
+ "human-signals": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
+ "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
+ "dev": true
+ },
+ "husky": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.0.tgz",
+ "integrity": "sha512-tTMeLCLqSBqnflBZnlVDhpaIMucSGaYyX6855jM4AguGeWCeSzNdb1mfyWduTZ3pe3SJVvVWGL0jO1iKZVPfTA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.0.0",
+ "ci-info": "^2.0.0",
+ "compare-versions": "^3.6.0",
+ "cosmiconfig": "^7.0.0",
+ "find-versions": "^3.2.0",
+ "opencollective-postinstall": "^2.0.2",
+ "pkg-dir": "^4.2.0",
+ "please-upgrade-node": "^3.2.0",
+ "slash": "^3.0.0",
+ "which-pm-runs": "^1.0.0"
},
"dependencies": {
- "arr-diff": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
- "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
"requires": {
- "arr-flatten": "^1.0.1"
+ "color-convert": "^2.0.1"
}
},
- "array-unique": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
- "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM="
- },
- "braces": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
- "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+ "dev": true,
"requires": {
- "expand-range": "^1.8.1",
- "preserve": "^0.2.0",
- "repeat-element": "^1.1.2"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
}
},
- "expand-brackets": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
- "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
"requires": {
- "is-posix-bracket": "^0.1.0"
+ "color-name": "~1.1.4"
}
},
- "extglob": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
- "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "cosmiconfig": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz",
+ "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==",
+ "dev": true,
"requires": {
- "is-extglob": "^1.0.0"
- },
- "dependencies": {
- "is-extglob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
- }
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.2.1",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.10.0"
}
},
- "is-glob": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
- "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "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": {
- "is-extglob": "^2.1.0"
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
}
},
- "kind-of": {
+ "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
+ },
+ "import-fresh": {
"version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz",
+ "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==",
+ "dev": true,
"requires": {
- "is-buffer": "^1.1.5"
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
}
},
- "micromatch": {
- "version": "2.3.11",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
- "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
- "requires": {
- "arr-diff": "^2.0.0",
- "array-unique": "^0.2.1",
- "braces": "^1.8.2",
- "expand-brackets": "^0.1.4",
- "extglob": "^0.3.1",
- "filename-regex": "^2.0.0",
- "is-extglob": "^1.0.0",
- "is-glob": "^2.0.1",
- "kind-of": "^3.0.2",
- "normalize-path": "^2.0.1",
- "object.omit": "^2.0.0",
- "parse-glob": "^3.0.4",
- "regex-cache": "^0.4.2"
- },
- "dependencies": {
- "is-extglob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
- },
- "is-glob": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
- "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
- "requires": {
- "is-extglob": "^1.0.0"
- }
- }
+ "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"
}
},
- "normalize-path": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
- "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "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": {
- "remove-trailing-separator": "^1.0.1"
+ "p-limit": "^2.2.0"
+ }
+ },
+ "parse-json": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz",
+ "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
+ "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
+ },
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "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"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
}
}
}
},
- "http-signature": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
- "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
- "requires": {
- "assert-plus": "^1.0.0",
- "jsprim": "^1.2.2",
- "sshpk": "^1.7.0"
- }
- },
- "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=",
+ "i": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/i/-/i-0.3.6.tgz",
+ "integrity": "sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0=",
"dev": true
},
- "husky": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/husky/-/husky-1.3.1.tgz",
- "integrity": "sha512-86U6sVVVf4b5NYSZ0yvv88dRgBSSXXmHaiq5pP4KDj5JVzdwKgBjEtUPOm8hcoytezFwbU+7gotXNhpHdystlg==",
- "requires": {
- "cosmiconfig": "^5.0.7",
- "execa": "^1.0.0",
- "find-up": "^3.0.0",
- "get-stdin": "^6.0.0",
- "is-ci": "^2.0.0",
- "pkg-dir": "^3.0.0",
- "please-upgrade-node": "^3.1.1",
- "read-pkg": "^4.0.1",
- "run-node": "^1.0.0",
- "slash": "^2.0.0"
- }
- },
"iconv-lite": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz",
- "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==",
+ "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.0.0"
+ "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=",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz",
+ "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==",
"dev": true,
"requires": {
- "postcss": "^6.0.1"
+ "postcss": "^7.0.14"
}
},
"identity-obj-proxy": {
@@ -8197,9 +8911,9 @@
}
},
"ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
+ "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
},
"iferr": {
"version": "0.1.5",
@@ -8237,6 +8951,7 @@
"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",
"resolve-from": "^3.0.0"
@@ -8252,67 +8967,13 @@
}
},
"import-local": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz",
- "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==",
+ "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": "^2.0.0",
+ "pkg-dir": "^3.0.0",
"resolve-cwd": "^2.0.0"
- },
- "dependencies": {
- "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": {
- "locate-path": "^2.0.0"
- }
- },
- "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",
- "path-exists": "^3.0.0"
- }
- },
- "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"
- }
- },
- "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"
- }
- },
- "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
- },
- "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"
- }
- }
}
},
"imurmurhash": {
@@ -8324,12 +8985,14 @@
"in-publish": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz",
- "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ=="
+ "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==",
+ "dev": true
},
"indent-string": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
- "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok="
+ "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",
@@ -8337,10 +9000,11 @@
"integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
"dev": true
},
- "indexof": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
- "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10="
+ "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
},
"inflight": {
"version": "1.0.6",
@@ -8357,101 +9021,204 @@
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
"dev": true
},
"inquirer": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz",
- "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==",
+ "version": "7.3.3",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz",
+ "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==",
"dev": true,
"requires": {
- "ansi-escapes": "^3.2.0",
- "chalk": "^2.4.2",
- "cli-cursor": "^2.1.0",
- "cli-width": "^2.0.0",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-width": "^3.0.0",
"external-editor": "^3.0.3",
- "figures": "^2.0.0",
- "lodash": "^4.17.12",
- "mute-stream": "0.0.7",
- "run-async": "^2.2.0",
- "rxjs": "^6.4.0",
- "string-width": "^2.1.0",
- "strip-ansi": "^5.1.0",
+ "figures": "^3.0.0",
+ "lodash": "^4.17.19",
+ "mute-stream": "0.0.8",
+ "run-async": "^2.4.0",
+ "rxjs": "^6.6.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0",
"through": "^2.3.6"
},
"dependencies": {
+ "ansi-escapes": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
+ "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.11.0"
+ }
+ },
"ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "^3.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true
},
"figures": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
- "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
"dev": true,
"requires": {
"escape-string-regexp": "^1.0.5"
}
},
+ "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
+ },
"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=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "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
},
+ "onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dev": true,
+ "requires": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
"string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
"dev": true,
"requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
- },
- "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"
- }
- }
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.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==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
"dev": true,
"requires": {
- "ansi-regex": "^4.1.0"
- },
- "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
- }
+ "ansi-regex": "^5.0.0"
+ }
+ },
+ "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"
}
+ },
+ "type-fest": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
+ "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==",
+ "dev": true
}
}
},
+ "insert-css": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/insert-css/-/insert-css-2.0.0.tgz",
+ "integrity": "sha1-610Ql7dUL0x56jBg067gfQU4gPQ="
+ },
"internal-ip": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-3.0.1.tgz",
- "integrity": "sha512-NXXgESC2nNVtU+pqmC9e6R8B1GpKxzsAQhffvh5AL79qKnodd+L7tnEQmTiUAVngqLalPbSqRA7XGIEL5nCd0Q==",
+ "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",
+ "ipaddr.js": "^1.9.0"
+ }
+ },
+ "internal-slot": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz",
+ "integrity": "sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==",
"dev": true,
"requires": {
- "default-gateway": "^2.6.0",
- "ipaddr.js": "^1.5.2"
+ "es-abstract": "^1.17.0-next.1",
+ "has": "^1.0.3",
+ "side-channel": "^1.0.2"
}
},
"invariant": {
@@ -8465,7 +9232,8 @@
"invert-kv": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
- "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
+ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+ "dev": true
},
"ip": {
"version": "1.1.5",
@@ -8482,7 +9250,8 @@
"ipaddr.js": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+ "dev": true
},
"is-absolute-url": {
"version": "2.1.0",
@@ -8494,6 +9263,7 @@
"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"
},
@@ -8502,6 +9272,7 @@
"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"
}
@@ -8509,13 +9280,10 @@
}
},
"is-arguments": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz",
- "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.0"
- }
+ "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",
@@ -8526,6 +9294,7 @@
"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"
}
@@ -8533,17 +9302,19 @@
"is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
- "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
},
"is-callable": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz",
- "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA=="
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz",
+ "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw=="
},
"is-ci": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
"integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
+ "dev": true,
"requires": {
"ci-info": "^2.0.0"
}
@@ -8562,18 +9333,11 @@
"rgba-regex": "^1.0.0"
}
},
- "is-core-module": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz",
- "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==",
- "requires": {
- "has": "^1.0.3"
- }
- },
"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"
},
@@ -8582,6 +9346,7 @@
"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"
}
@@ -8597,6 +9362,7 @@
"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",
@@ -8606,47 +9372,52 @@
"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=="
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
}
}
},
"is-directory": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
- "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE="
+ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
+ "dev": true
},
- "is-dotfile": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
- "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE="
+ "is-docker": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz",
+ "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==",
+ "dev": true
},
- "is-equal-shallow": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
- "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
- "requires": {
- "is-primitive": "^2.0.0"
- }
+ "is-domain": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/is-domain/-/is-domain-0.0.1.tgz",
+ "integrity": "sha1-f/sojVzO1rB8Ty35HJvpFTURNI4=",
+ "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="
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true
},
"is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
},
"is-finite": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz",
- "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w=="
+ "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==",
+ "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"
}
@@ -8657,28 +9428,25 @@
"integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ=="
},
"is-generator-fn": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-1.0.0.tgz",
- "integrity": "sha1-lp1J4bszKfa7fwkIm+JleLLd1Go=",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
+ "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
"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-negative-zero": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
- "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w=="
- },
"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"
},
@@ -8687,6 +9455,7 @@
"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"
}
@@ -8696,36 +9465,14 @@
"is-obj": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
- "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8="
+ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
+ "dev": true
},
- "is-observable": {
+ "is-plain-obj": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz",
- "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==",
- "requires": {
- "symbol-observable": "^1.1.0"
- }
- },
- "is-path-cwd": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
- "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0="
- },
- "is-path-in-cwd": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
- "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
- "requires": {
- "is-path-inside": "^1.0.0"
- }
- },
- "is-path-inside": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
- "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
- "requires": {
- "path-is-inside": "^1.0.1"
- }
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+ "dev": true
},
"is-plain-object": {
"version": "2.0.4",
@@ -8735,25 +9482,15 @@
"isobject": "^3.0.1"
}
},
- "is-posix-bracket": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
- "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q="
- },
- "is-primitive": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
- "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU="
- },
"is-promise": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
"integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="
},
"is-regex": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
- "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz",
+ "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==",
"requires": {
"has-symbols": "^1.0.1"
}
@@ -8761,7 +9498,8 @@
"is-regexp": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
- "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk="
+ "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=",
+ "dev": true
},
"is-resolvable": {
"version": "1.1.0",
@@ -8770,9 +9508,9 @@
"dev": true
},
"is-root": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.0.0.tgz",
- "integrity": "sha512-F/pJIk8QD6OX5DNhRB7hWamLsUilmkDGho48KbgZ6xg/lmAZXHxzXQ91jzB3yRSw5kdQGGGc4yz8HYhTYIMWPg==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz",
+ "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==",
"dev": true
},
"is-stream": {
@@ -8811,17 +9549,20 @@
"is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "dev": true
},
"is-utf8": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
- "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+ "dev": true
},
"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=="
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "dev": true
},
"is-wsl": {
"version": "1.1.0",
@@ -8832,16 +9573,8 @@
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
- },
- "isemail": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz",
- "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==",
- "dev": true,
- "requires": {
- "punycode": "2.x.x"
- }
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
},
"isexe": {
"version": "2.0.0",
@@ -8865,2905 +9598,2425 @@
"isstream": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
- },
- "istanbul-api": {
- "version": "1.3.7",
- "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.7.tgz",
- "integrity": "sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA==",
- "dev": true,
- "requires": {
- "async": "^2.1.4",
- "fileset": "^2.0.2",
- "istanbul-lib-coverage": "^1.2.1",
- "istanbul-lib-hook": "^1.2.2",
- "istanbul-lib-instrument": "^1.10.2",
- "istanbul-lib-report": "^1.1.5",
- "istanbul-lib-source-maps": "^1.2.6",
- "istanbul-reports": "^1.5.1",
- "js-yaml": "^3.7.0",
- "mkdirp": "^0.5.1",
- "once": "^1.4.0"
- }
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+ "dev": true
},
"istanbul-lib-coverage": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz",
- "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==",
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
+ "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==",
"dev": true
},
- "istanbul-lib-hook": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz",
- "integrity": "sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw==",
- "dev": true,
- "requires": {
- "append-transform": "^0.4.0"
- }
- },
"istanbul-lib-instrument": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz",
- "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz",
+ "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==",
"dev": true,
"requires": {
- "babel-generator": "^6.18.0",
- "babel-template": "^6.16.0",
- "babel-traverse": "^6.18.0",
- "babel-types": "^6.18.0",
- "babylon": "^6.18.0",
- "istanbul-lib-coverage": "^1.2.1",
- "semver": "^5.3.0"
+ "@babel/generator": "^7.4.0",
+ "@babel/parser": "^7.4.3",
+ "@babel/template": "^7.4.0",
+ "@babel/traverse": "^7.4.3",
+ "@babel/types": "^7.4.0",
+ "istanbul-lib-coverage": "^2.0.5",
+ "semver": "^6.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
}
},
"istanbul-lib-report": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz",
- "integrity": "sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw==",
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz",
+ "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==",
"dev": true,
"requires": {
- "istanbul-lib-coverage": "^1.2.1",
- "mkdirp": "^0.5.1",
- "path-parse": "^1.0.5",
- "supports-color": "^3.1.2"
+ "istanbul-lib-coverage": "^2.0.5",
+ "make-dir": "^2.1.0",
+ "supports-color": "^6.1.0"
},
"dependencies": {
- "has-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
- "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
- "dev": true
- },
"supports-color": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
- "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "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": "^1.0.0"
+ "has-flag": "^3.0.0"
}
}
}
},
"istanbul-lib-source-maps": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz",
- "integrity": "sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==",
- "dev": true,
- "requires": {
- "debug": "^3.1.0",
- "istanbul-lib-coverage": "^1.2.1",
- "mkdirp": "^0.5.1",
- "rimraf": "^2.6.1",
- "source-map": "^0.5.3"
- }
- },
- "istanbul-reports": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.5.1.tgz",
- "integrity": "sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==",
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz",
+ "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==",
"dev": true,
"requires": {
- "handlebars": "^4.0.3"
- }
- },
- "jalaali-js": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/jalaali-js/-/jalaali-js-1.1.5.tgz",
- "integrity": "sha512-eS+zDRtz2JcGnVPWeng53rzlKU8tX2RWbJ1cqu1+eZHPEh1QL5ydB+pXD4RCf/zE3eKDN2bLQEjY0u/WIewMVQ=="
- },
- "javascript-natural-sort": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz",
- "integrity": "sha1-+eIwPUUH9tdDVac2ZNFED7Wg71k="
- },
- "jest": {
- "version": "23.6.0",
- "resolved": "https://registry.npmjs.org/jest/-/jest-23.6.0.tgz",
- "integrity": "sha512-lWzcd+HSiqeuxyhG+EnZds6iO3Y3ZEnMrfZq/OTGvF/C+Z4fPMCdhWTGSAiO2Oym9rbEXfwddHhh6jqrTF3+Lw==",
- "dev": true,
- "requires": {
- "import-local": "^1.0.0",
- "jest-cli": "^23.6.0"
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^2.0.5",
+ "make-dir": "^2.1.0",
+ "rimraf": "^2.6.3",
+ "source-map": "^0.6.1"
},
"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
+ "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"
+ }
},
- "arr-diff": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
- "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
"dev": true,
"requires": {
- "arr-flatten": "^1.0.1"
+ "glob": "^7.1.3"
}
},
- "array-unique": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
- "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
- },
- "braces": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
- "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+ }
+ }
+ },
+ "istanbul-reports": {
+ "version": "2.2.7",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz",
+ "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==",
+ "dev": true,
+ "requires": {
+ "html-escaper": "^2.0.0"
+ }
+ },
+ "jalaali-js": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/jalaali-js/-/jalaali-js-1.1.0.tgz",
+ "integrity": "sha512-eznOFGRtHb0ttHkHf8pVYPVfKJdbOqutTwcQYACbv91Q2NiYgnM5Z6+NN/8FMAhuMDAXAmeAG9+UBzqVKdA4cg=="
+ },
+ "javascript-natural-sort": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz",
+ "integrity": "sha1-+eIwPUUH9tdDVac2ZNFED7Wg71k="
+ },
+ "jest": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-24.9.0.tgz",
+ "integrity": "sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw==",
+ "dev": true,
+ "requires": {
+ "import-local": "^2.0.0",
+ "jest-cli": "^24.9.0"
+ },
+ "dependencies": {
+ "jest-cli": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz",
+ "integrity": "sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg==",
"dev": true,
"requires": {
- "expand-range": "^1.8.1",
- "preserve": "^0.2.0",
- "repeat-element": "^1.1.2"
+ "@jest/core": "^24.9.0",
+ "@jest/test-result": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "chalk": "^2.0.1",
+ "exit": "^0.1.2",
+ "import-local": "^2.0.0",
+ "is-ci": "^2.0.0",
+ "jest-config": "^24.9.0",
+ "jest-util": "^24.9.0",
+ "jest-validate": "^24.9.0",
+ "prompts": "^2.0.1",
+ "realpath-native": "^1.1.0",
+ "yargs": "^13.3.0"
}
- },
- "camelcase": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
- "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+ }
+ }
+ },
+ "jest-changed-files": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz",
+ "integrity": "sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^24.9.0",
+ "execa": "^1.0.0",
+ "throat": "^4.0.0"
+ }
+ },
+ "jest-config": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-24.9.0.tgz",
+ "integrity": "sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.1.0",
+ "@jest/test-sequencer": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "babel-jest": "^24.9.0",
+ "chalk": "^2.0.1",
+ "glob": "^7.1.1",
+ "jest-environment-jsdom": "^24.9.0",
+ "jest-environment-node": "^24.9.0",
+ "jest-get-type": "^24.9.0",
+ "jest-jasmine2": "^24.9.0",
+ "jest-regex-util": "^24.3.0",
+ "jest-resolve": "^24.9.0",
+ "jest-util": "^24.9.0",
+ "jest-validate": "^24.9.0",
+ "micromatch": "^3.1.10",
+ "pretty-format": "^24.9.0",
+ "realpath-native": "^1.1.0"
+ }
+ },
+ "jest-diff": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz",
+ "integrity": "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.1",
+ "diff-sequences": "^24.9.0",
+ "jest-get-type": "^24.9.0",
+ "pretty-format": "^24.9.0"
+ }
+ },
+ "jest-docblock": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.9.0.tgz",
+ "integrity": "sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA==",
+ "dev": true,
+ "requires": {
+ "detect-newline": "^2.1.0"
+ }
+ },
+ "jest-each": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-24.9.0.tgz",
+ "integrity": "sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^24.9.0",
+ "chalk": "^2.0.1",
+ "jest-get-type": "^24.9.0",
+ "jest-util": "^24.9.0",
+ "pretty-format": "^24.9.0"
+ }
+ },
+ "jest-environment-jsdom": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz",
+ "integrity": "sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA==",
+ "dev": true,
+ "requires": {
+ "@jest/environment": "^24.9.0",
+ "@jest/fake-timers": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "jest-mock": "^24.9.0",
+ "jest-util": "^24.9.0",
+ "jsdom": "^11.5.1"
+ },
+ "dependencies": {
+ "abab": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.4.tgz",
+ "integrity": "sha512-Eu9ELJWCz/c1e9gTiCY+FceWxcqzjYEbqMgtndnuSqZSUCOL73TWNK2mHfIj4Cw2E/ongOp+JISVNCmovt2KYQ==",
"dev": true
},
- "ci-info": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz",
- "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==",
+ "acorn": {
+ "version": "5.7.4",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz",
+ "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==",
"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==",
+ "acorn-globals": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz",
+ "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==",
"dev": true,
"requires": {
- "string-width": "^2.1.1",
- "strip-ansi": "^4.0.0",
- "wrap-ansi": "^2.0.0"
+ "acorn": "^6.0.1",
+ "acorn-walk": "^6.0.1"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
+ "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==",
+ "dev": true
+ }
}
},
- "expand-brackets": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
- "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+ "cssstyle": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz",
+ "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==",
"dev": true,
"requires": {
- "is-posix-bracket": "^0.1.0"
+ "cssom": "0.3.x"
}
},
- "extglob": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
- "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+ "jsdom": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz",
+ "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==",
"dev": true,
"requires": {
- "is-extglob": "^1.0.0"
+ "abab": "^2.0.0",
+ "acorn": "^5.5.3",
+ "acorn-globals": "^4.1.0",
+ "array-equal": "^1.0.0",
+ "cssom": ">= 0.3.2 < 0.4.0",
+ "cssstyle": "^1.0.0",
+ "data-urls": "^1.0.0",
+ "domexception": "^1.0.1",
+ "escodegen": "^1.9.1",
+ "html-encoding-sniffer": "^1.0.2",
+ "left-pad": "^1.3.0",
+ "nwsapi": "^2.0.7",
+ "parse5": "4.0.0",
+ "pn": "^1.1.0",
+ "request": "^2.87.0",
+ "request-promise-native": "^1.0.5",
+ "sax": "^1.2.4",
+ "symbol-tree": "^3.2.2",
+ "tough-cookie": "^2.3.4",
+ "w3c-hr-time": "^1.0.1",
+ "webidl-conversions": "^4.0.2",
+ "whatwg-encoding": "^1.0.3",
+ "whatwg-mimetype": "^2.1.0",
+ "whatwg-url": "^6.4.1",
+ "ws": "^5.2.0",
+ "xml-name-validator": "^3.0.0"
}
},
- "find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "parse5": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz",
+ "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==",
+ "dev": true
+ },
+ "tr46": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
+ "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=",
"dev": true,
"requires": {
- "locate-path": "^2.0.0"
+ "punycode": "^2.1.0"
}
},
- "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
- },
- "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
+ "whatwg-url": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz",
+ "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==",
+ "dev": true,
+ "requires": {
+ "lodash.sortby": "^4.7.0",
+ "tr46": "^1.0.1",
+ "webidl-conversions": "^4.0.2"
+ }
},
- "is-ci": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz",
- "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==",
+ "ws": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz",
+ "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==",
"dev": true,
"requires": {
- "ci-info": "^1.5.0"
+ "async-limiter": "~1.0.0"
}
},
- "is-extglob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+ "xml-name-validator": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
+ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
+ "dev": true
+ }
+ }
+ },
+ "jest-environment-jsdom-fourteen": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/jest-environment-jsdom-fourteen/-/jest-environment-jsdom-fourteen-1.0.1.tgz",
+ "integrity": "sha512-DojMX1sY+at5Ep+O9yME34CdidZnO3/zfPh8UW+918C5fIZET5vCjfkegixmsi7AtdYfkr4bPlIzmWnlvQkP7Q==",
+ "dev": true,
+ "requires": {
+ "@jest/environment": "^24.3.0",
+ "@jest/fake-timers": "^24.3.0",
+ "@jest/types": "^24.3.0",
+ "jest-mock": "^24.0.0",
+ "jest-util": "^24.0.0",
+ "jsdom": "^14.1.0"
+ },
+ "dependencies": {
+ "abab": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.4.tgz",
+ "integrity": "sha512-Eu9ELJWCz/c1e9gTiCY+FceWxcqzjYEbqMgtndnuSqZSUCOL73TWNK2mHfIj4Cw2E/ongOp+JISVNCmovt2KYQ==",
"dev": true
},
- "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=",
+ "acorn": {
+ "version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
+ "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==",
"dev": true
},
- "is-glob": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
- "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "acorn-globals": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz",
+ "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==",
"dev": true,
"requires": {
- "is-extglob": "^1.0.0"
+ "acorn": "^6.0.1",
+ "acorn-walk": "^6.0.1"
}
},
- "jest-cli": {
- "version": "23.6.0",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-23.6.0.tgz",
- "integrity": "sha512-hgeD1zRUp1E1zsiyOXjEn4LzRLWdJBV//ukAHGlx6s5mfCNJTbhbHjgxnDUXA8fsKWN/HqFFF6X5XcCwC/IvYQ==",
+ "cssstyle": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz",
+ "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==",
"dev": true,
"requires": {
- "ansi-escapes": "^3.0.0",
- "chalk": "^2.0.1",
- "exit": "^0.1.2",
- "glob": "^7.1.2",
- "graceful-fs": "^4.1.11",
- "import-local": "^1.0.0",
- "is-ci": "^1.0.10",
- "istanbul-api": "^1.3.1",
- "istanbul-lib-coverage": "^1.2.0",
- "istanbul-lib-instrument": "^1.10.1",
- "istanbul-lib-source-maps": "^1.2.4",
- "jest-changed-files": "^23.4.2",
- "jest-config": "^23.6.0",
- "jest-environment-jsdom": "^23.4.0",
- "jest-get-type": "^22.1.0",
- "jest-haste-map": "^23.6.0",
- "jest-message-util": "^23.4.0",
- "jest-regex-util": "^23.3.0",
- "jest-resolve-dependencies": "^23.6.0",
- "jest-runner": "^23.6.0",
- "jest-runtime": "^23.6.0",
- "jest-snapshot": "^23.6.0",
- "jest-util": "^23.4.0",
- "jest-validate": "^23.6.0",
- "jest-watcher": "^23.4.0",
- "jest-worker": "^23.2.0",
- "micromatch": "^2.3.11",
- "node-notifier": "^5.2.1",
- "prompts": "^0.1.9",
- "realpath-native": "^1.0.0",
- "rimraf": "^2.5.4",
- "slash": "^1.0.0",
- "string-length": "^2.0.0",
- "strip-ansi": "^4.0.0",
- "which": "^1.2.12",
- "yargs": "^11.0.0"
+ "cssom": "0.3.x"
}
},
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "jsdom": {
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-14.1.0.tgz",
+ "integrity": "sha512-O901mfJSuTdwU2w3Sn+74T+RnDVP+FuV5fH8tcPWyqrseRAb0s5xOtPgCFiPOtLcyK7CLIJwPyD83ZqQWvA5ng==",
"dev": true,
"requires": {
- "is-buffer": "^1.1.5"
+ "abab": "^2.0.0",
+ "acorn": "^6.0.4",
+ "acorn-globals": "^4.3.0",
+ "array-equal": "^1.0.0",
+ "cssom": "^0.3.4",
+ "cssstyle": "^1.1.1",
+ "data-urls": "^1.1.0",
+ "domexception": "^1.0.1",
+ "escodegen": "^1.11.0",
+ "html-encoding-sniffer": "^1.0.2",
+ "nwsapi": "^2.1.3",
+ "parse5": "5.1.0",
+ "pn": "^1.1.0",
+ "request": "^2.88.0",
+ "request-promise-native": "^1.0.5",
+ "saxes": "^3.1.9",
+ "symbol-tree": "^3.2.2",
+ "tough-cookie": "^2.5.0",
+ "w3c-hr-time": "^1.0.1",
+ "w3c-xmlserializer": "^1.1.2",
+ "webidl-conversions": "^4.0.2",
+ "whatwg-encoding": "^1.0.5",
+ "whatwg-mimetype": "^2.3.0",
+ "whatwg-url": "^7.0.0",
+ "ws": "^6.1.2",
+ "xml-name-validator": "^3.0.0"
}
},
- "lcid": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
- "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
+ "parse5": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz",
+ "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==",
+ "dev": true
+ },
+ "tr46": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
+ "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=",
"dev": true,
"requires": {
- "invert-kv": "^2.0.0"
+ "punycode": "^2.1.0"
}
},
- "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",
- "path-exists": "^3.0.0"
- }
- },
- "micromatch": {
- "version": "2.3.11",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
- "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
- "dev": true,
- "requires": {
- "arr-diff": "^2.0.0",
- "array-unique": "^0.2.1",
- "braces": "^1.8.2",
- "expand-brackets": "^0.1.4",
- "extglob": "^0.3.1",
- "filename-regex": "^2.0.0",
- "is-extglob": "^1.0.0",
- "is-glob": "^2.0.1",
- "kind-of": "^3.0.2",
- "normalize-path": "^2.0.1",
- "object.omit": "^2.0.0",
- "parse-glob": "^3.0.4",
- "regex-cache": "^0.4.2"
- }
- },
- "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"
- }
- },
- "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",
- "lcid": "^2.0.0",
- "mem": "^4.0.0"
- }
- },
- "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"
- }
- },
- "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"
- }
- },
- "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
- },
- "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
- },
- "slash": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
- "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
- "dev": true
- },
- "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",
- "strip-ansi": "^4.0.0"
- }
- },
- "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"
- }
- },
- "wrap-ansi": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
- "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "whatwg-url": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
+ "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
"dev": true,
"requires": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "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"
- }
- },
- "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",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- }
- },
- "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"
- }
- }
+ "lodash.sortby": "^4.7.0",
+ "tr46": "^1.0.1",
+ "webidl-conversions": "^4.0.2"
}
},
- "y18n": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
- "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
+ "xml-name-validator": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
+ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
"dev": true
- },
- "yargs": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.1.tgz",
- "integrity": "sha512-PRU7gJrJaXv3q3yQZ/+/X6KBswZiaQ+zOmdprZcouPYtQgvNU35i+68M4b1ZHLZtYFT5QObFLV+ZkmJYcwKdiw==",
- "dev": true,
- "requires": {
- "cliui": "^4.0.0",
- "decamelize": "^1.1.1",
- "find-up": "^2.1.0",
- "get-caller-file": "^1.0.1",
- "os-locale": "^3.1.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",
- "yargs-parser": "^9.0.2"
- }
- },
- "yargs-parser": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz",
- "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=",
- "dev": true,
- "requires": {
- "camelcase": "^4.1.0"
- }
}
}
},
- "jest-changed-files": {
- "version": "23.4.2",
- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-23.4.2.tgz",
- "integrity": "sha512-EyNhTAUWEfwnK0Is/09LxoqNDOn7mU7S3EHskG52djOFS/z+IT0jT3h3Ql61+dklcG7bJJitIWEMB4Sp1piHmA==",
+ "jest-environment-node": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.9.0.tgz",
+ "integrity": "sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA==",
"dev": true,
"requires": {
- "throat": "^4.0.0"
+ "@jest/environment": "^24.9.0",
+ "@jest/fake-timers": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "jest-mock": "^24.9.0",
+ "jest-util": "^24.9.0"
}
},
- "jest-config": {
- "version": "23.6.0",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-23.6.0.tgz",
- "integrity": "sha512-i8V7z9BeDXab1+VNo78WM0AtWpBRXJLnkT+lyT+Slx/cbP5sZJ0+NDuLcmBE5hXAoK0aUp7vI+MOxR+R4d8SRQ==",
+ "jest-get-type": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz",
+ "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==",
+ "dev": true
+ },
+ "jest-haste-map": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz",
+ "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==",
"dev": true,
"requires": {
- "babel-core": "^6.0.0",
- "babel-jest": "^23.6.0",
- "chalk": "^2.0.1",
- "glob": "^7.1.1",
- "jest-environment-jsdom": "^23.4.0",
- "jest-environment-node": "^23.4.0",
- "jest-get-type": "^22.1.0",
- "jest-jasmine2": "^23.6.0",
- "jest-regex-util": "^23.3.0",
- "jest-resolve": "^23.6.0",
- "jest-util": "^23.4.0",
- "jest-validate": "^23.6.0",
- "micromatch": "^2.3.11",
- "pretty-format": "^23.6.0"
- },
- "dependencies": {
- "arr-diff": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
- "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
- "dev": true,
- "requires": {
- "arr-flatten": "^1.0.1"
- }
- },
- "array-unique": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
- "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
- "dev": true
- },
- "babel-core": {
- "version": "6.26.3",
- "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz",
- "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==",
- "dev": true,
- "requires": {
- "babel-code-frame": "^6.26.0",
- "babel-generator": "^6.26.0",
- "babel-helpers": "^6.24.1",
- "babel-messages": "^6.23.0",
- "babel-register": "^6.26.0",
- "babel-runtime": "^6.26.0",
- "babel-template": "^6.26.0",
- "babel-traverse": "^6.26.0",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0",
- "convert-source-map": "^1.5.1",
- "debug": "^2.6.9",
- "json5": "^0.5.1",
- "lodash": "^4.17.4",
- "minimatch": "^3.0.4",
- "path-is-absolute": "^1.0.1",
- "private": "^0.1.8",
- "slash": "^1.0.0",
- "source-map": "^0.5.7"
- }
- },
- "braces": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
- "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
- "dev": true,
- "requires": {
- "expand-range": "^1.8.1",
- "preserve": "^0.2.0",
- "repeat-element": "^1.1.2"
- }
- },
- "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"
- }
- },
- "expand-brackets": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
- "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
- "dev": true,
- "requires": {
- "is-posix-bracket": "^0.1.0"
- }
- },
- "extglob": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
- "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
- "dev": true,
- "requires": {
- "is-extglob": "^1.0.0"
- }
- },
- "is-extglob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
- "dev": true
- },
- "is-glob": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
- "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
- "dev": true,
- "requires": {
- "is-extglob": "^1.0.0"
- }
- },
- "json5": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
- "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
- "dev": true
- },
- "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"
- }
- },
- "micromatch": {
- "version": "2.3.11",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
- "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
- "dev": true,
- "requires": {
- "arr-diff": "^2.0.0",
- "array-unique": "^0.2.1",
- "braces": "^1.8.2",
- "expand-brackets": "^0.1.4",
- "extglob": "^0.3.1",
- "filename-regex": "^2.0.0",
- "is-extglob": "^1.0.0",
- "is-glob": "^2.0.1",
- "kind-of": "^3.0.2",
- "normalize-path": "^2.0.1",
- "object.omit": "^2.0.0",
- "parse-glob": "^3.0.4",
- "regex-cache": "^0.4.2"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true
- },
- "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"
- }
- },
- "slash": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
- "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
- "dev": true
- }
+ "@jest/types": "^24.9.0",
+ "anymatch": "^2.0.0",
+ "fb-watchman": "^2.0.0",
+ "fsevents": "^1.2.7",
+ "graceful-fs": "^4.1.15",
+ "invariant": "^2.2.4",
+ "jest-serializer": "^24.9.0",
+ "jest-util": "^24.9.0",
+ "jest-worker": "^24.9.0",
+ "micromatch": "^3.1.10",
+ "sane": "^4.0.3",
+ "walker": "^1.0.7"
}
},
- "jest-diff": {
- "version": "23.6.0",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-23.6.0.tgz",
- "integrity": "sha512-Gz9l5Ov+X3aL5L37IT+8hoCUsof1CVYBb2QEkOupK64XyRR3h+uRpYIm97K7sY8diFxowR8pIGEdyfMKTixo3g==",
+ "jest-jasmine2": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz",
+ "integrity": "sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw==",
"dev": true,
"requires": {
+ "@babel/traverse": "^7.1.0",
+ "@jest/environment": "^24.9.0",
+ "@jest/test-result": "^24.9.0",
+ "@jest/types": "^24.9.0",
"chalk": "^2.0.1",
- "diff": "^3.2.0",
- "jest-get-type": "^22.1.0",
- "pretty-format": "^23.6.0"
+ "co": "^4.6.0",
+ "expect": "^24.9.0",
+ "is-generator-fn": "^2.0.0",
+ "jest-each": "^24.9.0",
+ "jest-matcher-utils": "^24.9.0",
+ "jest-message-util": "^24.9.0",
+ "jest-runtime": "^24.9.0",
+ "jest-snapshot": "^24.9.0",
+ "jest-util": "^24.9.0",
+ "pretty-format": "^24.9.0",
+ "throat": "^4.0.0"
}
},
- "jest-docblock": {
- "version": "23.2.0",
- "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-23.2.0.tgz",
- "integrity": "sha1-8IXh8YVI2Z/dabICB+b9VdkTg6c=",
+ "jest-leak-detector": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz",
+ "integrity": "sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA==",
"dev": true,
"requires": {
- "detect-newline": "^2.1.0"
+ "jest-get-type": "^24.9.0",
+ "pretty-format": "^24.9.0"
}
},
- "jest-each": {
- "version": "23.6.0",
- "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-23.6.0.tgz",
- "integrity": "sha512-x7V6M/WGJo6/kLoissORuvLIeAoyo2YqLOoCDkohgJ4XOXSqOtyvr8FbInlAWS77ojBsZrafbozWoKVRdtxFCg==",
+ "jest-matcher-utils": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz",
+ "integrity": "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==",
"dev": true,
"requires": {
"chalk": "^2.0.1",
- "pretty-format": "^23.6.0"
+ "jest-diff": "^24.9.0",
+ "jest-get-type": "^24.9.0",
+ "pretty-format": "^24.9.0"
}
},
- "jest-environment-jsdom": {
- "version": "23.4.0",
- "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-23.4.0.tgz",
- "integrity": "sha1-BWp5UrP+pROsYqFAosNox52eYCM=",
+ "jest-message-util": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz",
+ "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==",
"dev": true,
"requires": {
- "jest-mock": "^23.2.0",
- "jest-util": "^23.4.0",
- "jsdom": "^11.5.1"
- },
- "dependencies": {
- "abab": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz",
- "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==",
- "dev": true
- },
- "acorn": {
- "version": "5.7.4",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz",
- "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==",
- "dev": true
- },
- "acorn-globals": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz",
- "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==",
- "dev": true,
- "requires": {
- "acorn": "^6.0.1",
- "acorn-walk": "^6.0.1"
- },
- "dependencies": {
- "acorn": {
- "version": "6.4.2",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz",
- "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==",
- "dev": true
- }
- }
- },
- "cssstyle": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz",
- "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==",
- "dev": true,
- "requires": {
- "cssom": "0.3.x"
- }
- },
- "jsdom": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz",
- "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==",
- "dev": true,
- "requires": {
- "abab": "^2.0.0",
- "acorn": "^5.5.3",
- "acorn-globals": "^4.1.0",
- "array-equal": "^1.0.0",
- "cssom": ">= 0.3.2 < 0.4.0",
- "cssstyle": "^1.0.0",
- "data-urls": "^1.0.0",
- "domexception": "^1.0.1",
- "escodegen": "^1.9.1",
- "html-encoding-sniffer": "^1.0.2",
- "left-pad": "^1.3.0",
- "nwsapi": "^2.0.7",
- "parse5": "4.0.0",
- "pn": "^1.1.0",
- "request": "^2.87.0",
- "request-promise-native": "^1.0.5",
- "sax": "^1.2.4",
- "symbol-tree": "^3.2.2",
- "tough-cookie": "^2.3.4",
- "w3c-hr-time": "^1.0.1",
- "webidl-conversions": "^4.0.2",
- "whatwg-encoding": "^1.0.3",
- "whatwg-mimetype": "^2.1.0",
- "whatwg-url": "^6.4.1",
- "ws": "^5.2.0",
- "xml-name-validator": "^3.0.0"
- }
- },
- "parse5": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz",
- "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==",
- "dev": true
- },
- "tr46": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
- "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=",
- "dev": true,
- "requires": {
- "punycode": "^2.1.0"
- }
- },
- "whatwg-url": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz",
- "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==",
- "dev": true,
- "requires": {
- "lodash.sortby": "^4.7.0",
- "tr46": "^1.0.1",
- "webidl-conversions": "^4.0.2"
- }
- },
- "ws": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz",
- "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==",
- "dev": true,
- "requires": {
- "async-limiter": "~1.0.0"
- }
- },
- "xml-name-validator": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
- "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
- "dev": true
- }
+ "@babel/code-frame": "^7.0.0",
+ "@jest/test-result": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "@types/stack-utils": "^1.0.1",
+ "chalk": "^2.0.1",
+ "micromatch": "^3.1.10",
+ "slash": "^2.0.0",
+ "stack-utils": "^1.0.1"
}
},
- "jest-environment-node": {
- "version": "23.4.0",
- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-23.4.0.tgz",
- "integrity": "sha1-V+gO0IQd6jAxZ8zozXlSHeuv3hA=",
+ "jest-mock": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz",
+ "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==",
"dev": true,
"requires": {
- "jest-mock": "^23.2.0",
- "jest-util": "^23.4.0"
+ "@jest/types": "^24.9.0"
}
},
- "jest-get-type": {
- "version": "22.4.3",
- "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.4.3.tgz",
- "integrity": "sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==",
+ "jest-pnp-resolver": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz",
+ "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==",
"dev": true
},
- "jest-haste-map": {
- "version": "23.6.0",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-23.6.0.tgz",
- "integrity": "sha512-uyNhMyl6dr6HaXGHp8VF7cK6KpC6G9z9LiMNsst+rJIZ8l7wY0tk8qwjPmEghczojZ2/ZhtEdIabZ0OQRJSGGg==",
+ "jest-regex-util": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz",
+ "integrity": "sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==",
+ "dev": true
+ },
+ "jest-resolve": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.9.0.tgz",
+ "integrity": "sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ==",
"dev": true,
"requires": {
- "fb-watchman": "^2.0.0",
- "graceful-fs": "^4.1.11",
- "invariant": "^2.2.4",
- "jest-docblock": "^23.2.0",
- "jest-serializer": "^23.0.1",
- "jest-worker": "^23.2.0",
- "micromatch": "^2.3.11",
- "sane": "^2.0.0"
+ "@jest/types": "^24.9.0",
+ "browser-resolve": "^1.11.3",
+ "chalk": "^2.0.1",
+ "jest-pnp-resolver": "^1.2.1",
+ "realpath-native": "^1.1.0"
+ }
+ },
+ "jest-resolve-dependencies": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz",
+ "integrity": "sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^24.9.0",
+ "jest-regex-util": "^24.3.0",
+ "jest-snapshot": "^24.9.0"
+ }
+ },
+ "jest-runner": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.9.0.tgz",
+ "integrity": "sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg==",
+ "dev": true,
+ "requires": {
+ "@jest/console": "^24.7.1",
+ "@jest/environment": "^24.9.0",
+ "@jest/test-result": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "chalk": "^2.4.2",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.1.15",
+ "jest-config": "^24.9.0",
+ "jest-docblock": "^24.3.0",
+ "jest-haste-map": "^24.9.0",
+ "jest-jasmine2": "^24.9.0",
+ "jest-leak-detector": "^24.9.0",
+ "jest-message-util": "^24.9.0",
+ "jest-resolve": "^24.9.0",
+ "jest-runtime": "^24.9.0",
+ "jest-util": "^24.9.0",
+ "jest-worker": "^24.6.0",
+ "source-map-support": "^0.5.6",
+ "throat": "^4.0.0"
+ }
+ },
+ "jest-runtime": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz",
+ "integrity": "sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw==",
+ "dev": true,
+ "requires": {
+ "@jest/console": "^24.7.1",
+ "@jest/environment": "^24.9.0",
+ "@jest/source-map": "^24.3.0",
+ "@jest/transform": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "@types/yargs": "^13.0.0",
+ "chalk": "^2.0.1",
+ "exit": "^0.1.2",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.1.15",
+ "jest-config": "^24.9.0",
+ "jest-haste-map": "^24.9.0",
+ "jest-message-util": "^24.9.0",
+ "jest-mock": "^24.9.0",
+ "jest-regex-util": "^24.3.0",
+ "jest-resolve": "^24.9.0",
+ "jest-snapshot": "^24.9.0",
+ "jest-util": "^24.9.0",
+ "jest-validate": "^24.9.0",
+ "realpath-native": "^1.1.0",
+ "slash": "^2.0.0",
+ "strip-bom": "^3.0.0",
+ "yargs": "^13.3.0"
},
"dependencies": {
- "arr-diff": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
- "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
- "dev": true,
- "requires": {
- "arr-flatten": "^1.0.1"
- }
- },
- "array-unique": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
- "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
- "dev": true
- },
- "braces": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
- "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
- "dev": true,
- "requires": {
- "expand-range": "^1.8.1",
- "preserve": "^0.2.0",
- "repeat-element": "^1.1.2"
- }
- },
- "expand-brackets": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
- "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
- "dev": true,
- "requires": {
- "is-posix-bracket": "^0.1.0"
- }
- },
- "extglob": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
- "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
- "dev": true,
- "requires": {
- "is-extglob": "^1.0.0"
- }
- },
- "is-extglob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
"dev": true
- },
- "is-glob": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
- "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
- "dev": true,
- "requires": {
- "is-extglob": "^1.0.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"
- }
- },
- "micromatch": {
- "version": "2.3.11",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
- "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
- "dev": true,
- "requires": {
- "arr-diff": "^2.0.0",
- "array-unique": "^0.2.1",
- "braces": "^1.8.2",
- "expand-brackets": "^0.1.4",
- "extglob": "^0.3.1",
- "filename-regex": "^2.0.0",
- "is-extglob": "^1.0.0",
- "is-glob": "^2.0.1",
- "kind-of": "^3.0.2",
- "normalize-path": "^2.0.1",
- "object.omit": "^2.0.0",
- "parse-glob": "^3.0.4",
- "regex-cache": "^0.4.2"
- }
- },
- "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"
- }
}
}
},
- "jest-jasmine2": {
- "version": "23.6.0",
- "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-23.6.0.tgz",
- "integrity": "sha512-pe2Ytgs1nyCs8IvsEJRiRTPC0eVYd8L/dXJGU08GFuBwZ4sYH/lmFDdOL3ZmvJR8QKqV9MFuwlsAi/EWkFUbsQ==",
+ "jest-serializer": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz",
+ "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==",
+ "dev": true
+ },
+ "jest-snapshot": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.9.0.tgz",
+ "integrity": "sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==",
"dev": true,
"requires": {
- "babel-traverse": "^6.0.0",
+ "@babel/types": "^7.0.0",
+ "@jest/types": "^24.9.0",
"chalk": "^2.0.1",
- "co": "^4.6.0",
- "expect": "^23.6.0",
- "is-generator-fn": "^1.0.0",
- "jest-diff": "^23.6.0",
- "jest-each": "^23.6.0",
- "jest-matcher-utils": "^23.6.0",
- "jest-message-util": "^23.4.0",
- "jest-snapshot": "^23.6.0",
- "jest-util": "^23.4.0",
- "pretty-format": "^23.6.0"
+ "expect": "^24.9.0",
+ "jest-diff": "^24.9.0",
+ "jest-get-type": "^24.9.0",
+ "jest-matcher-utils": "^24.9.0",
+ "jest-message-util": "^24.9.0",
+ "jest-resolve": "^24.9.0",
+ "mkdirp": "^0.5.1",
+ "natural-compare": "^1.4.0",
+ "pretty-format": "^24.9.0",
+ "semver": "^6.2.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
}
},
- "jest-leak-detector": {
- "version": "23.6.0",
- "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-23.6.0.tgz",
- "integrity": "sha512-f/8zA04rsl1Nzj10HIyEsXvYlMpMPcy0QkQilVZDFOaPbv2ur71X5u2+C4ZQJGyV/xvVXtCCZ3wQ99IgQxftCg==",
+ "jest-util": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz",
+ "integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==",
"dev": true,
"requires": {
- "pretty-format": "^23.6.0"
+ "@jest/console": "^24.9.0",
+ "@jest/fake-timers": "^24.9.0",
+ "@jest/source-map": "^24.9.0",
+ "@jest/test-result": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "callsites": "^3.0.0",
+ "chalk": "^2.0.1",
+ "graceful-fs": "^4.1.15",
+ "is-ci": "^2.0.0",
+ "mkdirp": "^0.5.1",
+ "slash": "^2.0.0",
+ "source-map": "^0.6.0"
+ },
+ "dependencies": {
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
}
},
- "jest-matcher-utils": {
- "version": "23.6.0",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz",
- "integrity": "sha512-rosyCHQfBcol4NsckTn01cdelzWLU9Cq7aaigDf8VwwpIRvWE/9zLgX2bON+FkEW69/0UuYslUe22SOdEf2nog==",
+ "jest-validate": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz",
+ "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==",
"dev": true,
"requires": {
+ "@jest/types": "^24.9.0",
+ "camelcase": "^5.3.1",
"chalk": "^2.0.1",
- "jest-get-type": "^22.1.0",
- "pretty-format": "^23.6.0"
+ "jest-get-type": "^24.9.0",
+ "leven": "^3.1.0",
+ "pretty-format": "^24.9.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ }
}
},
- "jest-message-util": {
- "version": "23.4.0",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-23.4.0.tgz",
- "integrity": "sha1-F2EMUJQjSVCNAaPR4L2iwHkIap8=",
+ "jest-watch-typeahead": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-0.4.2.tgz",
+ "integrity": "sha512-f7VpLebTdaXs81rg/oj4Vg/ObZy2QtGzAmGLNsqUS5G5KtSN68tFcIsbvNODfNyQxU78g7D8x77o3bgfBTR+2Q==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.0.0-beta.35",
- "chalk": "^2.0.1",
- "micromatch": "^2.3.11",
- "slash": "^1.0.0",
- "stack-utils": "^1.0.1"
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^2.4.1",
+ "jest-regex-util": "^24.9.0",
+ "jest-watcher": "^24.3.0",
+ "slash": "^3.0.0",
+ "string-length": "^3.1.0",
+ "strip-ansi": "^5.0.0"
},
"dependencies": {
- "arr-diff": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
- "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+ "ansi-escapes": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
+ "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
"dev": true,
"requires": {
- "arr-flatten": "^1.0.1"
+ "type-fest": "^0.11.0"
}
},
- "array-unique": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
- "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
+ "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
},
- "braces": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
- "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
- "dev": true,
- "requires": {
- "expand-range": "^1.8.1",
- "preserve": "^0.2.0",
- "repeat-element": "^1.1.2"
- }
- },
- "expand-brackets": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
- "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
- "dev": true,
- "requires": {
- "is-posix-bracket": "^0.1.0"
- }
- },
- "extglob": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
- "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
- "dev": true,
- "requires": {
- "is-extglob": "^1.0.0"
- }
- },
- "is-extglob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true
},
- "is-glob": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
- "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "string-length": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-length/-/string-length-3.1.0.tgz",
+ "integrity": "sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==",
"dev": true,
"requires": {
- "is-extglob": "^1.0.0"
+ "astral-regex": "^1.0.0",
+ "strip-ansi": "^5.2.0"
}
},
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "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": {
- "is-buffer": "^1.1.5"
- }
- },
- "micromatch": {
- "version": "2.3.11",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
- "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
- "dev": true,
- "requires": {
- "arr-diff": "^2.0.0",
- "array-unique": "^0.2.1",
- "braces": "^1.8.2",
- "expand-brackets": "^0.1.4",
- "extglob": "^0.3.1",
- "filename-regex": "^2.0.0",
- "is-extglob": "^1.0.0",
- "is-glob": "^2.0.1",
- "kind-of": "^3.0.2",
- "normalize-path": "^2.0.1",
- "object.omit": "^2.0.0",
- "parse-glob": "^3.0.4",
- "regex-cache": "^0.4.2"
+ "ansi-regex": "^4.1.0"
}
},
- "normalize-path": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
- "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "type-fest": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
+ "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==",
+ "dev": true
+ }
+ }
+ },
+ "jest-watcher": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.9.0.tgz",
+ "integrity": "sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw==",
+ "dev": true,
+ "requires": {
+ "@jest/test-result": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "@types/yargs": "^13.0.0",
+ "ansi-escapes": "^3.0.0",
+ "chalk": "^2.0.1",
+ "jest-util": "^24.9.0",
+ "string-length": "^2.0.0"
+ }
+ },
+ "jest-worker": {
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz",
+ "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==",
+ "dev": true,
+ "requires": {
+ "merge-stream": "^2.0.0",
+ "supports-color": "^6.1.0"
+ },
+ "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": {
- "remove-trailing-separator": "^1.0.1"
+ "has-flag": "^3.0.0"
}
- },
- "slash": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
- "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
- "dev": true
}
}
},
- "jest-mock": {
- "version": "23.2.0",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-23.2.0.tgz",
- "integrity": "sha1-rRxg8p6HGdR8JuETgJi20YsmETQ=",
+ "js-base64": {
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz",
+ "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==",
"dev": true
},
- "jest-pnp-resolver": {
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ },
+ "js-yaml": {
+ "version": "3.14.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz",
+ "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "dev": true
+ },
+ "jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "dev": true
+ },
+ "json-parse-better-errors": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.0.2.tgz",
- "integrity": "sha512-H2DvUlwdMedNGv4FOliPDnxani6ATWy70xe2eckGJgkLoMaWzRPqpSlc5ShqX0Ltk5OhRQvPQY2LLZPOpgcc7g==",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
+ },
+ "json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
"dev": true
},
- "jest-regex-util": {
- "version": "23.3.0",
- "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-23.3.0.tgz",
- "integrity": "sha1-X4ZylUfCeFxAAs6qj4Sf6MpHG8U=",
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
"dev": true
},
- "jest-resolve": {
- "version": "23.6.0",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-23.6.0.tgz",
- "integrity": "sha512-XyoRxNtO7YGpQDmtQCmZjum1MljDqUCob7XlZ6jy9gsMugHdN2hY4+Acz9Qvjz2mSsOnPSH7skBmDYCHXVZqkA==",
+ "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==",
+ "dev": true
+ },
+ "json-stable-stringify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
+ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
"dev": true,
"requires": {
- "browser-resolve": "^1.11.3",
- "chalk": "^2.0.1",
- "realpath-native": "^1.0.0"
+ "jsonify": "~0.0.0"
}
},
- "jest-resolve-dependencies": {
- "version": "23.6.0",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-23.6.0.tgz",
- "integrity": "sha512-EkQWkFWjGKwRtRyIwRwI6rtPAEyPWlUC2MpzHissYnzJeHcyCn1Hc8j7Nn1xUVrS5C6W5+ZL37XTem4D4pLZdA==",
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
+ "dev": true
+ },
+ "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="
+ },
+ "json2mq": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz",
+ "integrity": "sha1-tje9O6nqvhIsg+lyBIOusQ0skEo=",
+ "requires": {
+ "string-convert": "^0.2.0"
+ }
+ },
+ "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": "2.1.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz",
+ "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==",
"dev": true,
"requires": {
- "jest-regex-util": "^23.3.0",
- "jest-snapshot": "^23.6.0"
+ "minimist": "^1.2.5"
}
},
- "jest-runner": {
- "version": "23.6.0",
- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-23.6.0.tgz",
- "integrity": "sha512-kw0+uj710dzSJKU6ygri851CObtCD9cN8aNkg8jWJf4ewFyEa6kwmiH/r/M1Ec5IL/6VFa0wnAk6w+gzUtjJzA==",
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
"dev": true,
"requires": {
- "exit": "^0.1.2",
- "graceful-fs": "^4.1.11",
- "jest-config": "^23.6.0",
- "jest-docblock": "^23.2.0",
- "jest-haste-map": "^23.6.0",
- "jest-jasmine2": "^23.6.0",
- "jest-leak-detector": "^23.6.0",
- "jest-message-util": "^23.4.0",
- "jest-runtime": "^23.6.0",
- "jest-util": "^23.4.0",
- "jest-worker": "^23.2.0",
- "source-map-support": "^0.5.6",
- "throat": "^4.0.0"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- },
- "source-map-support": {
- "version": "0.5.19",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
- "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
- "dev": true,
- "requires": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- }
+ "graceful-fs": "^4.1.6"
}
},
- "jest-runtime": {
- "version": "23.6.0",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-23.6.0.tgz",
- "integrity": "sha512-ycnLTNPT2Gv+TRhnAYAQ0B3SryEXhhRj1kA6hBPSeZaNQkJ7GbZsxOLUkwg6YmvWGdX3BB3PYKFLDQCAE1zNOw==",
+ "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=",
"dev": true,
"requires": {
- "babel-core": "^6.0.0",
- "babel-plugin-istanbul": "^4.1.6",
- "chalk": "^2.0.1",
- "convert-source-map": "^1.4.0",
- "exit": "^0.1.2",
- "fast-json-stable-stringify": "^2.0.0",
- "graceful-fs": "^4.1.11",
- "jest-config": "^23.6.0",
- "jest-haste-map": "^23.6.0",
- "jest-message-util": "^23.4.0",
- "jest-regex-util": "^23.3.0",
- "jest-resolve": "^23.6.0",
- "jest-snapshot": "^23.6.0",
- "jest-util": "^23.4.0",
- "jest-validate": "^23.6.0",
- "micromatch": "^2.3.11",
- "realpath-native": "^1.0.0",
- "slash": "^1.0.0",
- "strip-bom": "3.0.0",
- "write-file-atomic": "^2.1.0",
- "yargs": "^11.0.0"
- },
- "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
- },
- "arr-diff": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
- "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
- "dev": true,
- "requires": {
- "arr-flatten": "^1.0.1"
- }
- },
- "array-unique": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
- "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
- "dev": true
- },
- "babel-core": {
- "version": "6.26.3",
- "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz",
- "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==",
- "dev": true,
- "requires": {
- "babel-code-frame": "^6.26.0",
- "babel-generator": "^6.26.0",
- "babel-helpers": "^6.24.1",
- "babel-messages": "^6.23.0",
- "babel-register": "^6.26.0",
- "babel-runtime": "^6.26.0",
- "babel-template": "^6.26.0",
- "babel-traverse": "^6.26.0",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0",
- "convert-source-map": "^1.5.1",
- "debug": "^2.6.9",
- "json5": "^0.5.1",
- "lodash": "^4.17.4",
- "minimatch": "^3.0.4",
- "path-is-absolute": "^1.0.1",
- "private": "^0.1.8",
- "slash": "^1.0.0",
- "source-map": "^0.5.7"
- }
- },
- "braces": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
- "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
- "dev": true,
- "requires": {
- "expand-range": "^1.8.1",
- "preserve": "^0.2.0",
- "repeat-element": "^1.1.2"
- }
- },
- "camelcase": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
- "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
- "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",
- "strip-ansi": "^4.0.0",
- "wrap-ansi": "^2.0.0"
- }
- },
- "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"
- }
- },
- "expand-brackets": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
- "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
- "dev": true,
- "requires": {
- "is-posix-bracket": "^0.1.0"
- }
- },
- "extglob": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
- "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
- "dev": true,
- "requires": {
- "is-extglob": "^1.0.0"
- }
- },
- "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": {
- "locate-path": "^2.0.0"
- }
- },
- "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
- },
- "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
- },
- "is-extglob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
- "dev": true
- },
- "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": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
- "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ }
+ },
+ "jssha": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/jssha/-/jssha-2.3.1.tgz",
+ "integrity": "sha1-FHshJTaQNcpLL30hDcU58Amz3po="
+ },
+ "jsx-ast-utils": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz",
+ "integrity": "sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==",
+ "dev": true,
+ "requires": {
+ "array-includes": "^3.1.1",
+ "object.assign": "^4.1.0"
+ }
+ },
+ "junk": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz",
+ "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==",
+ "dev": true
+ },
+ "jwt-decode": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-2.2.0.tgz",
+ "integrity": "sha1-fYa9VmefWM5qhHBKZX3TkruoGnk="
+ },
+ "keycode": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.0.tgz",
+ "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ="
+ },
+ "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.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true
+ },
+ "kleur": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
+ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
+ "dev": true
+ },
+ "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",
+ "webpack-sources": "^1.1.0"
+ }
+ },
+ "lazy-cache": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
+ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
+ "dev": true
+ },
+ "lcid": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
+ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+ "dev": true,
+ "requires": {
+ "invert-kv": "^1.0.0"
+ }
+ },
+ "left-pad": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz",
+ "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==",
+ "dev": true
+ },
+ "leven": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
+ "dev": true
+ },
+ "levenary": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz",
+ "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==",
+ "dev": true,
+ "requires": {
+ "leven": "^3.1.0"
+ }
+ },
+ "levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ }
+ },
+ "line-height": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/line-height/-/line-height-0.3.1.tgz",
+ "integrity": "sha1-SxIF7d4YKHKl76PI9iCzGHqcVMk=",
+ "requires": {
+ "computed-style": "~0.1.3"
+ }
+ },
+ "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=",
+ "dev": true
+ },
+ "linkify-it": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz",
+ "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==",
+ "requires": {
+ "uc.micro": "^1.0.1"
+ }
+ },
+ "lint-staged": {
+ "version": "10.5.1",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.1.tgz",
+ "integrity": "sha512-fTkTGFtwFIJJzn/PbUO3RXyEBHIhbfYBE7+rJyLcOXabViaO/h6OslgeK6zpeUtzkDrzkgyAYDTLAwx6JzDTHw==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.1.0",
+ "cli-truncate": "^2.1.0",
+ "commander": "^6.2.0",
+ "cosmiconfig": "^7.0.0",
+ "debug": "^4.2.0",
+ "dedent": "^0.7.0",
+ "enquirer": "^2.3.6",
+ "execa": "^4.1.0",
+ "listr2": "^3.2.2",
+ "log-symbols": "^4.0.0",
+ "micromatch": "^4.0.2",
+ "normalize-path": "^3.0.0",
+ "please-upgrade-node": "^3.2.0",
+ "string-argv": "0.3.1",
+ "stringify-object": "^3.3.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"requires": {
- "is-extglob": "^1.0.0"
+ "color-convert": "^2.0.1"
}
},
- "json5": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
- "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
- "dev": true
- },
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
"requires": {
- "is-buffer": "^1.1.5"
+ "fill-range": "^7.0.1"
}
},
- "lcid": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
- "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
"dev": true,
"requires": {
- "invert-kv": "^2.0.0"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
}
},
- "locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"requires": {
- "p-locate": "^2.0.0",
- "path-exists": "^3.0.0"
+ "color-name": "~1.1.4"
}
},
- "micromatch": {
- "version": "2.3.11",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
- "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
- "dev": true,
- "requires": {
- "arr-diff": "^2.0.0",
- "array-unique": "^0.2.1",
- "braces": "^1.8.2",
- "expand-brackets": "^0.1.4",
- "extglob": "^0.3.1",
- "filename-regex": "^2.0.0",
- "is-extglob": "^1.0.0",
- "is-glob": "^2.0.1",
- "kind-of": "^3.0.2",
- "normalize-path": "^2.0.1",
- "object.omit": "^2.0.0",
- "parse-glob": "^3.0.4",
- "regex-cache": "^0.4.2"
- }
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
},
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "commander": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz",
+ "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==",
"dev": true
},
- "normalize-path": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
- "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "cosmiconfig": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz",
+ "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==",
"dev": true,
"requires": {
- "remove-trailing-separator": "^1.0.1"
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.2.1",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.10.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==",
+ "cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
"dev": true,
"requires": {
- "execa": "^1.0.0",
- "lcid": "^2.0.0",
- "mem": "^4.0.0"
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
}
},
- "p-limit": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "debug": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
+ "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
"dev": true,
"requires": {
- "p-try": "^1.0.0"
+ "ms": "2.1.2"
}
},
- "p-locate": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "execa": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz",
+ "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==",
"dev": true,
"requires": {
- "p-limit": "^1.1.0"
+ "cross-spawn": "^7.0.0",
+ "get-stream": "^5.0.0",
+ "human-signals": "^1.1.1",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.0",
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2",
+ "strip-final-newline": "^2.0.0"
}
},
- "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
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
},
- "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
+ "get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
},
- "slash": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
- "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+ "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
},
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "import-fresh": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz",
+ "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==",
"dev": true,
"requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
}
},
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "is-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
+ "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+ "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
"dev": true,
"requires": {
- "ansi-regex": "^3.0.0"
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
}
},
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "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
},
- "wrap-ansi": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
- "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
"dev": true,
"requires": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "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"
- }
- },
- "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",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- }
- },
- "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"
- }
- }
+ "path-key": "^3.0.0"
}
},
- "y18n": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
- "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
+ "onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "parse-json": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz",
+ "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"dev": true
},
- "yargs": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.1.tgz",
- "integrity": "sha512-PRU7gJrJaXv3q3yQZ/+/X6KBswZiaQ+zOmdprZcouPYtQgvNU35i+68M4b1ZHLZtYFT5QObFLV+ZkmJYcwKdiw==",
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"dev": true,
"requires": {
- "cliui": "^4.0.0",
- "decamelize": "^1.1.1",
- "find-up": "^2.1.0",
- "get-caller-file": "^1.0.1",
- "os-locale": "^3.1.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",
- "yargs-parser": "^9.0.2"
+ "shebang-regex": "^3.0.0"
}
},
- "yargs-parser": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz",
- "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=",
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
"requires": {
- "camelcase": "^4.1.0"
+ "isexe": "^2.0.0"
}
}
}
},
- "jest-serializer": {
- "version": "23.0.1",
- "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-23.0.1.tgz",
- "integrity": "sha1-o3dq6zEekP6D+rnlM+hRAr0WQWU=",
- "dev": true
- },
- "jest-snapshot": {
- "version": "23.6.0",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-23.6.0.tgz",
- "integrity": "sha512-tM7/Bprftun6Cvj2Awh/ikS7zV3pVwjRYU2qNYS51VZHgaAMBs5l4o/69AiDHhQrj5+LA2Lq4VIvK7zYk/bswg==",
- "dev": true,
- "requires": {
- "babel-types": "^6.0.0",
- "chalk": "^2.0.1",
- "jest-diff": "^23.6.0",
- "jest-matcher-utils": "^23.6.0",
- "jest-message-util": "^23.4.0",
- "jest-resolve": "^23.6.0",
- "mkdirp": "^0.5.1",
- "natural-compare": "^1.4.0",
- "pretty-format": "^23.6.0",
- "semver": "^5.5.0"
- }
- },
- "jest-util": {
- "version": "23.4.0",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-23.4.0.tgz",
- "integrity": "sha1-TQY8uSe68KI4Mf9hvsLLv0l5NWE=",
+ "listr2": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.2.2.tgz",
+ "integrity": "sha512-AajqcZEUikF2ioph6PfH3dIuxJclhr3i3kHgTOP0xeXdWQohrvJAAmqVcV43/GI987HFY/vzT73jYXoa4esDHg==",
"dev": true,
"requires": {
- "callsites": "^2.0.0",
- "chalk": "^2.0.1",
- "graceful-fs": "^4.1.11",
- "is-ci": "^1.0.10",
- "jest-message-util": "^23.4.0",
- "mkdirp": "^0.5.1",
- "slash": "^1.0.0",
- "source-map": "^0.6.0"
+ "chalk": "^4.1.0",
+ "cli-truncate": "^2.1.0",
+ "figures": "^3.2.0",
+ "indent-string": "^4.0.0",
+ "log-update": "^4.0.0",
+ "p-map": "^4.0.0",
+ "rxjs": "^6.6.3",
+ "through": "^2.3.8"
},
"dependencies": {
- "ci-info": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz",
- "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==",
- "dev": true
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
},
- "is-ci": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz",
- "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==",
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"requires": {
- "ci-info": "^1.5.0"
+ "color-name": "~1.1.4"
}
},
- "slash": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
- "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "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
+ },
+ "rxjs": {
+ "version": "6.6.3",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz",
+ "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.9.0"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
}
}
},
- "jest-validate": {
- "version": "23.6.0",
- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-23.6.0.tgz",
- "integrity": "sha512-OFKapYxe72yz7agrDAWi8v2WL8GIfVqcbKRCLbRG9PAxtzF9b1SEDdTpytNDN12z2fJynoBwpMpvj2R39plI2A==",
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
"dev": true,
"requires": {
- "chalk": "^2.0.1",
- "jest-get-type": "^22.1.0",
- "leven": "^2.1.0",
- "pretty-format": "^23.6.0"
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "strip-bom": "^2.0.0"
+ },
+ "dependencies": {
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.2.0"
+ }
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ }
}
},
- "jest-watch-typeahead": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-0.2.1.tgz",
- "integrity": "sha512-xdhEtKSj0gmnkDQbPTIHvcMmXNUDzYpHLEJ5TFqlaI+schi2NI96xhWiZk9QoesAS7oBmKwWWsHazTrYl2ORgg==",
+ "loader-fs-cache": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz",
+ "integrity": "sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==",
"dev": true,
"requires": {
- "ansi-escapes": "^3.0.0",
- "chalk": "^2.4.1",
- "jest-watcher": "^23.1.0",
- "slash": "^2.0.0",
- "string-length": "^2.0.0",
- "strip-ansi": "^5.0.0"
+ "find-cache-dir": "^0.1.1",
+ "mkdirp": "^0.5.1"
},
"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-cache-dir": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz",
+ "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=",
+ "dev": true,
+ "requires": {
+ "commondir": "^1.0.1",
+ "mkdirp": "^0.5.1",
+ "pkg-dir": "^1.0.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==",
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
"dev": true,
"requires": {
- "ansi-regex": "^4.1.0"
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "pkg-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
+ "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
+ "dev": true,
+ "requires": {
+ "find-up": "^1.0.0"
}
}
}
},
- "jest-watcher": {
- "version": "23.4.0",
- "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-23.4.0.tgz",
- "integrity": "sha1-0uKM50+NrWxq/JIrksq+9u0FyRw=",
- "dev": true,
- "requires": {
- "ansi-escapes": "^3.0.0",
- "chalk": "^2.0.1",
- "string-length": "^2.0.0"
- }
+ "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
},
- "jest-worker": {
- "version": "23.2.0",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-23.2.0.tgz",
- "integrity": "sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk=",
+ "loader-utils": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
+ "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
"dev": true,
"requires": {
- "merge-stream": "^1.0.1"
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "dependencies": {
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ }
}
},
- "joi": {
- "version": "11.4.0",
- "resolved": "https://registry.npmjs.org/joi/-/joi-11.4.0.tgz",
- "integrity": "sha512-O7Uw+w/zEWgbL6OcHbyACKSj0PkQeUgmehdoXVSxt92QFCq4+1390Rwh5moI2K/OgC7D8RHRZqHZxT2husMJHA==",
+ "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": {
- "hoek": "4.x.x",
- "isemail": "3.x.x",
- "topo": "2.x.x"
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
}
},
- "js-base64": {
- "version": "2.6.4",
- "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz",
- "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ=="
+ "lodash": {
+ "version": "4.17.19",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+ "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ=="
},
- "js-levenshtein": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz",
- "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==",
+ "lodash-es": {
+ "version": "4.17.15",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.15.tgz",
+ "integrity": "sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ=="
+ },
+ "lodash._reinterpolate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+ "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=",
"dev": true
},
- "js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ "lodash.camelcase": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
+ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY="
},
- "js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "requires": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- }
+ "lodash.debounce": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168="
},
- "jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
- },
- "jsdom": {
- "version": "9.12.0",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz",
- "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=",
- "requires": {
- "abab": "^1.0.3",
- "acorn": "^4.0.4",
- "acorn-globals": "^3.1.0",
- "array-equal": "^1.0.0",
- "content-type-parser": "^1.0.1",
- "cssom": ">= 0.3.2 < 0.4.0",
- "cssstyle": ">= 0.2.37 < 0.3.0",
- "escodegen": "^1.6.1",
- "html-encoding-sniffer": "^1.0.1",
- "nwmatcher": ">= 1.3.9 < 2.0.0",
- "parse5": "^1.5.1",
- "request": "^2.79.0",
- "sax": "^1.2.1",
- "symbol-tree": "^3.2.1",
- "tough-cookie": "^2.3.2",
- "webidl-conversions": "^4.0.0",
- "whatwg-encoding": "^1.0.1",
- "whatwg-url": "^4.3.0",
- "xml-name-validator": "^2.0.1"
- }
+ "lodash.flattendeep": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
+ "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI="
},
- "jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "dev": true
+ "lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA="
},
- "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=="
+ "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
},
- "json-schema": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
- "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
+ "lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
},
- "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=="
+ "lodash.sortby": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
+ "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
+ "dev": true
},
- "json-stable-stringify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
- "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
+ "lodash.template": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz",
+ "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==",
"dev": true,
"requires": {
- "jsonify": "~0.0.0"
+ "lodash._reinterpolate": "^3.0.0",
+ "lodash.templatesettings": "^4.0.0"
}
},
- "json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
- "dev": true
- },
- "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="
- },
- "json2mq": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz",
- "integrity": "sha1-tje9O6nqvhIsg+lyBIOusQ0skEo=",
+ "lodash.templatesettings": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz",
+ "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==",
+ "dev": true,
"requires": {
- "string-convert": "^0.2.0"
+ "lodash._reinterpolate": "^3.0.0"
}
},
- "json3": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz",
- "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==",
+ "lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
"dev": true
},
- "json5": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz",
- "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==",
+ "lodash.upperfirst": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz",
+ "integrity": "sha1-E2Xt9DFIBIHvDRxolXpe2Z1J984="
+ },
+ "log-symbols": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz",
+ "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==",
"dev": true,
"requires": {
- "minimist": "^1.2.5"
+ "chalk": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "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.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
}
},
- "jsonfile": {
+ "log-update": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz",
+ "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.6"
+ "ansi-escapes": "^4.3.0",
+ "cli-cursor": "^3.1.0",
+ "slice-ansi": "^4.0.0",
+ "wrap-ansi": "^6.2.0"
+ },
+ "dependencies": {
+ "ansi-escapes": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
+ "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.11.0"
+ }
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "dev": true
+ },
+ "cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "^3.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "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
+ },
+ "onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dev": true,
+ "requires": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ }
+ },
+ "type-fest": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
+ "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==",
+ "dev": true
+ }
}
},
- "jsonify": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
- "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
+ "loglevel": {
+ "version": "1.6.8",
+ "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz",
+ "integrity": "sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==",
"dev": true
},
- "jsprim": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
- "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "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": {
- "assert-plus": "1.0.0",
- "extsprintf": "1.3.0",
- "json-schema": "0.2.3",
- "verror": "1.10.0"
+ "js-tokens": "^3.0.0 || ^4.0.0"
}
},
- "jssha": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/jssha/-/jssha-2.3.1.tgz",
- "integrity": "sha1-FHshJTaQNcpLL30hDcU58Amz3po="
- },
- "jsx-ast-utils": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz",
- "integrity": "sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==",
+ "loud-rejection": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
"dev": true,
"requires": {
- "array-includes": "^3.1.1",
- "object.assign": "^4.1.0"
+ "currently-unhandled": "^0.4.1",
+ "signal-exit": "^3.0.0"
}
},
- "jwt-decode": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-2.2.0.tgz",
- "integrity": "sha1-fYa9VmefWM5qhHBKZX3TkruoGnk="
- },
- "keycode": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.0.tgz",
- "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ="
- },
- "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.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
- },
- "kleur": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-2.0.2.tgz",
- "integrity": "sha512-77XF9iTllATmG9lSlIv0qdQ2BQ/h9t0bJllHlbvsQ0zUWfU7Yi0S8L5JXzPZgkefIiajLmBJJ4BsMJmqcf7oxQ==",
- "dev": true
- },
- "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==",
+ "lower-case": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz",
+ "integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==",
"dev": true,
"requires": {
- "lodash": "^4.17.5",
- "webpack-sources": "^1.1.0"
+ "tslib": "^1.10.0"
}
},
- "lazy-cache": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
- "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
- "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",
+ "yallist": "^2.1.2"
+ }
},
- "lcid": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
- "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+ "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": {
- "invert-kv": "^1.0.0"
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true
+ }
}
},
- "left-pad": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz",
- "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==",
+ "makeerror": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz",
+ "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=",
+ "dev": true,
+ "requires": {
+ "tmpl": "1.0.x"
+ }
+ },
+ "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
},
- "leven": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
- "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=",
+ "map-cache": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
"dev": true
},
- "levn": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
- "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
- "requires": {
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2"
- }
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ "dev": true
},
- "line-height": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/line-height/-/line-height-0.3.1.tgz",
- "integrity": "sha1-SxIF7d4YKHKl76PI9iCzGHqcVMk=",
+ "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": {
- "computed-style": "~0.1.3"
+ "object-visit": "^1.0.0"
}
},
- "linkify-it": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz",
- "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==",
+ "mathjs": {
+ "version": "5.10.3",
+ "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-5.10.3.tgz",
+ "integrity": "sha512-ySjg30BC3dYjQm73ILZtwcWzFJde0VU6otkXW/57IjjuYRa3Qaf0Kb8pydEuBZYtqW2OxreAtsricrAmOj3jIw==",
"requires": {
- "uc.micro": "^1.0.1"
+ "complex.js": "2.0.11",
+ "decimal.js": "10.2.0",
+ "escape-latex": "1.2.0",
+ "fraction.js": "4.0.12",
+ "javascript-natural-sort": "0.7.1",
+ "seed-random": "2.2.0",
+ "tiny-emitter": "2.1.0",
+ "typed-function": "1.1.0"
}
},
- "lint-staged": {
- "version": "8.2.1",
- "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-8.2.1.tgz",
- "integrity": "sha512-n0tDGR/rTCgQNwXnUf/eWIpPNddGWxC32ANTNYsj2k02iZb7Cz5ox2tytwBu+2r0zDXMEMKw7Y9OD/qsav561A==",
+ "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": {
- "chalk": "^2.3.1",
- "commander": "^2.14.1",
- "cosmiconfig": "^5.2.0",
- "debug": "^3.1.0",
- "dedent": "^0.7.0",
- "del": "^3.0.0",
- "execa": "^1.0.0",
- "g-status": "^2.0.2",
- "is-glob": "^4.0.0",
- "is-windows": "^1.0.2",
- "listr": "^0.14.2",
- "listr-update-renderer": "^0.5.0",
- "lodash": "^4.17.11",
- "log-symbols": "^2.2.0",
- "micromatch": "^3.1.8",
- "npm-which": "^3.0.1",
- "p-map": "^1.1.1",
- "path-is-inside": "^1.0.2",
- "pify": "^3.0.0",
- "please-upgrade-node": "^3.0.2",
- "staged-git-files": "1.1.2",
- "string-argv": "^0.0.2",
- "stringify-object": "^3.2.2",
- "yup": "^0.27.0"
- }
- },
- "listr": {
- "version": "0.14.3",
- "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz",
- "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==",
- "requires": {
- "@samverschueren/stream-to-observable": "^0.3.0",
- "is-observable": "^1.1.0",
- "is-promise": "^2.1.0",
- "is-stream": "^1.1.0",
- "listr-silent-renderer": "^1.1.1",
- "listr-update-renderer": "^0.5.0",
- "listr-verbose-renderer": "^0.5.0",
- "p-map": "^2.0.0",
- "rxjs": "^6.3.3"
- },
- "dependencies": {
- "p-map": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
- "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw=="
- }
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
}
},
- "listr-silent-renderer": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz",
- "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4="
+ "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
},
- "listr-update-renderer": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz",
- "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==",
+ "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
+ },
+ "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": {
- "chalk": "^1.1.3",
- "cli-truncate": "^0.2.1",
- "elegant-spinner": "^1.0.1",
- "figures": "^1.7.0",
- "indent-string": "^3.0.0",
- "log-symbols": "^1.0.2",
- "log-update": "^2.3.0",
- "strip-ansi": "^3.0.1"
+ "errno": "^0.1.3",
+ "readable-stream": "^2.0.1"
},
"dependencies": {
- "ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
- },
- "chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "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==",
+ "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"
+ "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"
}
},
- "log-symbols": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz",
- "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
- "requires": {
- "chalk": "^1.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
},
- "supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
- }
- }
- },
- "listr-verbose-renderer": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz",
- "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==",
- "requires": {
- "chalk": "^2.4.1",
- "cli-cursor": "^2.1.0",
- "date-fns": "^1.27.2",
- "figures": "^2.0.0"
- },
- "dependencies": {
- "figures": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
- "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+ "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==",
+ "dev": true,
"requires": {
- "escape-string-regexp": "^1.0.5"
+ "safe-buffer": "~5.1.0"
}
}
}
},
- "load-json-file": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
- "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "memorystream": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
+ "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI="
+ },
+ "meow": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+ "dev": true,
"requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^2.2.0",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0",
- "strip-bom": "^2.0.0"
- },
- "dependencies": {
- "parse-json": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
- "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
- "requires": {
- "error-ex": "^1.2.0"
- }
- },
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
- }
+ "camelcase-keys": "^2.0.0",
+ "decamelize": "^1.1.2",
+ "loud-rejection": "^1.0.0",
+ "map-obj": "^1.0.1",
+ "minimist": "^1.1.3",
+ "normalize-package-data": "^2.3.4",
+ "object-assign": "^4.0.1",
+ "read-pkg-up": "^1.0.1",
+ "redent": "^1.0.0",
+ "trim-newlines": "^1.0.0"
}
},
- "loader-fs-cache": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz",
- "integrity": "sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==",
+ "merge-deep": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz",
+ "integrity": "sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==",
"dev": true,
"requires": {
- "find-cache-dir": "^0.1.1",
- "mkdirp": "^0.5.1"
+ "arr-union": "^3.1.0",
+ "clone-deep": "^0.2.4",
+ "kind-of": "^3.0.2"
},
"dependencies": {
- "find-cache-dir": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz",
- "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=",
+ "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": {
- "commondir": "^1.0.1",
- "mkdirp": "^0.5.1",
- "pkg-dir": "^1.0.0"
- }
- },
- "find-up": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
- "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
- "dev": true,
- "requires": {
- "path-exists": "^2.0.0",
- "pinkie-promise": "^2.0.0"
- }
- },
- "path-exists": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
- "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
- "dev": true,
- "requires": {
- "pinkie-promise": "^2.0.0"
- }
- },
- "pkg-dir": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
- "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
- "dev": true,
- "requires": {
- "find-up": "^1.0.0"
+ "is-buffer": "^1.1.5"
}
}
}
},
- "loader-runner": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz",
- "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==",
+ "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
},
- "loader-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
- "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
- "dev": true,
- "requires": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^1.0.1"
- },
- "dependencies": {
- "json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
- "dev": true,
- "requires": {
- "minimist": "^1.2.0"
- }
- }
- }
- },
- "locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "requires": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "lodash": {
- "version": "4.17.20",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
- "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="
- },
- "lodash-es": {
- "version": "4.17.20",
- "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.20.tgz",
- "integrity": "sha512-JD1COMZsq8maT6mnuz1UMV0jvYD0E0aUsSOdrr1/nAG3dhqQXwRRgeW0cSqH1U43INKcqxaiVIQNOUDld7gRDA=="
- },
- "lodash._reinterpolate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
- "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=",
+ "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
},
- "lodash.camelcase": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
- "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=",
+ "merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
"dev": true
},
- "lodash.debounce": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
- "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168="
- },
- "lodash.flattendeep": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
- "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI="
- },
- "lodash.isarray": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-4.0.0.tgz",
- "integrity": "sha1-KspJayjEym1yZxUxNZDALm6jRAM="
- },
- "lodash.isfinite": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz",
- "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M="
- },
- "lodash.isnan": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/lodash.isnan/-/lodash.isnan-3.0.2.tgz",
- "integrity": "sha1-gu0Epfnqi9YibQwmrwysMvRQd0U="
- },
- "lodash.isstring": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
- "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE="
- },
- "lodash.memoize": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
- "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
"dev": true
},
- "lodash.sortby": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
- "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
+ "microevent.ts": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz",
+ "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==",
"dev": true
},
- "lodash.tail": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz",
- "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=",
- "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",
+ "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"
+ }
},
- "lodash.template": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz",
- "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==",
+ "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": {
- "lodash._reinterpolate": "^3.0.0",
- "lodash.templatesettings": "^4.0.0"
+ "bn.js": "^4.0.0",
+ "brorand": "^1.0.1"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.11.9",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+ "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+ "dev": true
+ }
}
},
- "lodash.templatesettings": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz",
- "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==",
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "dev": true
+ },
+ "mime-db": {
+ "version": "1.44.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
+ "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.27",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
+ "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
"dev": true,
"requires": {
- "lodash._reinterpolate": "^3.0.0"
+ "mime-db": "1.44.0"
}
},
- "lodash.throttle": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
- "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ="
+ "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
},
- "lodash.uniq": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
- "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
+ "min-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
+ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
"dev": true
},
- "log-symbols": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
- "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+ "mini-css-extract-plugin": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz",
+ "integrity": "sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A==",
+ "dev": true,
"requires": {
- "chalk": "^2.0.1"
+ "loader-utils": "^1.1.0",
+ "normalize-url": "1.9.1",
+ "schema-utils": "^1.0.0",
+ "webpack-sources": "^1.1.0"
+ },
+ "dependencies": {
+ "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",
+ "ajv-keywords": "^3.1.0"
+ }
+ }
}
},
- "log-update": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz",
- "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=",
+ "mini-store": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/mini-store/-/mini-store-3.0.6.tgz",
+ "integrity": "sha512-YzffKHbYsMQGUWQRKdsearR79QsMzzJcDDmZKlJBqt5JNkqpyJHYlK6gP61O36X+sLf76sO9G6mhKBe83gIZIQ==",
"requires": {
- "ansi-escapes": "^3.0.0",
- "cli-cursor": "^2.0.0",
- "wrap-ansi": "^3.0.1"
+ "hoist-non-react-statics": "^3.3.2",
+ "shallowequal": "^1.0.2"
}
},
- "loglevel": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz",
- "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==",
+ "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
},
- "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"
- }
+ "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
},
- "loud-rejection": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
- "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"requires": {
- "currently-unhandled": "^0.4.1",
- "signal-exit": "^3.0.0"
+ "brace-expansion": "^1.1.7"
}
},
- "lower-case": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
- "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=",
+ "minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
"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==",
+ "minimist-options": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
+ "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==",
+ "dev": true,
"requires": {
- "pseudomap": "^1.0.2",
- "yallist": "^2.1.2"
+ "arrify": "^1.0.1",
+ "is-plain-obj": "^1.1.0",
+ "kind-of": "^6.0.3"
}
},
- "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==",
+ "minipass": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz",
+ "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==",
"dev": true,
"requires": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
+ "yallist": "^4.0.0"
},
"dependencies": {
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
}
}
},
- "makeerror": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz",
- "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=",
+ "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": {
- "tmpl": "1.0.x"
+ "minipass": "^3.0.0"
}
},
- "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==",
+ "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": {
- "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="
- },
- "map-obj": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
- "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0="
- },
- "map-visit": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
- "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
- "requires": {
- "object-visit": "^1.0.0"
+ "minipass": "^3.0.0"
}
},
- "matcher": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/matcher/-/matcher-1.1.1.tgz",
- "integrity": "sha512-+BmqxWIubKTRKNWx/ahnCkk3mG8m7OturVlqq6HiojGJTd5hVYbgZm6WzcYPCoB+KBT4Vd6R7WSRG2OADNaCjg==",
+ "minipass-pipeline": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
+ "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
+ "dev": true,
"requires": {
- "escape-string-regexp": "^1.0.4"
+ "minipass": "^3.0.0"
}
},
- "math-random": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz",
- "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A=="
- },
- "mathjs": {
- "version": "5.10.3",
- "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-5.10.3.tgz",
- "integrity": "sha512-ySjg30BC3dYjQm73ILZtwcWzFJde0VU6otkXW/57IjjuYRa3Qaf0Kb8pydEuBZYtqW2OxreAtsricrAmOj3jIw==",
+ "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": {
- "complex.js": "2.0.11",
- "decimal.js": "10.2.0",
- "escape-latex": "1.2.0",
- "fraction.js": "4.0.12",
- "javascript-natural-sort": "0.7.1",
- "seed-random": "2.2.0",
- "tiny-emitter": "2.1.0",
- "typed-function": "1.1.0"
+ "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"
}
},
- "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==",
+ "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": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.1.2"
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
+ },
+ "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"
+ }
+ }
}
},
- "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="
- },
- "mem": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
- "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
+ "mixin-object": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz",
+ "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=",
"dev": true,
"requires": {
- "map-age-cleaner": "^0.1.1",
- "mimic-fn": "^2.0.0",
- "p-is-promise": "^2.0.0"
+ "for-in": "^0.1.3",
+ "is-extendable": "^0.1.1"
},
"dependencies": {
- "mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "for-in": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz",
+ "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=",
"dev": true
}
}
},
- "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=",
+ "mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
"dev": true,
"requires": {
- "errno": "^0.1.3",
- "readable-stream": "^2.0.1"
+ "minimist": "^1.2.5"
+ }
+ },
+ "mobile-detect": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/mobile-detect/-/mobile-detect-1.4.2.tgz",
+ "integrity": "sha1-1F//+NCmQa7svDWhXYgUmjShg1A="
+ },
+ "moment": {
+ "version": "2.24.0",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
+ "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg=="
+ },
+ "moment-jalaali": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/moment-jalaali/-/moment-jalaali-0.7.2.tgz",
+ "integrity": "sha512-CO9FG+vuuhzcyboqmocubwmVj0d0Z1QvnU1uNUzuO9ZyyMT7oJAAj1oGC1JvN9PA5GcAhDcrEQkGWim1lfRYYQ==",
+ "requires": {
+ "jalaali-js": "^1.0.0",
+ "moment": "^2.18.1",
+ "rimraf": "^2.6.1"
},
"dependencies": {
- "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==",
- "dev": true,
- "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"
- }
- },
- "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
- },
- "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==",
- "dev": true,
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
"requires": {
- "safe-buffer": "~5.1.0"
+ "glob": "^7.1.3"
}
}
}
},
- "memorystream": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
- "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI="
- },
- "meow": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
- "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+ "moment-timezone": {
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.21.tgz",
+ "integrity": "sha512-j96bAh4otsgj3lKydm3K7kdtA3iKf2m6MY2iSYCzCm5a1zmHo1g+aK3068dDEeocLZQIS9kU8bsdQHLqEvgW0A==",
"requires": {
- "camelcase-keys": "^2.0.0",
- "decamelize": "^1.1.2",
- "loud-rejection": "^1.0.0",
- "map-obj": "^1.0.1",
- "minimist": "^1.1.3",
- "normalize-package-data": "^2.3.4",
- "object-assign": "^4.0.1",
- "read-pkg-up": "^1.0.1",
- "redent": "^1.0.0",
- "trim-newlines": "^1.0.0"
+ "moment": ">= 2.9.0"
}
},
- "merge": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz",
- "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==",
+ "moniker": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/moniker/-/moniker-0.1.2.tgz",
+ "integrity": "sha1-hy37pXXc6o+gSlE1sT1fJL7MyX4=",
"dev": true
},
- "merge-deep": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz",
- "integrity": "sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==",
+ "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": {
- "arr-union": "^3.1.0",
- "clone-deep": "^0.2.4",
- "kind-of": "^3.0.2"
+ "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"
},
"dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
"dev": true,
"requires": {
- "is-buffer": "^1.1.5"
+ "glob": "^7.1.3"
}
}
}
},
- "merge-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
- "merge-stream": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz",
- "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=",
- "dev": true,
- "requires": {
- "readable-stream": "^2.0.1"
- },
- "dependencies": {
- "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==",
- "dev": true,
- "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"
- }
- },
- "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
- },
- "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==",
- "dev": true,
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- }
- }
- },
- "merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true
- },
- "methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
- },
- "micromatch": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
- "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
- "requires": {
- "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"
- }
- },
- "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"
- },
- "dependencies": {
- "bn.js": {
- "version": "4.11.9",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
- "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
- "dev": true
- }
- }
- },
- "mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
- },
- "mime-db": {
- "version": "1.44.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
- "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
- },
- "mime-types": {
- "version": "2.1.27",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
- "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
- "requires": {
- "mime-db": "1.44.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=="
- },
- "mini-css-extract-plugin": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.5.0.tgz",
- "integrity": "sha512-IuaLjruM0vMKhUUT51fQdQzBYTX49dLj8w68ALEAe2A4iYNpIC4eMac67mt3NzycvjOlf07/kYxJDc0RTl1Wqw==",
- "dev": true,
- "requires": {
- "loader-utils": "^1.1.0",
- "schema-utils": "^1.0.0",
- "webpack-sources": "^1.1.0"
- }
- },
- "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",
- "react-lifecycles-compat": "^3.0.4",
- "shallowequal": "^1.0.2"
- },
- "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=="
- }
- }
- },
- "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=="
- },
- "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
- },
- "minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "minimist": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
- "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
- },
- "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",
- "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"
- }
- },
- "mixin-deep": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
- "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
- "requires": {
- "for-in": "^1.0.2",
- "is-extendable": "^1.0.1"
- },
- "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==",
- "requires": {
- "is-plain-object": "^2.0.4"
- }
- }
- }
- },
- "mixin-object": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz",
- "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=",
- "dev": true,
- "requires": {
- "for-in": "^0.1.3",
- "is-extendable": "^0.1.1"
- },
- "dependencies": {
- "for-in": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz",
- "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=",
- "dev": true
- }
- }
- },
- "mkdirp": {
- "version": "0.5.5",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
- "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
- "requires": {
- "minimist": "^1.2.5"
- }
- },
- "mobile-detect": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/mobile-detect/-/mobile-detect-1.4.2.tgz",
- "integrity": "sha1-1F//+NCmQa7svDWhXYgUmjShg1A="
- },
- "moment": {
- "version": "2.24.0",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
- "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg=="
- },
- "moment-jalaali": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/moment-jalaali/-/moment-jalaali-0.7.2.tgz",
- "integrity": "sha512-CO9FG+vuuhzcyboqmocubwmVj0d0Z1QvnU1uNUzuO9ZyyMT7oJAAj1oGC1JvN9PA5GcAhDcrEQkGWim1lfRYYQ==",
- "requires": {
- "jalaali-js": "^1.0.0",
- "moment": "^2.18.1",
- "rimraf": "^2.6.1"
- }
- },
- "moment-timezone": {
- "version": "0.5.21",
- "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.21.tgz",
- "integrity": "sha512-j96bAh4otsgj3lKydm3K7kdtA3iKf2m6MY2iSYCzCm5a1zmHo1g+aK3068dDEeocLZQIS9kU8bsdQHLqEvgW0A==",
- "requires": {
- "moment": ">= 2.9.0"
- }
- },
- "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",
- "fs-write-stream-atomic": "^1.0.8",
- "mkdirp": "^0.5.1",
- "rimraf": "^2.5.4",
- "run-queue": "^1.0.3"
- }
- },
- "ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- },
- "multicast-dns": {
- "version": "6.2.3",
- "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz",
- "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==",
+ "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",
@@ -11776,26 +12029,23 @@
"integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
"dev": true
},
- "mutationobserver-shim": {
- "version": "0.3.7",
- "resolved": "https://registry.npmjs.org/mutationobserver-shim/-/mutationobserver-shim-0.3.7.tgz",
- "integrity": "sha512-oRIDTyZQU96nAiz2AQyngwx1e89iApl2hN5AOYwyxLUB47UYsU3Wv9lJWqH5y/QdiYkc5HQLi23ZNB3fELdHcQ=="
- },
"mute-stream": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
- "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
"dev": true
},
"nan": {
- "version": "2.14.2",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz",
- "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ=="
+ "version": "2.14.1",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz",
+ "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==",
+ "dev": 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",
@@ -11816,10 +12066,17 @@
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
"dev": true
},
+ "ncp": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz",
+ "integrity": "sha1-q8xsvT7C7Spyn/bnwfqPAXhKhXQ=",
+ "dev": true
+ },
"negotiator": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
- "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
+ "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
+ "dev": true
},
"neo-async": {
"version": "2.6.2",
@@ -11827,18 +12084,37 @@
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
"dev": true
},
+ "nested-error-stacks": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz",
+ "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==",
+ "dev": true
+ },
+ "netrc": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/netrc/-/netrc-0.1.4.tgz",
+ "integrity": "sha1-a+lPysqNd63gqWcNxGCRTJRHJEQ=",
+ "dev": true
+ },
+ "next-tick": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
+ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
+ "dev": true
+ },
"nice-try": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
},
"no-case": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
- "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz",
+ "integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==",
"dev": true,
"requires": {
- "lower-case": "^1.1.1"
+ "lower-case": "^2.0.1",
+ "tslib": "^1.10.0"
}
},
"node-fetch": {
@@ -11851,15 +12127,16 @@
}
},
"node-forge": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz",
- "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==",
+ "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
},
"node-gyp": {
"version": "3.8.0",
"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
"integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
+ "dev": true,
"requires": {
"fstream": "^1.0.0",
"glob": "^7.0.3",
@@ -11875,10 +12152,20 @@
"which": "1"
},
"dependencies": {
+ "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"
+ }
+ },
"semver": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
- "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8="
+ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
+ "dev": true
}
}
},
@@ -11967,9 +12254,32 @@
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"dev": true
+ },
+ "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
+ }
+ }
}
}
},
+ "node-modules-regexp": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz",
+ "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=",
+ "dev": true
+ },
"node-notifier": {
"version": "5.4.3",
"resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz",
@@ -11984,15 +12294,16 @@
}
},
"node-releases": {
- "version": "1.1.67",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz",
- "integrity": "sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg==",
+ "version": "1.1.60",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz",
+ "integrity": "sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA==",
"dev": true
},
"node-sass": {
"version": "4.14.1",
"resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz",
"integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==",
+ "dev": true,
"requires": {
"async-foreach": "^0.1.3",
"chalk": "^1.1.1",
@@ -12016,12 +12327,14 @@
"ansi-styles": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
+ "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",
@@ -12034,6 +12347,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
"integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
+ "dev": true,
"requires": {
"lru-cache": "^4.0.1",
"which": "^1.2.9"
@@ -12042,12 +12356,14 @@
"get-stdin": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
- "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4="
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+ "dev": true
},
"sass-graph": {
"version": "2.2.5",
"resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz",
"integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==",
+ "dev": true,
"requires": {
"glob": "^7.0.0",
"lodash": "^4.0.0",
@@ -12058,29 +12374,131 @@
"supports-color": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
}
}
},
"node-sass-chokidar": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/node-sass-chokidar/-/node-sass-chokidar-1.3.4.tgz",
- "integrity": "sha512-AEKBr58QFzU37Ubud90K1n+ljEpTDekJm5UCS8ZyoWgHoz2qx8f2vAaN8rECbqF1vYPid64NZBh98AKzHh9D9A==",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/node-sass-chokidar/-/node-sass-chokidar-1.5.0.tgz",
+ "integrity": "sha512-Ss7PbeKd1OmJGzWVObBjoYeqgVIi0S0w7b9Ryx+cC2+c2UwU2VL4ODxLJoXC8LBzMJNmKHlCHQ1gRRNXQRTLjQ==",
+ "dev": true,
"requires": {
"async-foreach": "^0.1.3",
- "chokidar": "^2.0.4",
+ "chokidar": "^3.4.0",
"get-stdin": "^4.0.1",
"glob": "^7.0.3",
"meow": "^3.7.0",
- "node-sass": "^4.9.3",
- "sass-graph": "^2.1.1",
+ "node-sass": "^4.14.1",
+ "sass-graph": "^2.2.4",
"stdout-stream": "^1.4.0"
},
"dependencies": {
+ "anymatch": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
+ "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+ "dev": true,
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "binary-extensions": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
+ "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==",
+ "dev": true
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "chokidar": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz",
+ "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==",
+ "dev": true,
+ "requires": {
+ "anymatch": "~3.1.1",
+ "braces": "~3.0.2",
+ "fsevents": "~2.1.2",
+ "glob-parent": "~5.1.0",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.5.0"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "fsevents": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
+ "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+ "dev": true,
+ "optional": true
+ },
"get-stdin": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
- "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4="
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+ "dev": true
+ },
+ "glob-parent": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
+ "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "requires": {
+ "binary-extensions": "^2.0.0"
+ }
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "readdirp": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
+ "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
+ "dev": true,
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
}
}
},
@@ -12088,6 +12506,7 @@
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
+ "dev": true,
"requires": {
"abbrev": "1"
}
@@ -12106,7 +12525,8 @@
"normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true
},
"normalize-range": {
"version": "0.1.2",
@@ -12115,24 +12535,34 @@
"dev": true
},
"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
+ "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",
+ "prepend-http": "^1.0.0",
+ "query-string": "^4.1.0",
+ "sort-keys": "^1.0.0"
+ },
+ "dependencies": {
+ "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",
+ "strict-uri-encode": "^1.0.0"
+ }
+ }
+ }
},
"normalize.css": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-7.0.0.tgz",
"integrity": "sha1-q/sd2CRwZ04DIrU86xqvQSk45L8="
},
- "npm-path": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/npm-path/-/npm-path-2.0.4.tgz",
- "integrity": "sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw==",
- "requires": {
- "which": "^1.2.10"
- }
- },
"npm-run-all": {
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz",
@@ -12189,24 +12619,16 @@
"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"
}
},
- "npm-which": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/npm-which/-/npm-which-3.0.1.tgz",
- "integrity": "sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo=",
- "requires": {
- "commander": "^2.9.0",
- "npm-path": "^2.0.2",
- "which": "^1.2.10"
- }
- },
"npmlog": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
"integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+ "dev": true,
"requires": {
"are-we-there-yet": "~1.1.2",
"console-control-strings": "~1.1.0",
@@ -12232,18 +12654,14 @@
"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="
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "dev": true
},
"numbro": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/numbro/-/numbro-1.11.1.tgz",
"integrity": "sha512-qL0Etqbunz4RtPx4bNjMONe9HyUpgbrM4Sa3VpWY5oRdp9ry5DufAj6lCvnIcluRBA9QUacrllYc73QK0G6VAw=="
},
- "nwmatcher": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz",
- "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ=="
- },
"nwsapi": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz",
@@ -12253,22 +12671,19 @@
"oauth-sign": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
- "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
+ "dev": true
},
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
- "object-component": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
- "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE="
- },
"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",
@@ -12279,6 +12694,7 @@
"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"
}
@@ -12287,6 +12703,7 @@
"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"
}
@@ -12294,23 +12711,23 @@
}
},
"object-hash": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz",
- "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.0.3.tgz",
+ "integrity": "sha512-JPKn0GMu+Fa3zt3Bmr66JhokJU5BaNBIh4ZeTlaCBzrBsOeXzwcKKAK1tbLiPKgvwmPXsDvvLHoWh5Bm7ofIYg==",
"dev": true
},
"object-inspect": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz",
- "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw=="
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz",
+ "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA=="
},
"object-is": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz",
- "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz",
+ "integrity": "sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==",
"requires": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3"
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5"
}
},
"object-keys": {
@@ -12318,84 +12735,81 @@
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
"integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
},
+ "object-path": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.4.tgz",
+ "integrity": "sha1-NwrnUvvzfePqcKhhwju6iRVpGUk=",
+ "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.2",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
- "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
+ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
"requires": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3",
- "has-symbols": "^1.0.1",
- "object-keys": "^1.1.1"
+ "define-properties": "^1.1.2",
+ "function-bind": "^1.1.1",
+ "has-symbols": "^1.0.0",
+ "object-keys": "^1.0.11"
}
},
"object.entries": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.3.tgz",
- "integrity": "sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz",
+ "integrity": "sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==",
"requires": {
- "call-bind": "^1.0.0",
"define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.1",
+ "es-abstract": "^1.17.5",
"has": "^1.0.3"
}
},
"object.fromentries": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.3.tgz",
- "integrity": "sha512-IDUSMXs6LOSJBWE++L0lzIbSqHl9KDCfff2x/JSEIDtEUavUnyMYC2ZGay/04Zq4UT8lvd4xNhU4/YHKibAOlw==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz",
+ "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==",
"dev": true,
"requires": {
- "call-bind": "^1.0.0",
"define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.1",
+ "es-abstract": "^1.17.0-next.1",
+ "function-bind": "^1.1.1",
"has": "^1.0.3"
}
},
"object.getownpropertydescriptors": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz",
- "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==",
+ "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": {
- "call-bind": "^1.0.0",
"define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.1"
- }
- },
- "object.omit": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
- "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
- "requires": {
- "for-own": "^0.1.4",
- "is-extendable": "^0.1.1"
+ "es-abstract": "^1.17.0-next.1"
}
},
"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.2",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz",
- "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz",
+ "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==",
"requires": {
- "call-bind": "^1.0.0",
"define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.1",
+ "es-abstract": "^1.17.0-next.1",
+ "function-bind": "^1.1.1",
"has": "^1.0.3"
}
},
@@ -12417,6 +12831,7 @@
"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"
}
@@ -12439,26 +12854,54 @@
"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"
}
},
+ "open": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-7.1.0.tgz",
+ "integrity": "sha512-lLPI5KgOwEYCDKXf4np7y1PBEkj7HYIyP2DY8mVDRnx0VIIu6bNrRB0R66TuO7Mack6EnTNLm4uvcl1UoklTpA==",
+ "dev": true,
+ "requires": {
+ "is-docker": "^2.0.0",
+ "is-wsl": "^2.1.1"
+ },
+ "dependencies": {
+ "is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "dev": true,
+ "requires": {
+ "is-docker": "^2.0.0"
+ }
+ }
+ }
+ },
+ "opencollective-postinstall": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz",
+ "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==",
+ "dev": true
+ },
"opn": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/opn/-/opn-5.4.0.tgz",
- "integrity": "sha512-YF9MNdVy/0qvJvDtunAOzFw9iasOQHpVthTCvGzxt61Il64AYSGdK+rYwld7NAfk9qJ7dt+hymBNSc9LNYS+Sw==",
+ "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"
}
},
"optimize-css-assets-webpack-plugin": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.1.tgz",
- "integrity": "sha512-Rqm6sSjWtx9FchdP0uzTQDc7GXDKnwVEGoSxjezPkzMewx7gEWE9IMUYKmigTRC4U3RaNSwYVnUDLuIdtTpm0A==",
+ "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.0",
+ "cssnano": "^4.1.10",
"last-call-webpack-plugin": "^3.0.0"
}
},
@@ -12466,6 +12909,7 @@
"version": "0.8.3",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
"integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+ "dev": true,
"requires": {
"deep-is": "~0.1.3",
"fast-levenshtein": "~2.0.6",
@@ -12493,12 +12937,14 @@
"os-homedir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
- "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+ "dev": true
},
"os-locale": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
"integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
+ "dev": true,
"requires": {
"lcid": "^1.0.0"
}
@@ -12506,38 +12952,82 @@
"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="
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "dev": true
},
"osenv": {
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
"integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+ "dev": true,
"requires": {
"os-homedir": "^1.0.0",
"os-tmpdir": "^1.0.0"
}
},
- "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-all": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-all/-/p-all-2.1.0.tgz",
+ "integrity": "sha512-HbZxz5FONzz/z2gJfk6bFca0BCiSRF8jU3yCsWOen/vR6lZjfPOu/e7L3uFzTW1i0H8TlC3vqQstEJPQL4/uLA==",
+ "dev": true,
+ "requires": {
+ "p-map": "^2.0.0"
+ },
+ "dependencies": {
+ "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-finally": {
+ "p-each-series": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
- "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
- },
- "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
+ "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz",
+ "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=",
+ "dev": true,
+ "requires": {
+ "p-reduce": "^1.0.0"
+ }
+ },
+ "p-event": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz",
+ "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==",
+ "dev": true,
+ "requires": {
+ "p-timeout": "^3.1.0"
+ }
+ },
+ "p-filter": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz",
+ "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==",
+ "dev": true,
+ "requires": {
+ "p-map": "^2.0.0"
+ },
+ "dependencies": {
+ "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-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "dev": true
},
"p-limit": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
"requires": {
"p-try": "^2.0.0"
}
@@ -12546,19 +13036,49 @@
"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-map": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz",
- "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA=="
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
+ "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
+ "dev": true,
+ "requires": {
+ "aggregate-error": "^3.0.0"
+ }
+ },
+ "p-reduce": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz",
+ "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=",
+ "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"
+ }
+ },
+ "p-timeout": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz",
+ "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==",
+ "dev": true,
+ "requires": {
+ "p-finally": "^1.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=="
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true
},
"pako": {
"version": "1.0.11",
@@ -12610,12 +13130,13 @@
}
},
"param-case": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz",
- "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz",
+ "integrity": "sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==",
"dev": true,
"requires": {
- "no-case": "^2.2.0"
+ "dot-case": "^3.0.3",
+ "tslib": "^1.10.0"
}
},
"parent-module": {
@@ -12648,32 +13169,6 @@
"safe-buffer": "^5.1.1"
}
},
- "parse-glob": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
- "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
- "requires": {
- "glob-base": "^0.3.0",
- "is-dotfile": "^1.0.0",
- "is-extglob": "^1.0.0",
- "is-glob": "^2.0.0"
- },
- "dependencies": {
- "is-extglob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
- },
- "is-glob": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
- "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
- "requires": {
- "is-extglob": "^1.0.0"
- }
- }
- }
- },
"parse-json": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
@@ -12683,36 +13178,27 @@
"json-parse-better-errors": "^1.0.1"
}
},
- "parse5": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz",
- "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ="
- },
- "parseqs": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
- "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
- "requires": {
- "better-assert": "~1.0.0"
- }
- },
- "parseuri": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
- "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
- "requires": {
- "better-assert": "~1.0.0"
- }
- },
"parseurl": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "dev": true
+ },
+ "pascal-case": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz",
+ "integrity": "sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==",
+ "dev": true,
+ "requires": {
+ "no-case": "^3.0.3",
+ "tslib": "^1.10.0"
+ }
},
"pascalcase": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
- "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ="
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
+ "dev": true
},
"path-browserify": {
"version": "0.0.1",
@@ -12723,12 +13209,14 @@
"path-dirname": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
- "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA="
+ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
+ "dev": true
},
"path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
},
"path-is-absolute": {
"version": "1.0.1",
@@ -12738,7 +13226,8 @@
"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="
+ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
+ "dev": true
},
"path-key": {
"version": "2.0.1",
@@ -12753,12 +13242,14 @@
"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="
+ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
+ "dev": true
},
"path-type": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
"integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dev": true,
"requires": {
"graceful-fs": "^4.1.2",
"pify": "^2.0.0",
@@ -12768,7 +13259,8 @@
"pify": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
}
}
},
@@ -12794,8 +13286,7 @@
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
"integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
- "dev": true,
- "optional": true
+ "dev": true
},
"pidtree": {
"version": "0.3.1",
@@ -12810,92 +13301,60 @@
"pinkie": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
+ "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"
}
},
+ "pirates": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz",
+ "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==",
+ "dev": true,
+ "requires": {
+ "node-modules-regexp": "^1.0.0"
+ }
+ },
"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"
}
},
"pkg-up": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz",
- "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
+ "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
"dev": true,
"requires": {
- "find-up": "^2.1.0"
- },
- "dependencies": {
- "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": {
- "locate-path": "^2.0.0"
- }
- },
- "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",
- "path-exists": "^3.0.0"
- }
- },
- "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"
- }
- },
- "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"
- }
- },
- "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
- }
+ "find-up": "^3.0.0"
}
},
+ "pkginfo": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz",
+ "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=",
+ "dev": true
+ },
"please-upgrade-node": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz",
"integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==",
+ "dev": true,
"requires": {
"semver-compare": "^1.0.0"
}
},
- "pluralize": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
- "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
- "dev": true
- },
"pn": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz",
@@ -12903,12 +13362,12 @@
"dev": true
},
"pnp-webpack-plugin": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.2.1.tgz",
- "integrity": "sha512-W6GctK7K2qQiVR+gYSv/Gyt6jwwIH4vwdviFqx+Y2jAtVf5eZyYIDf5Ac2NCDMBiX5yWscBLZElPTsyA1UtVVA==",
+ "version": "1.6.4",
+ "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz",
+ "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==",
"dev": true,
"requires": {
- "ts-pnp": "^1.0.0"
+ "ts-pnp": "^1.1.6"
}
},
"portfinder": {
@@ -12925,17 +13384,18 @@
"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="
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
+ "dev": true
},
"postcss": {
- "version": "6.0.23",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
- "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "version": "7.0.32",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz",
+ "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==",
"dev": true,
"requires": {
- "chalk": "^2.4.1",
+ "chalk": "^2.4.2",
"source-map": "^0.6.1",
- "supports-color": "^5.4.0"
+ "supports-color": "^6.1.0"
},
"dependencies": {
"source-map": {
@@ -12943,6 +13403,15 @@
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"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"
+ }
}
}
},
@@ -12954,40 +13423,21 @@
"requires": {
"postcss": "^7.0.2",
"postcss-selector-parser": "^6.0.2"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
+ }
+ },
+ "postcss-browser-comments": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-3.0.0.tgz",
+ "integrity": "sha512-qfVjLfq7HFd2e0HW4s1dvU8X080OZdG46fFbIBFjW7US7YPDcWfRvdElvwMJr2LI6hMmD+7LnH2HcmXTs+uOig==",
+ "dev": true,
+ "requires": {
+ "postcss": "^7"
}
},
"postcss-calc": {
- "version": "7.0.5",
- "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz",
- "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==",
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.3.tgz",
+ "integrity": "sha512-IB/EAEmZhIMEIhG7Ov4x+l47UaXOS1n2f4FBUk/aKllQhtSCxWhTzn0nJgkqN7fo/jcWySvWTSB6Syk9L+31bA==",
"dev": true,
"requires": {
"postcss": "^7.0.27",
@@ -12995,37 +13445,11 @@
"postcss-value-parser": "^4.0.2"
},
"dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
"postcss-value-parser": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz",
"integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==",
"dev": true
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
}
}
},
@@ -13037,34 +13461,6 @@
"requires": {
"postcss": "^7.0.2",
"postcss-values-parser": "^2.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-color-gray": {
@@ -13076,34 +13472,6 @@
"@csstools/convert-colors": "^1.4.0",
"postcss": "^7.0.5",
"postcss-values-parser": "^2.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-color-hex-alpha": {
@@ -13114,34 +13482,6 @@
"requires": {
"postcss": "^7.0.14",
"postcss-values-parser": "^2.0.1"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-color-mod-function": {
@@ -13153,34 +13493,6 @@
"@csstools/convert-colors": "^1.4.0",
"postcss": "^7.0.2",
"postcss-values-parser": "^2.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-color-rebeccapurple": {
@@ -13191,34 +13503,6 @@
"requires": {
"postcss": "^7.0.2",
"postcss-values-parser": "^2.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-colormin": {
@@ -13232,34 +13516,6 @@
"has": "^1.0.0",
"postcss": "^7.0.0",
"postcss-value-parser": "^3.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-convert-values": {
@@ -13270,34 +13526,6 @@
"requires": {
"postcss": "^7.0.0",
"postcss-value-parser": "^3.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-custom-media": {
@@ -13307,34 +13535,6 @@
"dev": true,
"requires": {
"postcss": "^7.0.14"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-custom-properties": {
@@ -13345,34 +13545,6 @@
"requires": {
"postcss": "^7.0.17",
"postcss-values-parser": "^2.0.1"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-custom-selectors": {
@@ -13391,17 +13563,6 @@
"integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==",
"dev": true
},
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
"postcss-selector-parser": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz",
@@ -13412,21 +13573,6 @@
"indexes-of": "^1.0.1",
"uniq": "^1.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==",
- "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"
- }
}
}
},
@@ -13446,17 +13592,6 @@
"integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==",
"dev": true
},
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
"postcss-selector-parser": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz",
@@ -13467,21 +13602,6 @@
"indexes-of": "^1.0.1",
"uniq": "^1.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==",
- "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"
- }
}
}
},
@@ -13492,34 +13612,6 @@
"dev": true,
"requires": {
"postcss": "^7.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-discard-duplicates": {
@@ -13529,34 +13621,6 @@
"dev": true,
"requires": {
"postcss": "^7.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-discard-empty": {
@@ -13566,34 +13630,6 @@
"dev": true,
"requires": {
"postcss": "^7.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-discard-overridden": {
@@ -13603,34 +13639,6 @@
"dev": true,
"requires": {
"postcss": "^7.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-double-position-gradients": {
@@ -13641,34 +13649,6 @@
"requires": {
"postcss": "^7.0.5",
"postcss-values-parser": "^2.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-env-function": {
@@ -13679,34 +13659,6 @@
"requires": {
"postcss": "^7.0.2",
"postcss-values-parser": "^2.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-flexbugs-fixes": {
@@ -13716,34 +13668,6 @@
"dev": true,
"requires": {
"postcss": "^7.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-focus-visible": {
@@ -13753,34 +13677,6 @@
"dev": true,
"requires": {
"postcss": "^7.0.2"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-focus-within": {
@@ -13790,71 +13686,15 @@
"dev": true,
"requires": {
"postcss": "^7.0.2"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-font-variant": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz",
- "integrity": "sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.0.tgz",
+ "integrity": "sha512-M8BFYKOvCrI2aITzDad7kWuXXTm0YhGdP9Q8HanmN4EF1Hmcgs1KK5rSHylt/lUJe8yLxiSwWAHdScoEiIxztg==",
"dev": true,
"requires": {
"postcss": "^7.0.2"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-gap-properties": {
@@ -13864,34 +13704,6 @@
"dev": true,
"requires": {
"postcss": "^7.0.2"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-image-set-function": {
@@ -13902,34 +13714,6 @@
"requires": {
"postcss": "^7.0.2",
"postcss-values-parser": "^2.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-initial": {
@@ -13940,34 +13724,6 @@
"requires": {
"lodash.template": "^4.5.0",
"postcss": "^7.0.2"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-lab-function": {
@@ -13979,40 +13735,12 @@
"@csstools/convert-colors": "^1.4.0",
"postcss": "^7.0.2",
"postcss-values-parser": "^2.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-load-config": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz",
- "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==",
+ "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",
@@ -14031,30 +13759,15 @@
"schema-utils": "^1.0.0"
},
"dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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==",
+ "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": {
- "has-flag": "^3.0.0"
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
}
}
}
@@ -14066,34 +13779,6 @@
"dev": true,
"requires": {
"postcss": "^7.0.2"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-media-minmax": {
@@ -14103,34 +13788,6 @@
"dev": true,
"requires": {
"postcss": "^7.0.2"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-merge-longhand": {
@@ -14143,34 +13800,6 @@
"postcss": "^7.0.0",
"postcss-value-parser": "^3.0.0",
"stylehacks": "^4.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-merge-rules": {
@@ -14187,17 +13816,6 @@
"vendors": "^1.0.0"
},
"dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
"postcss-selector-parser": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
@@ -14208,21 +13826,6 @@
"indexes-of": "^1.0.1",
"uniq": "^1.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==",
- "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"
- }
}
}
},
@@ -14234,34 +13837,6 @@
"requires": {
"postcss": "^7.0.0",
"postcss-value-parser": "^3.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-minify-gradients": {
@@ -14274,34 +13849,6 @@
"is-color-stop": "^1.0.0",
"postcss": "^7.0.0",
"postcss-value-parser": "^3.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-minify-params": {
@@ -14316,59 +13863,20 @@
"postcss": "^7.0.0",
"postcss-value-parser": "^3.0.0",
"uniqs": "^2.0.0"
+ }
+ },
+ "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",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-selector-parser": "^3.0.0"
},
"dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
- }
- },
- "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",
- "has": "^1.0.0",
- "postcss": "^7.0.0",
- "postcss-selector-parser": "^3.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
"postcss-selector-parser": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
@@ -14379,61 +13887,56 @@
"indexes-of": "^1.0.1",
"uniq": "^1.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==",
- "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"
- }
}
}
},
"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==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz",
+ "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==",
"dev": true,
"requires": {
- "postcss": "^6.0.1"
+ "postcss": "^7.0.5"
}
},
"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=",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz",
+ "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==",
"dev": true,
"requires": {
- "css-selector-tokenizer": "^0.7.0",
- "postcss": "^6.0.1"
+ "icss-utils": "^4.1.1",
+ "postcss": "^7.0.32",
+ "postcss-selector-parser": "^6.0.2",
+ "postcss-value-parser": "^4.1.0"
+ },
+ "dependencies": {
+ "postcss-value-parser": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz",
+ "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==",
+ "dev": true
+ }
}
},
"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=",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz",
+ "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==",
"dev": true,
"requires": {
- "css-selector-tokenizer": "^0.7.0",
- "postcss": "^6.0.1"
+ "postcss": "^7.0.6",
+ "postcss-selector-parser": "^6.0.0"
}
},
"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=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz",
+ "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==",
"dev": true,
"requires": {
- "icss-replace-symbols": "^1.1.0",
- "postcss": "^6.0.1"
+ "icss-utils": "^4.0.0",
+ "postcss": "^7.0.6"
}
},
"postcss-nesting": {
@@ -14443,34 +13946,19 @@
"dev": true,
"requires": {
"postcss": "^7.0.2"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
+ }
+ },
+ "postcss-normalize": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-8.0.1.tgz",
+ "integrity": "sha512-rt9JMS/m9FHIRroDDBGSMsyW1c0fkvOJPy62ggxSHUldJO7B195TqFMqIf+lY5ezpDcYOV4j86aUp3/XbxzCCQ==",
+ "dev": true,
+ "requires": {
+ "@csstools/normalize.css": "^10.1.0",
+ "browserslist": "^4.6.2",
+ "postcss": "^7.0.17",
+ "postcss-browser-comments": "^3.0.0",
+ "sanitize.css": "^10.0.0"
}
},
"postcss-normalize-charset": {
@@ -14480,34 +13968,6 @@
"dev": true,
"requires": {
"postcss": "^7.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-normalize-display-values": {
@@ -14519,34 +13979,6 @@
"cssnano-util-get-match": "^4.0.0",
"postcss": "^7.0.0",
"postcss-value-parser": "^3.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-normalize-positions": {
@@ -14559,34 +13991,6 @@
"has": "^1.0.0",
"postcss": "^7.0.0",
"postcss-value-parser": "^3.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-normalize-repeat-style": {
@@ -14599,34 +14003,6 @@
"cssnano-util-get-match": "^4.0.0",
"postcss": "^7.0.0",
"postcss-value-parser": "^3.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-normalize-string": {
@@ -14638,34 +14014,6 @@
"has": "^1.0.0",
"postcss": "^7.0.0",
"postcss-value-parser": "^3.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-normalize-timing-functions": {
@@ -14677,34 +14025,6 @@
"cssnano-util-get-match": "^4.0.0",
"postcss": "^7.0.0",
"postcss-value-parser": "^3.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-normalize-unicode": {
@@ -14716,34 +14036,6 @@
"browserslist": "^4.0.0",
"postcss": "^7.0.0",
"postcss-value-parser": "^3.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-normalize-url": {
@@ -14758,31 +14050,11 @@
"postcss-value-parser": "^3.0.0"
},
"dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "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
- },
- "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"
- }
}
}
},
@@ -14794,34 +14066,6 @@
"requires": {
"postcss": "^7.0.0",
"postcss-value-parser": "^3.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-ordered-values": {
@@ -14833,34 +14077,6 @@
"cssnano-util-get-arguments": "^4.0.0",
"postcss": "^7.0.0",
"postcss-value-parser": "^3.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-overflow-shorthand": {
@@ -14870,34 +14086,6 @@
"dev": true,
"requires": {
"postcss": "^7.0.2"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-page-break": {
@@ -14907,34 +14095,6 @@
"dev": true,
"requires": {
"postcss": "^7.0.2"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-place": {
@@ -14945,58 +14105,30 @@
"requires": {
"postcss": "^7.0.2",
"postcss-values-parser": "^2.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-preset-env": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.5.0.tgz",
- "integrity": "sha512-RdsIrYJd9p9AouQoJ8dFP5ksBJEIegA4q4WzJDih8nevz3cZyIP/q1Eaw3pTVpUAu3n7Y32YmvAW3X07mSRGkw==",
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz",
+ "integrity": "sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg==",
"dev": true,
"requires": {
- "autoprefixer": "^9.4.2",
- "browserslist": "^4.3.5",
- "caniuse-lite": "^1.0.30000918",
+ "autoprefixer": "^9.6.1",
+ "browserslist": "^4.6.4",
+ "caniuse-lite": "^1.0.30000981",
"css-blank-pseudo": "^0.1.4",
"css-has-pseudo": "^0.10.0",
"css-prefers-color-scheme": "^3.1.1",
- "cssdb": "^4.3.0",
- "postcss": "^7.0.6",
- "postcss-attribute-case-insensitive": "^4.0.0",
+ "cssdb": "^4.4.0",
+ "postcss": "^7.0.17",
+ "postcss-attribute-case-insensitive": "^4.0.1",
"postcss-color-functional-notation": "^2.0.1",
"postcss-color-gray": "^5.0.0",
- "postcss-color-hex-alpha": "^5.0.2",
+ "postcss-color-hex-alpha": "^5.0.3",
"postcss-color-mod-function": "^3.0.3",
"postcss-color-rebeccapurple": "^4.0.1",
- "postcss-custom-media": "^7.0.7",
- "postcss-custom-properties": "^8.0.9",
+ "postcss-custom-media": "^7.0.8",
+ "postcss-custom-properties": "^8.0.11",
"postcss-custom-selectors": "^5.1.2",
"postcss-dir-pseudo-class": "^5.0.0",
"postcss-double-position-gradients": "^1.0.0",
@@ -15018,34 +14150,6 @@
"postcss-replace-overflow-wrap": "^3.0.0",
"postcss-selector-matches": "^4.0.0",
"postcss-selector-not": "^4.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-pseudo-class-any-link": {
@@ -15064,17 +14168,6 @@
"integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==",
"dev": true
},
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
"postcss-selector-parser": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz",
@@ -15085,21 +14178,6 @@
"indexes-of": "^1.0.1",
"uniq": "^1.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==",
- "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"
- }
}
}
},
@@ -15113,34 +14191,6 @@
"caniuse-api": "^3.0.0",
"has": "^1.0.0",
"postcss": "^7.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-reduce-transforms": {
@@ -15153,34 +14203,6 @@
"has": "^1.0.0",
"postcss": "^7.0.0",
"postcss-value-parser": "^3.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-replace-overflow-wrap": {
@@ -15190,34 +14212,6 @@
"dev": true,
"requires": {
"postcss": "^7.0.2"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-safe-parser": {
@@ -15227,34 +14221,6 @@
"dev": true,
"requires": {
"postcss": "^7.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-selector-matches": {
@@ -15265,84 +14231,27 @@
"requires": {
"balanced-match": "^1.0.0",
"postcss": "^7.0.2"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-selector-not": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz",
- "integrity": "sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz",
+ "integrity": "sha512-W+bkBZRhqJaYN8XAnbbZPLWMvZD1wKTu0UxtFKdhtGjWYmxhkUneoeOhRJKdAE5V7ZTlnbHfCR+6bNwK9e1dTQ==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0",
"postcss": "^7.0.2"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-selector-parser": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz",
- "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz",
+ "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==",
"dev": true,
"requires": {
"cssesc": "^3.0.0",
"indexes-of": "^1.0.1",
- "uniq": "^1.0.1",
- "util-deprecate": "^1.0.2"
+ "uniq": "^1.0.1"
}
},
"postcss-svgo": {
@@ -15355,34 +14264,6 @@
"postcss": "^7.0.0",
"postcss-value-parser": "^3.0.0",
"svgo": "^1.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-unique-selectors": {
@@ -15394,34 +14275,6 @@
"alphanum-sort": "^1.0.0",
"postcss": "^7.0.0",
"uniqs": "^2.0.0"
- },
- "dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "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"
- }
- }
}
},
"postcss-value-parser": {
@@ -15448,59 +14301,57 @@
"prelude-ls": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
- "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
+ "dev": true
},
- "preserve": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
- "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks="
+ "prepend-http": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
+ "dev": true
},
"prettier": {
- "version": "1.16.4",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.16.4.tgz",
- "integrity": "sha512-ZzWuos7TI5CKUeQAtFd6Zhm2s6EpAD/ZLApIhsF9pRvRtM1RFo61dM/4MSRUA0SuLugA/zgrZD8m0BaY46Og7g==",
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz",
+ "integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==",
"dev": true
},
"pretty-bytes": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz",
- "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz",
+ "integrity": "sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==",
"dev": true
},
"pretty-error": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz",
- "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz",
+ "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=",
"dev": true,
"requires": {
- "lodash": "^4.17.20",
- "renderkid": "^2.0.4"
+ "renderkid": "^2.0.1",
+ "utila": "~0.4"
}
},
"pretty-format": {
- "version": "23.6.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz",
- "integrity": "sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz",
+ "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==",
"dev": true,
"requires": {
- "ansi-regex": "^3.0.0",
- "ansi-styles": "^3.2.0"
+ "@jest/types": "^24.9.0",
+ "ansi-regex": "^4.0.0",
+ "ansi-styles": "^3.2.0",
+ "react-is": "^16.8.4"
},
"dependencies": {
"ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
"dev": true
}
}
},
- "private": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
- "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
- "dev": true
- },
"process": {
"version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
@@ -15510,7 +14361,8 @@
"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=="
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+ "dev": true
},
"progress": {
"version": "2.0.3",
@@ -15532,14 +14384,27 @@
"integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
"dev": true
},
+ "prompt": {
+ "version": "0.2.14",
+ "resolved": "https://registry.npmjs.org/prompt/-/prompt-0.2.14.tgz",
+ "integrity": "sha1-V3VPZPVD/XsIRXB8gY7OYY8F/9w=",
+ "dev": true,
+ "requires": {
+ "pkginfo": "0.x.x",
+ "read": "1.0.x",
+ "revalidator": "0.1.x",
+ "utile": "0.2.x",
+ "winston": "0.8.x"
+ }
+ },
"prompts": {
- "version": "0.1.14",
- "resolved": "https://registry.npmjs.org/prompts/-/prompts-0.1.14.tgz",
- "integrity": "sha512-rxkyiE9YH6zAz/rZpywySLKkpaj0NMVyNw1qhsubdbjjSgcayjTShDreZGlFMcGSu5sab3bAKPfFk78PB90+8w==",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz",
+ "integrity": "sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==",
"dev": true,
"requires": {
- "kleur": "^2.0.1",
- "sisteransi": "^0.1.1"
+ "kleur": "^3.0.3",
+ "sisteransi": "^1.0.4"
}
},
"prop-types": {
@@ -15562,15 +14427,11 @@
"reflect.ownkeys": "^0.2.0"
}
},
- "property-expr": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-1.5.1.tgz",
- "integrity": "sha512-CGuc0VUTGthpJXL36ydB6jnbyOf/rAHFvmVrJlH+Rg0DqqLFQGAP6hIaxD/G0OAmBJPhXDHuEJigrp0e0wFV6g=="
- },
"proxy-addr": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
"integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
+ "dev": true,
"requires": {
"forwarded": "~0.1.2",
"ipaddr.js": "1.9.1"
@@ -15585,12 +14446,14 @@
"pseudomap": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+ "dev": true
},
"psl": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
- "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
+ "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==",
+ "dev": true
},
"public-encrypt": {
"version": "4.0.3",
@@ -15618,6 +14481,7 @@
"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"
@@ -15649,7 +14513,8 @@
"punycode": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "dev": true
},
"q": {
"version": "1.5.1",
@@ -15674,7 +14539,8 @@
"qs": {
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
- "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
+ "dev": true
},
"query-string": {
"version": "5.1.1",
@@ -15704,6 +14570,12 @@
"integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
"dev": true
},
+ "quick-lru": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
+ "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
+ "dev": true
+ },
"raf": {
"version": "3.4.1",
"resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz",
@@ -15712,23 +14584,6 @@
"performance-now": "^2.1.0"
}
},
- "randomatic": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz",
- "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==",
- "requires": {
- "is-number": "^4.0.0",
- "kind-of": "^6.0.0",
- "math-random": "^1.0.1"
- },
- "dependencies": {
- "is-number": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
- "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ=="
- }
- }
- },
"randombytes": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
@@ -15751,27 +14606,19 @@
"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=="
+ "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",
"http-errors": "1.7.2",
"iconv-lite": "0.4.24",
"unpipe": "1.0.0"
- },
- "dependencies": {
- "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"
- }
- }
}
},
"rc-align": {
@@ -15799,90 +14646,219 @@
"react-lifecycles-compat": "^3.0.4"
}
},
- "rc-calendar": {
- "version": "9.15.11",
- "resolved": "https://registry.npmjs.org/rc-calendar/-/rc-calendar-9.15.11.tgz",
- "integrity": "sha512-qv0VXfAAnysMWJigxaP6se4bJHvr17D9qsLbi8BOpdgEocsS0RkgY1IUiFaOVYKJDy/EyLC447O02sV/y5YYBg==",
- "requires": {
- "babel-runtime": "6.x",
- "classnames": "2.x",
- "moment": "2.x",
- "prop-types": "^15.5.8",
- "rc-trigger": "^2.2.0",
- "rc-util": "^4.1.1",
- "react-lifecycles-compat": "^3.0.4"
- }
- },
"rc-cascader": {
- "version": "0.17.5",
- "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-0.17.5.tgz",
- "integrity": "sha512-WYMVcxU0+Lj+xLr4YYH0+yXODumvNXDcVEs5i7L1mtpWwYkubPV/zbQpn+jGKFCIW/hOhjkU4J1db8/P/UKE7A==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-1.3.0.tgz",
+ "integrity": "sha512-wayuMo/dSZixvdpiRFZB4Q6A3omKRXQcJ3CxN02+PNiTEcRnK2KDqKUzrx7GwgMsyH5tz90lUZ91lLaEPNFv0A==",
"requires": {
"array-tree-filter": "^2.1.0",
- "prop-types": "^15.5.8",
- "rc-trigger": "^2.2.0",
- "rc-util": "^4.0.4",
- "react-lifecycles-compat": "^3.0.4",
- "shallow-equal": "^1.0.0",
+ "rc-trigger": "^4.0.0",
+ "rc-util": "^5.0.1",
"warning": "^4.0.1"
+ },
+ "dependencies": {
+ "rc-align": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/rc-align/-/rc-align-4.0.3.tgz",
+ "integrity": "sha512-TpI0t1tvAo/wYdoZbZlkCK+MkQBqNuPyRZesfsji4tMlqoqQ0q0MhnC9JD5KGPitMvmSB+KWgFpaN2uTz4hw6Q==",
+ "requires": {
+ "@babel/runtime": "^7.10.1",
+ "classnames": "2.x",
+ "dom-align": "^1.7.0",
+ "rc-util": "^5.0.1",
+ "resize-observer-polyfill": "^1.5.1"
+ }
+ },
+ "rc-trigger": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-4.4.2.tgz",
+ "integrity": "sha512-uw2/s7j1b/RXyixa4omPuxZWv/3ln+H+p0v3trIUBxseolbdj8TTFpXYjXMZdGtMpAEAIbN1yo/K+r7wRB+xtQ==",
+ "requires": {
+ "@babel/runtime": "^7.10.1",
+ "classnames": "^2.2.6",
+ "raf": "^3.4.1",
+ "rc-align": "^4.0.0",
+ "rc-motion": "^1.0.0",
+ "rc-util": "^5.0.1"
+ }
+ },
+ "rc-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz",
+ "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==",
+ "requires": {
+ "react-is": "^16.12.0",
+ "shallowequal": "^1.1.0"
+ }
+ }
}
},
"rc-checkbox": {
- "version": "2.1.8",
- "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-2.1.8.tgz",
- "integrity": "sha512-6qOgh0/by0nVNASx6LZnhRTy17Etcgav+IrI7kL9V9kcDZ/g7K14JFlqrtJ3NjDq/Kyn+BPI1st1XvbkhfaJeg==",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-2.3.1.tgz",
+ "integrity": "sha512-i290/iTqmZ0WtI2UPIryqT9rW6O99+an4KeZIyZDH3r+Jbb6YdddaWNdzq7g5m9zaNhJvgjf//wJtC4fvve2Tg==",
"requires": {
- "babel-runtime": "^6.23.0",
- "classnames": "2.x",
- "prop-types": "15.x",
- "react-lifecycles-compat": "^3.0.4"
+ "@babel/runtime": "^7.10.1",
+ "classnames": "^2.2.1"
}
},
"rc-collapse": {
- "version": "1.11.8",
- "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-1.11.8.tgz",
- "integrity": "sha512-8EhfPyScTYljkbRuIoHniSwZagD5UPpZ3CToYgoNYWC85L2qCbPYF7+OaC713FOrIkp6NbfNqXsITNxmDAmxog==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-2.0.0.tgz",
+ "integrity": "sha512-R5+Ge1uzwK9G1wZPRPhqQsed4FXTDmU0BKzsqfNBtZdk/wd+yey8ZutmJmSozYc5hQwjPkCvJHV7gOIRZKIlJg==",
"requires": {
+ "@ant-design/css-animation": "^1.7.2",
"classnames": "2.x",
- "css-animation": "1.x",
- "prop-types": "^15.5.6",
- "rc-animate": "2.x",
+ "rc-animate": "3.x",
"react-is": "^16.7.0",
- "react-lifecycles-compat": "^3.0.4",
"shallowequal": "^1.1.0"
+ },
+ "dependencies": {
+ "rc-animate": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/rc-animate/-/rc-animate-3.1.0.tgz",
+ "integrity": "sha512-8FsM+3B1H+0AyTyGggY6JyVldHTs1CyYT8CfTmG/nGHHXlecvSLeICJhcKgRLjUiQlctNnRtB1rwz79cvBVmrw==",
+ "requires": {
+ "@ant-design/css-animation": "^1.7.2",
+ "classnames": "^2.2.6",
+ "raf": "^3.4.0",
+ "rc-util": "^5.0.1"
+ }
+ },
+ "rc-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz",
+ "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==",
+ "requires": {
+ "react-is": "^16.12.0",
+ "shallowequal": "^1.1.0"
+ }
+ }
+ }
+ },
+ "rc-color-picker": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/rc-color-picker/-/rc-color-picker-1.2.6.tgz",
+ "integrity": "sha512-AaC9Pg7qCHSy5M4eVbqDIaNb2FC4SEw82GOHB2C4R/+vF2FVa/r5XA+Igg5+zLPmAvBLhz9tL4MAfkRA8yWNJw==",
+ "requires": {
+ "classnames": "^2.2.5",
+ "prop-types": "^15.5.8",
+ "rc-trigger": "1.x",
+ "rc-util": "^4.0.2",
+ "tinycolor2": "^1.4.1"
+ },
+ "dependencies": {
+ "rc-trigger": {
+ "version": "1.11.5",
+ "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-1.11.5.tgz",
+ "integrity": "sha512-MBuUPw1nFzA4K7jQOwb7uvFaZFjXGd00EofUYiZ+l/fgKVq8wnLC0lkv36kwqM7vfKyftRo2sh7cWVpdPuNnnw==",
+ "requires": {
+ "babel-runtime": "6.x",
+ "create-react-class": "15.x",
+ "prop-types": "15.x",
+ "rc-align": "2.x",
+ "rc-animate": "2.x",
+ "rc-util": "4.x"
+ }
+ }
}
},
"rc-dialog": {
- "version": "7.5.14",
- "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-7.5.14.tgz",
- "integrity": "sha512-gmEukl2iU2K74G2g66rVH6yOCwvLbVWqmEClbRO47Iec/stFyaDXCkvJmBb5vJcAWomQwaU4yZ9muRBW4u9AfA==",
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-8.1.1.tgz",
+ "integrity": "sha512-ToyHiMlV94z8LfnmeKoVvu04Pd9+HdwwSHhY2a8IWeYGA5Cjk1WyIZvS+njCsm8rSMM4NqPqFkMZA0N/Iw0NrQ==",
"requires": {
- "babel-runtime": "6.x",
- "rc-animate": "2.x",
- "rc-util": "^4.8.1"
+ "rc-animate": "3.x",
+ "rc-util": "^5.0.1"
+ },
+ "dependencies": {
+ "rc-animate": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/rc-animate/-/rc-animate-3.1.0.tgz",
+ "integrity": "sha512-8FsM+3B1H+0AyTyGggY6JyVldHTs1CyYT8CfTmG/nGHHXlecvSLeICJhcKgRLjUiQlctNnRtB1rwz79cvBVmrw==",
+ "requires": {
+ "@ant-design/css-animation": "^1.7.2",
+ "classnames": "^2.2.6",
+ "raf": "^3.4.0",
+ "rc-util": "^5.0.1"
+ }
+ },
+ "rc-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz",
+ "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==",
+ "requires": {
+ "react-is": "^16.12.0",
+ "shallowequal": "^1.1.0"
+ }
+ }
}
},
"rc-drawer": {
- "version": "2.0.9",
- "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-2.0.9.tgz",
- "integrity": "sha512-7qwEND3TLvJeyuUvZfMDkL2pHsR/XHX5HvoaBlIH9mTcFWBmMNrvYGDuGHgGsdNKZZgIBwlkvl5vhckydTUc9Q==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-4.1.0.tgz",
+ "integrity": "sha512-kjeQFngPjdzAFahNIV0EvEBoIKMOnvUsAxpkSPELoD/1DuR4nLafom5ryma+TIxGwkFJ92W6yjsMi1U9aiOTeQ==",
"requires": {
- "babel-runtime": "6.x",
- "classnames": "^2.2.5",
- "rc-util": "^4.7.0",
- "react-lifecycles-compat": "^3.0.4"
+ "@babel/runtime": "^7.10.1",
+ "classnames": "^2.2.6",
+ "rc-util": "^5.0.1"
+ },
+ "dependencies": {
+ "rc-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz",
+ "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==",
+ "requires": {
+ "react-is": "^16.12.0",
+ "shallowequal": "^1.1.0"
+ }
+ }
}
},
"rc-dropdown": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-2.4.1.tgz",
- "integrity": "sha512-p0XYn0wrOpAZ2fUGE6YJ6U8JBNc5ASijznZ6dkojdaEfQJAeZtV9KMEewhxkVlxGSbbdXe10ptjBlTEW9vEwEg==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-3.1.2.tgz",
+ "integrity": "sha512-s2W5jqvjTid5DxotGO5FlTBaQWeB+Bu7McQgjB8Ot3Wbl72AIKwLf11+lgbV4mA2vWC1H8DKyn6SW9TKLTi0xg==",
"requires": {
- "babel-runtime": "^6.26.0",
+ "@babel/runtime": "^7.10.1",
"classnames": "^2.2.6",
- "prop-types": "^15.5.8",
- "rc-trigger": "^2.5.1",
- "react-lifecycles-compat": "^3.0.2"
+ "rc-trigger": "^4.0.0"
+ },
+ "dependencies": {
+ "rc-align": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/rc-align/-/rc-align-4.0.3.tgz",
+ "integrity": "sha512-TpI0t1tvAo/wYdoZbZlkCK+MkQBqNuPyRZesfsji4tMlqoqQ0q0MhnC9JD5KGPitMvmSB+KWgFpaN2uTz4hw6Q==",
+ "requires": {
+ "@babel/runtime": "^7.10.1",
+ "classnames": "2.x",
+ "dom-align": "^1.7.0",
+ "rc-util": "^5.0.1",
+ "resize-observer-polyfill": "^1.5.1"
+ }
+ },
+ "rc-trigger": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-4.4.2.tgz",
+ "integrity": "sha512-uw2/s7j1b/RXyixa4omPuxZWv/3ln+H+p0v3trIUBxseolbdj8TTFpXYjXMZdGtMpAEAIbN1yo/K+r7wRB+xtQ==",
+ "requires": {
+ "@babel/runtime": "^7.10.1",
+ "classnames": "^2.2.6",
+ "raf": "^3.4.1",
+ "rc-align": "^4.0.0",
+ "rc-motion": "^1.0.0",
+ "rc-util": "^5.0.1"
+ }
+ },
+ "rc-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz",
+ "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==",
+ "requires": {
+ "react-is": "^16.12.0",
+ "shallowequal": "^1.1.0"
+ }
+ }
}
},
"rc-editor-core": {
@@ -15938,6 +14914,32 @@
}
}
},
+ "rc-field-form": {
+ "version": "1.10.1",
+ "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.10.1.tgz",
+ "integrity": "sha512-aosTtNTqLYX2jsG5GyCv7axe+b57XH73T7TmmrX/cmhemhtFjvNE6RkRkmtP9VOJnZg5YGC5HfK172cnJ1Ij7Q==",
+ "requires": {
+ "@babel/runtime": "^7.8.4",
+ "async-validator": "^3.0.3",
+ "rc-util": "^5.0.0"
+ },
+ "dependencies": {
+ "async-validator": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-3.4.0.tgz",
+ "integrity": "sha512-VrFk4eYiJAWKskEz115iiuCf9O0ftnMMPXrOFMqyzGH2KxO7YwncKyn/FgOOP+0MDHMfXL7gLExagCutaZGigA=="
+ },
+ "rc-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz",
+ "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==",
+ "requires": {
+ "react-is": "^16.12.0",
+ "shallowequal": "^1.1.0"
+ }
+ }
+ }
+ },
"rc-form": {
"version": "2.4.11",
"resolved": "https://registry.npmjs.org/rc-form/-/rc-form-2.4.11.tgz",
@@ -15961,142 +14963,499 @@
"babel-runtime": "6.x"
}
},
- "rc-hammerjs": {
- "version": "0.6.10",
- "resolved": "https://registry.npmjs.org/rc-hammerjs/-/rc-hammerjs-0.6.10.tgz",
- "integrity": "sha512-Vgh9qIudyN5CHRop4M+v+xUniQBFWXKrsJxQRVtJOi2xgRrCeI52/bkpaL5HWwUhqTK9Ayq0n7lYTItT6ld5rg==",
+ "rc-image": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-3.0.4.tgz",
+ "integrity": "sha512-XPcggtKffW4k2ktOxzcu4N4RXnQwN7yrdiS0rRXK4r55SHb8BG7qQUmA0VnvKF7o+bPXUP18A3y+OI35hr8CLQ==",
"requires": {
- "babel-runtime": "6.x",
- "hammerjs": "^2.0.8",
- "prop-types": "^15.5.9"
+ "@ant-design/icons": "^4.2.2",
+ "@babel/runtime": "^7.11.2",
+ "classnames": "^2.2.6",
+ "rc-dialog": "^8.3.2",
+ "rc-util": "^5.0.6"
+ },
+ "dependencies": {
+ "@babel/runtime": {
+ "version": "7.11.2",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz",
+ "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==",
+ "requires": {
+ "regenerator-runtime": "^0.13.4"
+ }
+ },
+ "rc-animate": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/rc-animate/-/rc-animate-3.1.0.tgz",
+ "integrity": "sha512-8FsM+3B1H+0AyTyGggY6JyVldHTs1CyYT8CfTmG/nGHHXlecvSLeICJhcKgRLjUiQlctNnRtB1rwz79cvBVmrw==",
+ "requires": {
+ "@ant-design/css-animation": "^1.7.2",
+ "classnames": "^2.2.6",
+ "raf": "^3.4.0",
+ "rc-util": "^5.0.1"
+ }
+ },
+ "rc-dialog": {
+ "version": "8.3.3",
+ "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-8.3.3.tgz",
+ "integrity": "sha512-EEc9PoyZ+5lLdoT+b8p39628qQngULF/+Id1Sw/LNE26+P/fjEdbTisAanCZyrguhjPI5ougAkEr3drlQAW/ZA==",
+ "requires": {
+ "@babel/runtime": "^7.10.1",
+ "rc-animate": "3.x",
+ "rc-util": "^5.0.1"
+ }
+ },
+ "rc-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz",
+ "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==",
+ "requires": {
+ "react-is": "^16.12.0",
+ "shallowequal": "^1.1.0"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.13.7",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
+ "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
+ }
}
},
"rc-input-number": {
- "version": "4.4.5",
- "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-4.4.5.tgz",
- "integrity": "sha512-Dt20e8Ylc/N/6oXiPUlwDVdx3fz7W5umUOa4z5pBuWFG7NPlBVXRWkq7+nbnTyaK24UxN67PVpmD3+Omo+QRZQ==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-6.0.0.tgz",
+ "integrity": "sha512-vbe+g7HvR/joknSnvLkBTi9N9I+LsV4kljfuog8WNiS7OAF3aEN0QcHSOQ4+xk6+Hx9P1tU63z2+TyEx8W/j2Q==",
"requires": {
- "babel-runtime": "6.x",
- "classnames": "^2.2.0",
- "prop-types": "^15.5.7",
- "rc-util": "^4.5.1",
- "rmc-feedback": "^2.0.0"
+ "@babel/runtime": "^7.10.1",
+ "classnames": "^2.2.5",
+ "rc-util": "^5.0.1"
+ },
+ "dependencies": {
+ "rc-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz",
+ "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==",
+ "requires": {
+ "react-is": "^16.12.0",
+ "shallowequal": "^1.1.0"
+ }
+ }
}
},
"rc-mentions": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-0.3.1.tgz",
- "integrity": "sha512-fa5dN3IMTahJfAga1nmma9OymK/ZBV/MZfV11h4kjDmCAVETv5EbAlV0mn6Y+JajvXS6n/XFoPUSF+nwK/AeWw==",
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-1.4.2.tgz",
+ "integrity": "sha512-wSmHRF9kFwrbj59mR+u4yVr0KtcrfPw53PYOVizYxYeDfmwaCcSgk29F8OjlDy5jVqUaMhHX5nIiYCePu5Aytg==",
"requires": {
- "@ant-design/create-react-context": "^0.2.4",
- "babel-runtime": "^6.23.0",
+ "@babel/runtime": "^7.10.1",
"classnames": "^2.2.6",
- "rc-menu": "^7.4.22",
- "rc-trigger": "^2.6.2",
- "rc-util": "^4.6.0",
- "react-lifecycles-compat": "^3.0.4"
+ "rc-menu": "^8.0.1",
+ "rc-textarea": "^0.3.0",
+ "rc-trigger": "^4.3.0",
+ "rc-util": "^5.0.1"
+ },
+ "dependencies": {
+ "rc-align": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/rc-align/-/rc-align-4.0.3.tgz",
+ "integrity": "sha512-TpI0t1tvAo/wYdoZbZlkCK+MkQBqNuPyRZesfsji4tMlqoqQ0q0MhnC9JD5KGPitMvmSB+KWgFpaN2uTz4hw6Q==",
+ "requires": {
+ "@babel/runtime": "^7.10.1",
+ "classnames": "2.x",
+ "dom-align": "^1.7.0",
+ "rc-util": "^5.0.1",
+ "resize-observer-polyfill": "^1.5.1"
+ }
+ },
+ "rc-trigger": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-4.4.2.tgz",
+ "integrity": "sha512-uw2/s7j1b/RXyixa4omPuxZWv/3ln+H+p0v3trIUBxseolbdj8TTFpXYjXMZdGtMpAEAIbN1yo/K+r7wRB+xtQ==",
+ "requires": {
+ "@babel/runtime": "^7.10.1",
+ "classnames": "^2.2.6",
+ "raf": "^3.4.1",
+ "rc-align": "^4.0.0",
+ "rc-motion": "^1.0.0",
+ "rc-util": "^5.0.1"
+ }
+ },
+ "rc-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz",
+ "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==",
+ "requires": {
+ "react-is": "^16.12.0",
+ "shallowequal": "^1.1.0"
+ }
+ }
}
},
"rc-menu": {
- "version": "7.4.32",
- "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-7.4.32.tgz",
- "integrity": "sha512-9/ySqniMdvhUhfiUFmqK3hLffYIdeR2nrDDNvXksTCc2ZYd1JmOWF16yO7iYyDPLZM33NU3Qw6EPZd21+FxJsQ==",
+ "version": "8.5.3",
+ "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-8.5.3.tgz",
+ "integrity": "sha512-OLdN+jwhabgyRZDvWYjYpO7RP7wLybhNuAulgGqx1oUPBJrtgVlG/X4HtPb7nypRx/n+eicj6H8CtbCs0L4m/Q==",
"requires": {
+ "@babel/runtime": "^7.10.1",
"classnames": "2.x",
- "dom-scroll-into-view": "1.x",
- "mini-store": "^2.0.0",
- "mutationobserver-shim": "^0.3.2",
- "rc-animate": "2.x",
- "rc-trigger": "^2.3.0",
- "rc-util": "^4.13.0",
- "resize-observer-polyfill": "^1.5.0"
+ "mini-store": "^3.0.1",
+ "omit.js": "^2.0.0",
+ "rc-motion": "^1.0.1",
+ "rc-trigger": "^4.4.0",
+ "rc-util": "^5.0.1",
+ "resize-observer-polyfill": "^1.5.0",
+ "shallowequal": "^1.1.0"
+ },
+ "dependencies": {
+ "omit.js": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/omit.js/-/omit.js-2.0.2.tgz",
+ "integrity": "sha512-hJmu9D+bNB40YpL9jYebQl4lsTW6yEHRTroJzNLqQJYHm7c+NQnJGfZmIWh8S3q3KoaxV1aLhV6B3+0N0/kyJg=="
+ },
+ "rc-align": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/rc-align/-/rc-align-4.0.3.tgz",
+ "integrity": "sha512-TpI0t1tvAo/wYdoZbZlkCK+MkQBqNuPyRZesfsji4tMlqoqQ0q0MhnC9JD5KGPitMvmSB+KWgFpaN2uTz4hw6Q==",
+ "requires": {
+ "@babel/runtime": "^7.10.1",
+ "classnames": "2.x",
+ "dom-align": "^1.7.0",
+ "rc-util": "^5.0.1",
+ "resize-observer-polyfill": "^1.5.1"
+ }
+ },
+ "rc-trigger": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-4.4.2.tgz",
+ "integrity": "sha512-uw2/s7j1b/RXyixa4omPuxZWv/3ln+H+p0v3trIUBxseolbdj8TTFpXYjXMZdGtMpAEAIbN1yo/K+r7wRB+xtQ==",
+ "requires": {
+ "@babel/runtime": "^7.10.1",
+ "classnames": "^2.2.6",
+ "raf": "^3.4.1",
+ "rc-align": "^4.0.0",
+ "rc-motion": "^1.0.0",
+ "rc-util": "^5.0.1"
+ }
+ },
+ "rc-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz",
+ "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==",
+ "requires": {
+ "react-is": "^16.12.0",
+ "shallowequal": "^1.1.0"
+ }
+ }
+ }
+ },
+ "rc-motion": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-1.1.2.tgz",
+ "integrity": "sha512-YC/E7SSWKBFakYg4PENhSRWD4ZLDqkI7FKmutJcrMewZ91/ZIWfoZSDvPaBdKO0hsFrrzWepFhXQIq0FNnCMWA==",
+ "requires": {
+ "@babel/runtime": "^7.11.1",
+ "classnames": "^2.2.1",
+ "raf": "^3.4.1",
+ "rc-util": "^5.0.6"
+ },
+ "dependencies": {
+ "@babel/runtime": {
+ "version": "7.11.2",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz",
+ "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==",
+ "requires": {
+ "regenerator-runtime": "^0.13.4"
+ }
+ },
+ "rc-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz",
+ "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==",
+ "requires": {
+ "react-is": "^16.12.0",
+ "shallowequal": "^1.1.0"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.13.7",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
+ "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
+ }
}
},
"rc-notification": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-3.3.1.tgz",
- "integrity": "sha512-U5+f4BmBVfMSf3OHSLyRagsJ74yKwlrQAtbbL5ijoA0F2C60BufwnOcHG18tVprd7iaIjzZt1TKMmQSYSvgrig==",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-4.4.0.tgz",
+ "integrity": "sha512-IDeNAFGVeOsy1tv4zNVqMAXB9tianR80ewQbtObaAQfjwAjWfONdqdyjFkEU6nc6UQhSUYA5OcTGb7kwwbnh0g==",
"requires": {
- "babel-runtime": "6.x",
+ "@babel/runtime": "^7.10.1",
"classnames": "2.x",
- "prop-types": "^15.5.8",
- "rc-animate": "2.x",
- "rc-util": "^4.0.4"
+ "rc-animate": "3.x",
+ "rc-util": "^5.0.1"
+ },
+ "dependencies": {
+ "rc-animate": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/rc-animate/-/rc-animate-3.1.0.tgz",
+ "integrity": "sha512-8FsM+3B1H+0AyTyGggY6JyVldHTs1CyYT8CfTmG/nGHHXlecvSLeICJhcKgRLjUiQlctNnRtB1rwz79cvBVmrw==",
+ "requires": {
+ "@ant-design/css-animation": "^1.7.2",
+ "classnames": "^2.2.6",
+ "raf": "^3.4.0",
+ "rc-util": "^5.0.1"
+ }
+ },
+ "rc-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz",
+ "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==",
+ "requires": {
+ "react-is": "^16.12.0",
+ "shallowequal": "^1.1.0"
+ }
+ }
}
},
"rc-pagination": {
- "version": "1.20.15",
- "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-1.20.15.tgz",
- "integrity": "sha512-/Xr4/3GOa1DtL8iCYl7qRUroEMrRDhZiiuHwcVFfSiwa9LYloMlUWcOJsnr8LN6A7rLPdm3/CHStUNeYd+2pKw==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-3.0.3.tgz",
+ "integrity": "sha512-xm6LsiSOAWlxferiL5e0jcun1B9vbvYzcIkqpYZR7YvC5ZrcU9KKihb+DZe3DY+oUc49xhX2qGS4D66ITHqekQ==",
"requires": {
- "babel-runtime": "6.x",
- "classnames": "^2.2.6",
- "prop-types": "^15.5.7",
- "react-lifecycles-compat": "^3.0.4"
+ "@babel/runtime": "^7.10.1",
+ "classnames": "^2.2.1"
+ }
+ },
+ "rc-picker": {
+ "version": "2.0.9",
+ "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-2.0.9.tgz",
+ "integrity": "sha512-fLVYQYUv+gV9Nr5TXsf//3if7mKaGT/h3roONNSrw3KN86To/ppbfFgvJfzkfdO7zyfY8TpOVhdgYPATehEolg==",
+ "requires": {
+ "@babel/runtime": "^7.10.1",
+ "classnames": "^2.2.1",
+ "date-fns": "^2.15.0",
+ "dayjs": "^1.8.30",
+ "moment": "^2.24.0",
+ "rc-trigger": "^4.0.0",
+ "rc-util": "^5.0.1",
+ "shallowequal": "^1.1.0"
+ },
+ "dependencies": {
+ "date-fns": {
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.16.1.tgz",
+ "integrity": "sha512-sAJVKx/FqrLYHAQeN7VpJrPhagZc9R4ImZIWYRFZaaohR3KzmuK88touwsSwSVT8Qcbd4zoDsnGfX4GFB4imyQ=="
+ },
+ "rc-align": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/rc-align/-/rc-align-4.0.3.tgz",
+ "integrity": "sha512-TpI0t1tvAo/wYdoZbZlkCK+MkQBqNuPyRZesfsji4tMlqoqQ0q0MhnC9JD5KGPitMvmSB+KWgFpaN2uTz4hw6Q==",
+ "requires": {
+ "@babel/runtime": "^7.10.1",
+ "classnames": "2.x",
+ "dom-align": "^1.7.0",
+ "rc-util": "^5.0.1",
+ "resize-observer-polyfill": "^1.5.1"
+ }
+ },
+ "rc-trigger": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-4.4.2.tgz",
+ "integrity": "sha512-uw2/s7j1b/RXyixa4omPuxZWv/3ln+H+p0v3trIUBxseolbdj8TTFpXYjXMZdGtMpAEAIbN1yo/K+r7wRB+xtQ==",
+ "requires": {
+ "@babel/runtime": "^7.10.1",
+ "classnames": "^2.2.6",
+ "raf": "^3.4.1",
+ "rc-align": "^4.0.0",
+ "rc-motion": "^1.0.0",
+ "rc-util": "^5.0.1"
+ }
+ },
+ "rc-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz",
+ "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==",
+ "requires": {
+ "react-is": "^16.12.0",
+ "shallowequal": "^1.1.0"
+ }
+ }
}
},
"rc-progress": {
- "version": "2.5.3",
- "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-2.5.3.tgz",
- "integrity": "sha512-K2fa4CnqGehLZoMrdmBeZ86ONSTVcdk5FlqetbwJ3R/+42XfqhwQVOjWp2MH4P7XSQOMAGcNOy1SFfCP3415sg==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-3.0.0.tgz",
+ "integrity": "sha512-dQv1KU3o6Vay604FMYMF4S0x4GNXAgXf1tbQ1QoxeIeQt4d5fUeB7Ri82YPu+G+aRvH/AtxYAlEcnxyVZ1/4Hw==",
"requires": {
- "babel-runtime": "6.x",
- "prop-types": "^15.5.8"
+ "classnames": "^2.2.6"
}
},
"rc-rate": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.5.1.tgz",
- "integrity": "sha512-3iJkNJT8xlHklPCdeZtUZmJmRVUbr6AHRlfSsztfYTXVlHrv2TcPn3XkHsH+12j812WVB7gvilS2j3+ffjUHXg==",
+ "version": "2.8.2",
+ "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.8.2.tgz",
+ "integrity": "sha512-f9T/D+ZwWQrWHkpidpQbnXpnVMGMC4eSRAkwuu88a8Qv1C/9LNc4AErazoh8tpnZBFqq19F3j0Glv+sDgkfEig==",
"requires": {
+ "@babel/runtime": "^7.10.1",
"classnames": "^2.2.5",
- "prop-types": "^15.5.8",
- "rc-util": "^4.3.0",
- "react-lifecycles-compat": "^3.0.4"
+ "rc-util": "^5.0.1"
+ },
+ "dependencies": {
+ "rc-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz",
+ "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==",
+ "requires": {
+ "react-is": "^16.12.0",
+ "shallowequal": "^1.1.0"
+ }
+ }
}
},
- "rc-select": {
- "version": "9.2.3",
- "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-9.2.3.tgz",
- "integrity": "sha512-WhswxOMWiNnkXRbxyrj0kiIvyCfo/BaRPaYbsDetSIAU2yEDwKHF798blCP5u86KLOBKBvtxWLFCkSsQw1so5w==",
+ "rc-resize-observer": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-0.2.5.tgz",
+ "integrity": "sha512-cc4sOI722MVoCkGf/ZZybDVsjxvnH0giyDdA7wBJLTiMSFJ0eyxBMnr0JLYoClxftjnr75Xzl/VUB3HDrAx04Q==",
"requires": {
- "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"
+ "@babel/runtime": "^7.10.1",
+ "classnames": "^2.2.1",
+ "rc-util": "^5.0.0",
+ "resize-observer-polyfill": "^1.5.1"
+ },
+ "dependencies": {
+ "rc-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz",
+ "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==",
+ "requires": {
+ "react-is": "^16.12.0",
+ "shallowequal": "^1.1.0"
+ }
+ }
}
},
- "rc-slider": {
- "version": "8.6.13",
- "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-8.6.13.tgz",
- "integrity": "sha512-fCUe8pPn8n9pq1ARX44nN2nzJoATtna4x/PdskUrxIvZXN8ja7HuceN/hq6kokZjo3FBD2B1yMZvZh6oi68l6Q==",
+ "rc-select": {
+ "version": "11.1.7",
+ "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-11.1.7.tgz",
+ "integrity": "sha512-HZozKGhFbLDI995OUKQW2uZ2ZcGyzNhWN6gTQqpW5/Z0rae1zftpgkI1yxZ79LukOc8lO2NKlDDKCGH/SJH2Cg==",
"requires": {
- "babel-runtime": "6.x",
- "classnames": "^2.2.5",
- "prop-types": "^15.5.4",
- "rc-tooltip": "^3.7.0",
- "rc-util": "^4.0.4",
- "shallowequal": "^1.0.1",
+ "@babel/runtime": "^7.10.1",
+ "classnames": "2.x",
+ "rc-motion": "^1.0.1",
+ "rc-trigger": "^4.3.0",
+ "rc-util": "^5.0.1",
+ "rc-virtual-list": "^3.0.3",
"warning": "^4.0.3"
- }
+ },
+ "dependencies": {
+ "rc-align": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/rc-align/-/rc-align-4.0.3.tgz",
+ "integrity": "sha512-TpI0t1tvAo/wYdoZbZlkCK+MkQBqNuPyRZesfsji4tMlqoqQ0q0MhnC9JD5KGPitMvmSB+KWgFpaN2uTz4hw6Q==",
+ "requires": {
+ "@babel/runtime": "^7.10.1",
+ "classnames": "2.x",
+ "dom-align": "^1.7.0",
+ "rc-util": "^5.0.1",
+ "resize-observer-polyfill": "^1.5.1"
+ }
+ },
+ "rc-trigger": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-4.4.2.tgz",
+ "integrity": "sha512-uw2/s7j1b/RXyixa4omPuxZWv/3ln+H+p0v3trIUBxseolbdj8TTFpXYjXMZdGtMpAEAIbN1yo/K+r7wRB+xtQ==",
+ "requires": {
+ "@babel/runtime": "^7.10.1",
+ "classnames": "^2.2.6",
+ "raf": "^3.4.1",
+ "rc-align": "^4.0.0",
+ "rc-motion": "^1.0.0",
+ "rc-util": "^5.0.1"
+ }
+ },
+ "rc-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz",
+ "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==",
+ "requires": {
+ "react-is": "^16.12.0",
+ "shallowequal": "^1.1.0"
+ }
+ }
+ }
+ },
+ "rc-slider": {
+ "version": "9.3.1",
+ "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-9.3.1.tgz",
+ "integrity": "sha512-c52PWPyrfJWh28K6dixAm0906L3/4MUIxqrNQA4TLnC/Z+cBNycWJUZoJerpwSOE1HdM3XDwixCsmtFc/7aWlQ==",
+ "requires": {
+ "@babel/runtime": "^7.10.1",
+ "classnames": "^2.2.5",
+ "rc-tooltip": "^4.0.0",
+ "rc-util": "^5.0.0",
+ "shallowequal": "^1.1.0"
+ },
+ "dependencies": {
+ "rc-align": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/rc-align/-/rc-align-4.0.3.tgz",
+ "integrity": "sha512-TpI0t1tvAo/wYdoZbZlkCK+MkQBqNuPyRZesfsji4tMlqoqQ0q0MhnC9JD5KGPitMvmSB+KWgFpaN2uTz4hw6Q==",
+ "requires": {
+ "@babel/runtime": "^7.10.1",
+ "classnames": "2.x",
+ "dom-align": "^1.7.0",
+ "rc-util": "^5.0.1",
+ "resize-observer-polyfill": "^1.5.1"
+ }
+ },
+ "rc-tooltip": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-4.2.2.tgz",
+ "integrity": "sha512-mAs+gAngUyHVA6HdFXsELoJOHgfjAACLLc8SGtnVhovJdyqs5ZGSL9p5i+ApNaVpwjswqShw7L4DRtMl7cXCQg==",
+ "requires": {
+ "rc-trigger": "^4.2.1"
+ }
+ },
+ "rc-trigger": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-4.4.2.tgz",
+ "integrity": "sha512-uw2/s7j1b/RXyixa4omPuxZWv/3ln+H+p0v3trIUBxseolbdj8TTFpXYjXMZdGtMpAEAIbN1yo/K+r7wRB+xtQ==",
+ "requires": {
+ "@babel/runtime": "^7.10.1",
+ "classnames": "^2.2.6",
+ "raf": "^3.4.1",
+ "rc-align": "^4.0.0",
+ "rc-motion": "^1.0.0",
+ "rc-util": "^5.0.1"
+ }
+ },
+ "rc-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz",
+ "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==",
+ "requires": {
+ "react-is": "^16.12.0",
+ "shallowequal": "^1.1.0"
+ }
+ }
+ }
},
"rc-steps": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-3.4.1.tgz",
- "integrity": "sha512-zdeOFmFqiXlXCQyHet1qrDDbGKZ7OQTrlzn8DP5N6M/WqN7HaYoUDy1fZ+NY2htL5WzzVFQpDRKzjiOiHaSqgw==",
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-4.1.2.tgz",
+ "integrity": "sha512-kTPiojPtJi12Y7whRqlydRgJXQ1u9JlvGchI6xDrmOMZVpCTLpfc/18iu+aHCtCZaSnM2ENU/9lfm/naWVFcRw==",
"requires": {
- "babel-runtime": "^6.23.0",
+ "@babel/runtime": "^7.10.2",
"classnames": "^2.2.3",
- "lodash": "^4.17.5",
- "prop-types": "^15.5.7"
+ "rc-util": "^5.0.1"
+ },
+ "dependencies": {
+ "rc-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz",
+ "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==",
+ "requires": {
+ "react-is": "^16.12.0",
+ "shallowequal": "^1.1.0"
+ }
+ }
}
},
"rc-swipeout": {
@@ -16111,71 +15470,117 @@
}
},
"rc-switch": {
- "version": "1.9.2",
- "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-1.9.2.tgz",
- "integrity": "sha512-qaK7mY4FLDKy99Hq3A1tf8CcqfzKtHp9LPX8WTnZ0MzdHCTneSARb1XD7Eqeu8BactasYGsi2bF9p18Q+/5JEw==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-3.2.1.tgz",
+ "integrity": "sha512-ZXYSmx2U+bpHjljjqS5LGj2UIPcQk0EAq6japkaOzQ/OcyzMwWVD9oXMjcRZdO5W1g/pClIV70uEBOWuBMqP4g==",
"requires": {
+ "@babel/runtime": "^7.10.1",
"classnames": "^2.2.1",
- "prop-types": "^15.5.6",
- "react-lifecycles-compat": "^3.0.4"
+ "rc-util": "^5.0.1"
+ },
+ "dependencies": {
+ "rc-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz",
+ "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==",
+ "requires": {
+ "react-is": "^16.12.0",
+ "shallowequal": "^1.1.0"
+ }
+ }
}
},
"rc-table": {
- "version": "6.7.0",
- "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-6.7.0.tgz",
- "integrity": "sha512-zzu7UtEHLTzZibB1EOoeKQejH21suoxRQx3evlGGLwz5NUh2HDUHobSr12z5Kd8EPr1+y/LPzXJdX1ctFPC+hA==",
+ "version": "7.9.7",
+ "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.9.7.tgz",
+ "integrity": "sha512-S/46pdU7fKBoL7N8JDu+KpkGSB3fJkiGoxvMCLBrR4p7/BJEYr1X4MFKb5BpkE7ZpEK4n44ILiVZZT7I7EiGVA==",
"requires": {
- "babel-runtime": "6.x",
+ "@babel/runtime": "^7.10.1",
"classnames": "^2.2.5",
- "component-classes": "^1.2.6",
- "lodash": "^4.17.5",
- "mini-store": "^2.0.0",
- "prop-types": "^15.5.8",
- "rc-util": "^4.0.4",
- "react-lifecycles-compat": "^3.0.2",
- "shallowequal": "^1.0.2",
- "warning": "^3.0.0"
+ "raf": "^3.4.1",
+ "rc-resize-observer": "^0.2.0",
+ "rc-util": "^5.0.4",
+ "shallowequal": "^1.1.0"
},
"dependencies": {
- "warning": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz",
- "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=",
+ "rc-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz",
+ "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==",
"requires": {
- "loose-envify": "^1.0.0"
+ "react-is": "^16.12.0",
+ "shallowequal": "^1.1.0"
}
}
}
},
"rc-tabs": {
- "version": "9.6.7",
- "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-9.6.7.tgz",
- "integrity": "sha512-OXbDOgaqv2MGK9QaDi6cdva6bNz3XGw+M9BHQpm1gTGmVQEGx5VcclDClH/3xobIzooxy8hrxg/s0rTlgDnC2w==",
+ "version": "11.6.1",
+ "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-11.6.1.tgz",
+ "integrity": "sha512-fJZUOmwBo2E4WTbucCSZO/N1ZK+d9K/QchgDeycTIqxl5D/xtX0Dw/vC2DFi140OFjAy2JL7H0EmsSeOFfCgzw==",
"requires": {
- "@ant-design/create-react-context": "^0.2.4",
- "babel-runtime": "6.x",
+ "@babel/runtime": "^7.10.1",
"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"
+ "rc-dropdown": "^3.1.0",
+ "rc-menu": "^8.2.1",
+ "rc-resize-observer": "^0.2.1",
+ "rc-trigger": "^4.2.1",
+ "rc-util": "^5.0.0"
+ },
+ "dependencies": {
+ "rc-align": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/rc-align/-/rc-align-4.0.3.tgz",
+ "integrity": "sha512-TpI0t1tvAo/wYdoZbZlkCK+MkQBqNuPyRZesfsji4tMlqoqQ0q0MhnC9JD5KGPitMvmSB+KWgFpaN2uTz4hw6Q==",
+ "requires": {
+ "@babel/runtime": "^7.10.1",
+ "classnames": "2.x",
+ "dom-align": "^1.7.0",
+ "rc-util": "^5.0.1",
+ "resize-observer-polyfill": "^1.5.1"
+ }
+ },
+ "rc-trigger": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-4.4.2.tgz",
+ "integrity": "sha512-uw2/s7j1b/RXyixa4omPuxZWv/3ln+H+p0v3trIUBxseolbdj8TTFpXYjXMZdGtMpAEAIbN1yo/K+r7wRB+xtQ==",
+ "requires": {
+ "@babel/runtime": "^7.10.1",
+ "classnames": "^2.2.6",
+ "raf": "^3.4.1",
+ "rc-align": "^4.0.0",
+ "rc-motion": "^1.0.0",
+ "rc-util": "^5.0.1"
+ }
+ },
+ "rc-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz",
+ "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==",
+ "requires": {
+ "react-is": "^16.12.0",
+ "shallowequal": "^1.1.0"
+ }
+ }
}
},
- "rc-time-picker": {
- "version": "3.7.3",
- "resolved": "https://registry.npmjs.org/rc-time-picker/-/rc-time-picker-3.7.3.tgz",
- "integrity": "sha512-Lv1Mvzp9fRXhXEnRLO4nW6GLNxUkfAZ3RsiIBsWjGjXXvMNjdr4BX/ayElHAFK0DoJqOhm7c5tjmIYpEOwcUXg==",
+ "rc-textarea": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-0.3.0.tgz",
+ "integrity": "sha512-vrTPkPT6wrO7EI8ouLFZZLXA1pFVrVRCnkmyyf0yRComFbcH1ogmFEGu85CjVT96rQqAiQFOe0QV3nKopZOJow==",
"requires": {
- "classnames": "2.x",
- "moment": "2.x",
- "prop-types": "^15.5.8",
- "raf": "^3.4.1",
- "rc-trigger": "^2.2.0",
- "react-lifecycles-compat": "^3.0.4"
+ "@babel/runtime": "^7.10.1",
+ "classnames": "^2.2.1",
+ "omit.js": "^2.0.0",
+ "rc-resize-observer": "^0.2.3"
+ },
+ "dependencies": {
+ "omit.js": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/omit.js/-/omit.js-2.0.2.tgz",
+ "integrity": "sha512-hJmu9D+bNB40YpL9jYebQl4lsTW6yEHRTroJzNLqQJYHm7c+NQnJGfZmIWh8S3q3KoaxV1aLhV6B3+0N0/kyJg=="
+ }
}
},
"rc-tooltip": {
@@ -16189,62 +15594,47 @@
}
},
"rc-tree": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-2.1.4.tgz",
- "integrity": "sha512-Xey794Iavgs8YldFlXcZLOhfcIhlX5Oz/yfKufknBXf2AlZCOkc7aHqSM9uTF7fBPtTGPhPxNEfOqHfY7b7xng==",
+ "version": "3.9.4",
+ "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-3.9.4.tgz",
+ "integrity": "sha512-uzgpQL4LLoriYE7xTro2tzb5rd6Eg9lhjWZlN/MaWn+lsFw2nnlLbMULejHd7RQXdYB7t3tTCwk7DiKSN+udrA==",
"requires": {
- "@ant-design/create-react-context": "^0.2.4",
+ "@babel/runtime": "^7.10.1",
"classnames": "2.x",
- "prop-types": "^15.5.8",
- "rc-animate": "^2.6.0",
- "rc-util": "^4.5.1",
- "react-lifecycles-compat": "^3.0.4",
- "warning": "^4.0.3"
+ "rc-motion": "^1.0.0",
+ "rc-util": "^5.0.0",
+ "rc-virtual-list": "^3.0.1"
+ },
+ "dependencies": {
+ "rc-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz",
+ "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==",
+ "requires": {
+ "react-is": "^16.12.0",
+ "shallowequal": "^1.1.0"
+ }
+ }
}
},
"rc-tree-select": {
- "version": "2.9.4",
- "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-2.9.4.tgz",
- "integrity": "sha512-0HQkXAN4XbfBW20CZYh3G+V+VMrjX42XRtDCpyv6PDUm5vikC0Ob682ZBCVS97Ww2a5Hf6Ajmu0ahWEdIEpwhg==",
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-4.1.2.tgz",
+ "integrity": "sha512-2tRwZ4ChY+BarVKHoPR65kSZtopgwKCig6ngJiiTVgYfRdAhfdQp2j2+L8YW9TkosYGmwgTOhmlphlG3QNy7Pg==",
"requires": {
- "classnames": "^2.2.1",
- "dom-scroll-into-view": "^1.2.1",
- "prop-types": "^15.5.8",
- "raf": "^3.4.0",
- "rc-animate": "^2.8.2",
- "rc-tree": "~2.1.0",
- "rc-trigger": "^3.0.0",
- "rc-util": "^4.5.0",
- "react-lifecycles-compat": "^3.0.4",
- "shallowequal": "^1.0.2",
- "warning": "^4.0.1"
+ "@babel/runtime": "^7.10.1",
+ "classnames": "2.x",
+ "rc-select": "^11.1.1",
+ "rc-tree": "^3.8.0",
+ "rc-util": "^5.0.5"
},
"dependencies": {
- "rc-trigger": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-3.0.0.tgz",
- "integrity": "sha512-hQxbbJpo23E2QnYczfq3Ec5J5tVl2mUDhkqxrEsQAqk16HfADQg+iKNWzEYXyERSncdxfnzYuaBgy764mNRzTA==",
+ "rc-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz",
+ "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==",
"requires": {
- "babel-runtime": "6.x",
- "classnames": "^2.2.6",
- "prop-types": "15.x",
- "raf": "^3.4.0",
- "rc-align": "^2.4.1",
- "rc-animate": "^3.0.0-rc.1",
- "rc-util": "^4.15.7"
- },
- "dependencies": {
- "rc-animate": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/rc-animate/-/rc-animate-3.1.1.tgz",
- "integrity": "sha512-8wg2Zg3EETy0k/9kYuis30NJNQg1D6/WSQwnCiz6SvyxQXNet/rVraRz3bPngwY6rcU2nlRvoShiYOorXyF7Sg==",
- "requires": {
- "@ant-design/css-animation": "^1.7.2",
- "classnames": "^2.2.6",
- "raf": "^3.4.0",
- "rc-util": "^4.15.3"
- }
- }
+ "react-is": "^16.12.0",
+ "shallowequal": "^1.1.0"
}
}
}
@@ -16264,14 +15654,11 @@
}
},
"rc-upload": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-2.7.0.tgz",
- "integrity": "sha512-Oh9EJB4xE8MQUZ2D0OUST3UMIBjHjnO2IjPNW/cbPredxZz+lzbLPCZxcxRwUwu1gt0LA968UWXAgT1EvZdFfA==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-3.2.1.tgz",
+ "integrity": "sha512-gmIy08tco2YFTSiru9zgeTmUcDKPyUMUUBdUIjG2CcHz4jdbpaPx/RL/Wz9CMD6ppQizK0gES0rcQ1+o5frK2Q==",
"requires": {
- "babel-runtime": "6.x",
- "classnames": "^2.2.5",
- "prop-types": "^15.5.7",
- "warning": "4.x"
+ "classnames": "^2.2.5"
}
},
"rc-util": {
@@ -16286,15 +15673,35 @@
"shallowequal": "^1.1.0"
}
},
+ "rc-virtual-list": {
+ "version": "3.0.12",
+ "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.0.12.tgz",
+ "integrity": "sha512-CSl/QFkLzuq84rqKi1GcrDnQgnYGdsfDiGtISIX8ZE2Uc4ZmUA2exQ/4lXmX2Hnex/sQK4oO+NJuQYfY3CTxxg==",
+ "requires": {
+ "classnames": "^2.2.6",
+ "rc-resize-observer": "^0.2.3",
+ "rc-util": "^5.0.7"
+ },
+ "dependencies": {
+ "rc-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.2.1.tgz",
+ "integrity": "sha512-OnIKp4DsYZpT3St9LwiGARXyMR38wNbk7C4jXS6NGAGHZEQWck7W6qfiJwj+MUmhJiUisAknU6BUs65exbhFTw==",
+ "requires": {
+ "react-is": "^16.12.0",
+ "shallowequal": "^1.1.0"
+ }
+ }
+ }
+ },
"react": {
- "version": "16.8.6",
- "resolved": "https://registry.npmjs.org/react/-/react-16.8.6.tgz",
- "integrity": "sha512-pC0uMkhLaHm11ZSJULfOBqV4tIZkx87ZLvbbQYunNixAAvjnC+snJCg0XQXn9VIsttVsbZP/H/ewzgsd5fxKXw==",
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz",
+ "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==",
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
- "prop-types": "^15.6.2",
- "scheduler": "^0.13.6"
+ "prop-types": "^15.6.2"
}
},
"react-addons-shallow-compare": {
@@ -16306,38 +15713,48 @@
"object-assign": "^4.1.0"
}
},
+ "react-alice-carousel": {
+ "version": "1.19.3",
+ "resolved": "https://registry.npmjs.org/react-alice-carousel/-/react-alice-carousel-1.19.3.tgz",
+ "integrity": "sha512-FaOQ/f7C/4cBuXr2tA4YgVyVrvWI7VbccGxJpu+rCsnnUlcN0YLz+20iJ2TFCXJp9M+/FjBratUNC7vQBrMQPw==",
+ "requires": {
+ "prop-types": "^15.5.10",
+ "vanilla-swipe": "1.2.0"
+ }
+ },
"react-app-polyfill": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-0.2.2.tgz",
- "integrity": "sha512-mAYn96B/nB6kWG87Ry70F4D4rsycU43VYTj3ZCbKP+SLJXwC0x6YCbwcICh3uW8/C9s1VgP197yx+w7SCWeDdQ==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-1.0.6.tgz",
+ "integrity": "sha512-OfBnObtnGgLGfweORmdZbyEz+3dgVePQBb3zipiaDsMHV1NpWm0rDFYIVXFV/AK+x4VIIfWHhrdMIeoTLyRr2g==",
"dev": true,
"requires": {
- "core-js": "2.6.4",
- "object-assign": "4.1.1",
- "promise": "8.0.2",
- "raf": "3.4.1",
- "whatwg-fetch": "3.0.0"
+ "core-js": "^3.5.0",
+ "object-assign": "^4.1.1",
+ "promise": "^8.0.3",
+ "raf": "^3.4.1",
+ "regenerator-runtime": "^0.13.3",
+ "whatwg-fetch": "^3.0.0"
},
"dependencies": {
"core-js": {
- "version": "2.6.4",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.4.tgz",
- "integrity": "sha512-05qQ5hXShcqGkPZpXEFLIpxayZscVD2kuMBZewxiIPPEagukO4mqgPA9CWhUvFBJfy3ODdK2p9xyHh7FTU9/7A==",
+ "version": "3.6.5",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz",
+ "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==",
"dev": true
},
"promise": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/promise/-/promise-8.0.2.tgz",
- "integrity": "sha512-EIyzM39FpVOMbqgzEHhxdrEhtOSDOtjMZQ0M6iVfCE+kWNgCkAyOdnuCWqfmflylftfadU6FkiMgHZA2kUzwRw==",
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz",
+ "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==",
"dev": true,
"requires": {
"asap": "~2.0.6"
}
},
- "whatwg-fetch": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz",
- "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==",
+ "regenerator-runtime": {
+ "version": "0.13.7",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
+ "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==",
"dev": true
}
}
@@ -16388,77 +15805,142 @@
}
},
"react-dev-utils": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-8.0.0.tgz",
- "integrity": "sha512-TK8cj7eghvxfe7bfBluLGpI/upo4EXC+G74hYmPucAG8C2XcbT+vKnlWPwLnABb75Zk+mR6D556Da+yvDjljrw==",
+ "version": "10.2.1",
+ "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-10.2.1.tgz",
+ "integrity": "sha512-XxTbgJnYZmxuPtY3y/UV0D8/65NKkmaia4rXzViknVnZeVlklSh8u6TnaEYPfAi/Gh1TP4mEOXHI6jQOPbeakQ==",
"dev": true,
"requires": {
- "@babel/code-frame": "7.0.0",
- "address": "1.0.3",
- "browserslist": "4.4.1",
+ "@babel/code-frame": "7.8.3",
+ "address": "1.1.2",
+ "browserslist": "4.10.0",
"chalk": "2.4.2",
- "cross-spawn": "6.0.5",
+ "cross-spawn": "7.0.1",
"detect-port-alt": "1.1.6",
- "escape-string-regexp": "1.0.5",
- "filesize": "3.6.1",
- "find-up": "3.0.0",
- "fork-ts-checker-webpack-plugin": "1.0.0-alpha.6",
+ "escape-string-regexp": "2.0.0",
+ "filesize": "6.0.1",
+ "find-up": "4.1.0",
+ "fork-ts-checker-webpack-plugin": "3.1.1",
"global-modules": "2.0.0",
"globby": "8.0.2",
- "gzip-size": "5.0.0",
+ "gzip-size": "5.1.1",
"immer": "1.10.0",
- "inquirer": "6.2.1",
- "is-root": "2.0.0",
+ "inquirer": "7.0.4",
+ "is-root": "2.1.0",
"loader-utils": "1.2.3",
- "opn": "5.4.0",
- "pkg-up": "2.0.0",
- "react-error-overlay": "^5.1.4",
+ "open": "^7.0.2",
+ "pkg-up": "3.1.0",
+ "react-error-overlay": "^6.0.7",
"recursive-readdir": "2.2.2",
- "shell-quote": "1.6.1",
- "sockjs-client": "1.3.0",
- "strip-ansi": "5.0.0",
+ "shell-quote": "1.7.2",
+ "strip-ansi": "6.0.0",
"text-table": "0.2.0"
},
"dependencies": {
"@babel/code-frame": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
- "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
+ "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.8.3"
+ }
+ },
+ "ansi-escapes": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
+ "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
"dev": true,
"requires": {
- "@babel/highlight": "^7.0.0"
+ "type-fest": "^0.11.0"
}
},
"ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
"dev": true
},
"browserslist": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.4.1.tgz",
- "integrity": "sha512-pEBxEXg7JwaakBXjATYw/D1YZh4QUSCX/Mnd/wnqSRPPSi1U39iDhDoKGoBUcraKdxDlrYqJxSI5nNvD+dWP2A==",
+ "version": "4.10.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.10.0.tgz",
+ "integrity": "sha512-TpfK0TDgv71dzuTsEAlQiHeWQ/tiPqgNZVdv046fvNtBZrjbv2O3TsWCDU0AWGJJKCF/KsjNdLzR9hXOsh/CfA==",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30001035",
+ "electron-to-chromium": "^1.3.378",
+ "node-releases": "^1.1.52",
+ "pkg-up": "^3.1.0"
+ }
+ },
+ "cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "^3.1.0"
+ }
+ },
+ "cli-width": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz",
+ "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==",
+ "dev": true
+ },
+ "cross-spawn": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz",
+ "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==",
"dev": true,
"requires": {
- "caniuse-lite": "^1.0.30000929",
- "electron-to-chromium": "^1.3.103",
- "node-releases": "^1.1.3"
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
}
},
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
"emojis-list": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
"integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
"dev": true
},
- "figures": {
+ "escape-string-regexp": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
- "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "dev": true
+ },
+ "figures": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
"dev": true,
"requires": {
"escape-string-regexp": "^1.0.5"
+ },
+ "dependencies": {
+ "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
+ }
+ }
+ },
+ "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",
+ "path-exists": "^4.0.0"
}
},
"globby": {
@@ -16483,30 +15965,47 @@
"dev": true
},
"inquirer": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.1.tgz",
- "integrity": "sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==",
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.4.tgz",
+ "integrity": "sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ==",
"dev": true,
"requires": {
- "ansi-escapes": "^3.0.0",
- "chalk": "^2.0.0",
- "cli-cursor": "^2.1.0",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^2.4.2",
+ "cli-cursor": "^3.1.0",
"cli-width": "^2.0.0",
- "external-editor": "^3.0.0",
- "figures": "^2.0.0",
- "lodash": "^4.17.10",
- "mute-stream": "0.0.7",
+ "external-editor": "^3.0.3",
+ "figures": "^3.0.0",
+ "lodash": "^4.17.15",
+ "mute-stream": "0.0.8",
"run-async": "^2.2.0",
- "rxjs": "^6.1.0",
- "string-width": "^2.1.0",
- "strip-ansi": "^5.0.0",
+ "rxjs": "^6.5.3",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^5.1.0",
"through": "^2.3.6"
+ },
+ "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
+ },
+ "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"
+ }
+ }
}
},
"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=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true
},
"json5": {
@@ -16529,60 +16028,115 @@
"json5": "^1.0.1"
}
},
- "shell-quote": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz",
- "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=",
+ "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": {
- "array-filter": "~0.0.0",
- "array-map": "~0.0.0",
- "array-reduce": "~0.0.0",
- "jsonify": "~0.0.0"
+ "p-locate": "^4.1.0"
}
},
- "slash": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
- "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+ "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
},
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
"dev": true,
"requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
- },
- "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"
- }
- }
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "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"
+ }
+ },
+ "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
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true
+ },
+ "restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dev": true,
+ "requires": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true
+ },
+ "slash": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
}
},
"strip-ansi": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.0.0.tgz",
- "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
"dev": true,
"requires": {
- "ansi-regex": "^4.0.0"
- },
- "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
- }
+ "ansi-regex": "^5.0.0"
+ }
+ },
+ "type-fest": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
+ "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==",
+ "dev": true
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
}
}
}
@@ -16593,14 +16147,14 @@
"integrity": "sha512-XIBgwIfpGAknm7tXe/YNbx4ieIR7IyFI3KNfSQk4UjHVy97UHe/nB7iJj8R/dDsI+I/ZzPR4HJ39Gh5tI4nhxw=="
},
"react-dom": {
- "version": "16.8.6",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.6.tgz",
- "integrity": "sha512-1nL7PIq9LTL3fthPqwkvr2zY7phIPjYrT0jp4HjyEQrEROnw4dG41VVwi/wfoCneoleqrNX7iAD+pXebJZwrwA==",
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz",
+ "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==",
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
"prop-types": "^15.6.2",
- "scheduler": "^0.13.6"
+ "scheduler": "^0.19.1"
}
},
"react-draft-wysiwyg": {
@@ -16615,19 +16169,10 @@
"prop-types": "^15.7.2"
}
},
- "react-draggable": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-3.2.1.tgz",
- "integrity": "sha512-r+3Bs9InID2lyIEbR8UIRVtpn4jgu1ArFEZgIy8vibJjijLSdNLX7rH9U68BBVD4RD9v44RXbaK4EHLyKXzNQw==",
- "requires": {
- "classnames": "^2.2.5",
- "prop-types": "^15.6.0"
- }
- },
"react-error-overlay": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-5.1.6.tgz",
- "integrity": "sha512-X1Y+0jR47ImDVr54Ab6V9eGk0Hnu7fVWGeHQSOXHf/C2pF9c6uy3gef8QUeuUiWlNb0i08InPSE5a/KJzNzw1Q==",
+ "version": "6.0.7",
+ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.7.tgz",
+ "integrity": "sha512-TAv1KJFh3RhqxNvhzxj6LeT5NWklP6rDr2a0jaTfsZ5wSZWHOGeqQyejUp3xxLfPt2UpyJEcVQB/zyPcmonNFA==",
"dev": true
},
"react-event-listener": {
@@ -16713,17 +16258,6 @@
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
- "react-lazy-load": {
- "version": "3.1.13",
- "resolved": "https://registry.npmjs.org/react-lazy-load/-/react-lazy-load-3.1.13.tgz",
- "integrity": "sha512-eAVNUn3vhNj79Iv04NOCwy/sCLyqDEhL3j9aJKV7VJuRBDg6rCiB+BIWHuG7VXJGCgb//6nX/soR8PTyWRhFvQ==",
- "requires": {
- "eventlistener": "0.0.1",
- "lodash.debounce": "^4.0.0",
- "lodash.throttle": "^4.0.0",
- "prop-types": "^15.5.8"
- }
- },
"react-lifecycles-compat": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
@@ -16781,11 +16315,6 @@
"react-tween-state": "^0.1.5"
}
},
- "react-numeric-input": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/react-numeric-input/-/react-numeric-input-2.2.3.tgz",
- "integrity": "sha1-S/WRjD6v7YUagN8euZLZQQArtVI="
- },
"react-outside-click-handler": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/react-outside-click-handler/-/react-outside-click-handler-1.3.0.tgz",
@@ -16808,711 +16337,146 @@
},
"react-recaptcha-v3": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/react-recaptcha-v3/-/react-recaptcha-v3-2.0.1.tgz",
- "integrity": "sha512-ZQ+auotgu+E/6YAbPqk53sf9xgcp8TFvVVfL4bVR7PXj98nQmdaONugdLJEA7g1iTZ4yQqC4mZbcVUGZmwb25Q=="
- },
- "react-rectangle": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/react-rectangle/-/react-rectangle-1.3.3.tgz",
- "integrity": "sha1-xEaUzczEzbwpWxxp47O8sHU3vGs=",
- "requires": {
- "lodash.isarray": "^4.0.0",
- "lodash.isfinite": "^3.2.1",
- "lodash.isnan": "^3.0.2",
- "lodash.isstring": "^4.0.1"
- }
- },
- "react-redux": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-6.0.1.tgz",
- "integrity": "sha512-T52I52Kxhbqy/6TEfBv85rQSDz6+Y28V/pf52vDWs1YRXG19mcFOGfHnY2HsNFHyhP+ST34Aih98fvt6tqwVcQ==",
- "requires": {
- "@babel/runtime": "^7.3.1",
- "hoist-non-react-statics": "^3.3.0",
- "invariant": "^2.2.4",
- "loose-envify": "^1.4.0",
- "prop-types": "^15.7.2",
- "react-is": "^16.8.2"
- }
- },
- "react-router": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/react-router/-/react-router-3.2.1.tgz",
- "integrity": "sha512-SXkhC0nr3G0ltzVU07IN8jYl0bB6FsrDIqlLC9dK3SITXqyTJyM7yhXlUqs89w3Nqi5OkXsfRUeHX+P874HQrg==",
- "requires": {
- "create-react-class": "^15.5.1",
- "history": "^3.0.0",
- "hoist-non-react-statics": "^2.3.1",
- "invariant": "^2.2.1",
- "loose-envify": "^1.2.0",
- "prop-types": "^15.5.6",
- "warning": "^3.0.0"
- },
- "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=="
- },
- "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"
- }
- }
- }
- },
- "react-router-redux": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/react-router-redux/-/react-router-redux-4.0.8.tgz",
- "integrity": "sha1-InQDWWtRUeGCN32rg1tdRfD4BU4="
- },
- "react-scripts": {
- "version": "2.1.8",
- "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-2.1.8.tgz",
- "integrity": "sha512-mDC8fYWCyuB9VROti8OCPdHE79UEchVVZmuS/yaIs47VkvZpgZqUvzghYBswZRchqnW0aARNY8xXrzoFRhhK7A==",
- "dev": true,
- "requires": {
- "@babel/core": "7.2.2",
- "@svgr/webpack": "4.1.0",
- "babel-core": "7.0.0-bridge.0",
- "babel-eslint": "9.0.0",
- "babel-jest": "23.6.0",
- "babel-loader": "8.0.5",
- "babel-plugin-named-asset-import": "^0.3.1",
- "babel-preset-react-app": "^7.0.2",
- "bfj": "6.1.1",
- "case-sensitive-paths-webpack-plugin": "2.2.0",
- "css-loader": "1.0.0",
- "dotenv": "6.0.0",
- "dotenv-expand": "4.2.0",
- "eslint": "5.12.0",
- "eslint-config-react-app": "^3.0.8",
- "eslint-loader": "2.1.1",
- "eslint-plugin-flowtype": "2.50.1",
- "eslint-plugin-import": "2.14.0",
- "eslint-plugin-jsx-a11y": "6.1.2",
- "eslint-plugin-react": "7.12.4",
- "file-loader": "2.0.0",
- "fs-extra": "7.0.1",
- "fsevents": "1.2.4",
- "html-webpack-plugin": "4.0.0-alpha.2",
- "identity-obj-proxy": "3.0.0",
- "jest": "23.6.0",
- "jest-pnp-resolver": "1.0.2",
- "jest-resolve": "23.6.0",
- "jest-watch-typeahead": "^0.2.1",
- "mini-css-extract-plugin": "0.5.0",
- "optimize-css-assets-webpack-plugin": "5.0.1",
- "pnp-webpack-plugin": "1.2.1",
- "postcss-flexbugs-fixes": "4.1.0",
- "postcss-loader": "3.0.0",
- "postcss-preset-env": "6.5.0",
- "postcss-safe-parser": "4.0.1",
- "react-app-polyfill": "^0.2.2",
- "react-dev-utils": "^8.0.0",
- "resolve": "1.10.0",
- "sass-loader": "7.1.0",
- "style-loader": "0.23.1",
- "terser-webpack-plugin": "1.2.2",
- "url-loader": "1.1.2",
- "webpack": "4.28.3",
- "webpack-dev-server": "3.1.14",
- "webpack-manifest-plugin": "2.0.4",
- "workbox-webpack-plugin": "3.6.3"
- },
- "dependencies": {
- "fsevents": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz",
- "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==",
- "dev": true,
- "optional": true,
- "requires": {
- "nan": "^2.9.2",
- "node-pre-gyp": "^0.10.0"
- },
- "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.4",
- "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.0.1",
- "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": "2.6.9",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
- "deep-extend": {
- "version": "0.5.1",
- "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.5",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "minipass": "^2.2.1"
- }
- },
- "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.2",
- "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.21",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "safer-buffer": "^2.1.0"
- }
- },
- "ignore-walk": {
- "version": "3.0.1",
- "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.3",
- "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.2.4",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "safe-buffer": "^5.1.1",
- "yallist": "^3.0.0"
- }
- },
- "minizlib": {
- "version": "1.1.0",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "minipass": "^2.2.1"
- }
- },
- "mkdirp": {
- "version": "0.5.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "minimist": "0.0.8"
- }
- },
- "ms": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "needle": {
- "version": "2.2.0",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "debug": "^2.1.2",
- "iconv-lite": "^0.4.4",
- "sax": "^1.2.4"
- }
- },
- "node-pre-gyp": {
- "version": "0.10.0",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "detect-libc": "^1.0.2",
- "mkdirp": "^0.5.1",
- "needle": "^2.2.0",
- "nopt": "^4.0.1",
- "npm-packlist": "^1.1.6",
- "npmlog": "^4.0.2",
- "rc": "^1.1.7",
- "rimraf": "^2.6.1",
- "semver": "^5.3.0",
- "tar": "^4"
- }
- },
- "nopt": {
- "version": "4.0.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "abbrev": "1",
- "osenv": "^0.1.4"
- }
- },
- "npm-bundled": {
- "version": "1.0.3",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "npm-packlist": {
- "version": "1.1.10",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "ignore-walk": "^3.0.1",
- "npm-bundled": "^1.0.1"
- }
- },
- "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"
- }
- },
- "number-is-nan": {
- "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"
- }
- },
- "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,
- "requires": {
- "os-homedir": "^1.0.0",
- "os-tmpdir": "^1.0.0"
- }
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "process-nextick-args": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "rc": {
- "version": "1.2.7",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "deep-extend": "^0.5.1",
- "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
- }
- }
- },
- "readable-stream": {
- "version": "2.3.6",
- "bundled": true,
- "dev": true,
- "optional": true,
- "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"
- }
- },
- "rimraf": {
- "version": "2.6.2",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "glob": "^7.0.5"
- }
- },
- "safe-buffer": {
- "version": "5.1.1",
- "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.5.0",
- "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": {
- "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"
- }
- },
- "strip-json-comments": {
- "version": "2.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "tar": {
- "version": "4.4.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "chownr": "^1.0.1",
- "fs-minipass": "^1.2.5",
- "minipass": "^2.2.4",
- "minizlib": "^1.1.0",
- "mkdirp": "^0.5.0",
- "safe-buffer": "^5.1.1",
- "yallist": "^3.0.2"
- }
- },
- "util-deprecate": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "wide-align": {
- "version": "1.1.2",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "string-width": "^1.0.2"
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "yallist": {
- "version": "3.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
- }
+ "resolved": "https://registry.npmjs.org/react-recaptcha-v3/-/react-recaptcha-v3-2.0.1.tgz",
+ "integrity": "sha512-ZQ+auotgu+E/6YAbPqk53sf9xgcp8TFvVVfL4bVR7PXj98nQmdaONugdLJEA7g1iTZ4yQqC4mZbcVUGZmwb25Q=="
+ },
+ "react-redux": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-6.0.1.tgz",
+ "integrity": "sha512-T52I52Kxhbqy/6TEfBv85rQSDz6+Y28V/pf52vDWs1YRXG19mcFOGfHnY2HsNFHyhP+ST34Aih98fvt6tqwVcQ==",
+ "requires": {
+ "@babel/runtime": "^7.3.1",
+ "hoist-non-react-statics": "^3.3.0",
+ "invariant": "^2.2.4",
+ "loose-envify": "^1.4.0",
+ "prop-types": "^15.7.2",
+ "react-is": "^16.8.2"
+ }
+ },
+ "react-router": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-3.2.1.tgz",
+ "integrity": "sha512-SXkhC0nr3G0ltzVU07IN8jYl0bB6FsrDIqlLC9dK3SITXqyTJyM7yhXlUqs89w3Nqi5OkXsfRUeHX+P874HQrg==",
+ "requires": {
+ "create-react-class": "^15.5.1",
+ "history": "^3.0.0",
+ "hoist-non-react-statics": "^2.3.1",
+ "invariant": "^2.2.1",
+ "loose-envify": "^1.2.0",
+ "prop-types": "^15.5.6",
+ "warning": "^3.0.0"
+ },
+ "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=="
+ },
+ "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"
}
+ }
+ }
+ },
+ "react-scripts": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-3.4.3.tgz",
+ "integrity": "sha512-oSnoWmii/iKdeQiwaO6map1lUaZLmG0xIUyb/HwCVFLT7gNbj8JZ9RmpvMCZ4fB98ZUMRfNmp/ft8uy/xD1RLA==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "7.9.0",
+ "@svgr/webpack": "4.3.3",
+ "@typescript-eslint/eslint-plugin": "^2.10.0",
+ "@typescript-eslint/parser": "^2.10.0",
+ "babel-eslint": "10.1.0",
+ "babel-jest": "^24.9.0",
+ "babel-loader": "8.1.0",
+ "babel-plugin-named-asset-import": "^0.3.6",
+ "babel-preset-react-app": "^9.1.2",
+ "camelcase": "^5.3.1",
+ "case-sensitive-paths-webpack-plugin": "2.3.0",
+ "css-loader": "3.4.2",
+ "dotenv": "8.2.0",
+ "dotenv-expand": "5.1.0",
+ "eslint": "^6.6.0",
+ "eslint-config-react-app": "^5.2.1",
+ "eslint-loader": "3.0.3",
+ "eslint-plugin-flowtype": "4.6.0",
+ "eslint-plugin-import": "2.20.1",
+ "eslint-plugin-jsx-a11y": "6.2.3",
+ "eslint-plugin-react": "7.19.0",
+ "eslint-plugin-react-hooks": "^1.6.1",
+ "file-loader": "4.3.0",
+ "fs-extra": "^8.1.0",
+ "fsevents": "2.1.2",
+ "html-webpack-plugin": "4.0.0-beta.11",
+ "identity-obj-proxy": "3.0.0",
+ "jest": "24.9.0",
+ "jest-environment-jsdom-fourteen": "1.0.1",
+ "jest-resolve": "24.9.0",
+ "jest-watch-typeahead": "0.4.2",
+ "mini-css-extract-plugin": "0.9.0",
+ "optimize-css-assets-webpack-plugin": "5.0.3",
+ "pnp-webpack-plugin": "1.6.4",
+ "postcss-flexbugs-fixes": "4.1.0",
+ "postcss-loader": "3.0.0",
+ "postcss-normalize": "8.0.1",
+ "postcss-preset-env": "6.7.0",
+ "postcss-safe-parser": "4.0.1",
+ "react-app-polyfill": "^1.0.6",
+ "react-dev-utils": "^10.2.1",
+ "resolve": "1.15.0",
+ "resolve-url-loader": "3.1.1",
+ "sass-loader": "8.0.2",
+ "semver": "6.3.0",
+ "style-loader": "0.23.1",
+ "terser-webpack-plugin": "2.3.8",
+ "ts-pnp": "1.1.6",
+ "url-loader": "2.3.0",
+ "webpack": "4.42.0",
+ "webpack-dev-server": "3.11.0",
+ "webpack-manifest-plugin": "2.2.0",
+ "workbox-webpack-plugin": "4.3.1"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
+ "fsevents": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz",
+ "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==",
+ "dev": true,
+ "optional": true
},
"resolve": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz",
- "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==",
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.0.tgz",
+ "integrity": "sha512-+hTmAldEGE80U2wJJDC1lebb5jWqvTYAfm3YZ1ckk1gBr0MnCqUKlwK1e+anaFljIl+F5tR5IoZcm4ZDA1zMQw==",
"dev": true,
"requires": {
"path-parse": "^1.0.6"
}
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
}
}
},
"react-side-effect": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.1.tgz",
- "integrity": "sha512-2FoTQzRNTncBVtnzxFOk2mCpcfxQpenBMbk5kSVBg5UcPqV9fRbgY2zhb7GTWWOlpFmAxhClBDlIq8Rsubz1yQ=="
- },
- "react-slick": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/react-slick/-/react-slick-0.24.0.tgz",
- "integrity": "sha512-Pvo0B74ohumQdYOf0qP+pdQpj9iUbAav7+2qiF3uTc5XeQp/Y/cnIeDBM2tB3txthfSe05jKIqLMJTS6qVvt5g==",
- "requires": {
- "classnames": "^2.2.5",
- "enquire.js": "^2.1.6",
- "json2mq": "^0.2.0",
- "lodash.debounce": "^4.0.8",
- "resize-observer-polyfill": "^1.5.0"
- }
- },
- "react-snapshot": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/react-snapshot/-/react-snapshot-1.3.0.tgz",
- "integrity": "sha512-4HRhyB4p2e9E1QcJUwT5iyi2MWrDBr5jEWSU7zFYGSdp2vVwPqoi7IurRRDyt4WsfXAGmnlGRKZWJt+rIhzZ8g==",
- "requires": {
- "connect-history-api-fallback": "^1.3.0",
- "express": "^4.15.2",
- "glob-to-regexp": "^0.3.0",
- "http-proxy-middleware": "^0.17.4",
- "jsdom": "^9.4.5",
- "mkdirp": "^0.5.1",
- "safe-commander": "^2.11.1"
- }
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.0.tgz",
+ "integrity": "sha512-IgmcegOSi5SNX+2Snh1vqmF0Vg/CbkycU9XZbOHJlZ6kMzTmi3yc254oB1WCkgA7OQtIAoLmcSFuHTc/tlcqXg=="
},
"react-sortable-hoc": {
"version": "1.10.1",
@@ -17571,11 +16535,39 @@
}
},
"react-svg": {
- "version": "2.2.18",
- "resolved": "https://registry.npmjs.org/react-svg/-/react-svg-2.2.18.tgz",
- "integrity": "sha512-Hm+PJYxfZ4FIWyI3xypvyrrt+qbhCaDHKPiYv3Aen57xMjhtESKYQArkGVmn2O7W+lROLCjFfp+NnivULBtxxw==",
+ "version": "11.2.2",
+ "resolved": "https://registry.npmjs.org/react-svg/-/react-svg-11.2.2.tgz",
+ "integrity": "sha512-Q9lAuUgaI8c55OluftgrAyE4GAmIvmqVHJXt1fIzXFHcuIauKqVjhUH/BiizOqjPmY+R27kiTkv9g7AxY7O+wA==",
+ "requires": {
+ "@babel/runtime": "^7.12.5",
+ "@tanem/svg-injector": "^8.2.1",
+ "prop-types": "^15.7.2"
+ },
+ "dependencies": {
+ "@babel/runtime": {
+ "version": "7.12.5",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz",
+ "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==",
+ "requires": {
+ "regenerator-runtime": "^0.13.4"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.13.7",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
+ "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
+ }
+ }
+ },
+ "react-transition-group": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz",
+ "integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==",
"requires": {
- "svg-injector": "^1.1.3"
+ "@babel/runtime": "^7.5.5",
+ "dom-helpers": "^5.0.1",
+ "loose-envify": "^1.4.0",
+ "prop-types": "^15.6.2"
}
},
"react-truncate-markup": {
@@ -17638,20 +16630,20 @@
"global-cache": "^1.2.1"
}
},
- "read-pkg": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz",
- "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=",
+ "read": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/read/-/read-1.0.5.tgz",
+ "integrity": "sha1-AHo9FpR4qnEKSRcn5FPv+5LnYgM=",
+ "dev": true,
"requires": {
- "normalize-package-data": "^2.3.2",
- "parse-json": "^4.0.0",
- "pify": "^3.0.0"
+ "mute-stream": "~0.0.4"
}
},
"read-pkg-up": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
"integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "dev": true,
"requires": {
"find-up": "^1.0.0",
"read-pkg": "^1.0.0"
@@ -17661,6 +16653,7 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
"integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
"requires": {
"path-exists": "^2.0.0",
"pinkie-promise": "^2.0.0"
@@ -17670,6 +16663,7 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
"integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
"requires": {
"pinkie-promise": "^2.0.0"
}
@@ -17678,6 +16672,7 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
"integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dev": true,
"requires": {
"load-json-file": "^1.0.0",
"normalize-package-data": "^2.3.2",
@@ -17700,6 +16695,7 @@
"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",
@@ -17710,6 +16706,7 @@
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
"integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dev": true,
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -17723,12 +16720,14 @@
"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=="
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
},
"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==",
+ "dev": true,
"requires": {
"safe-buffer": "~5.1.0"
}
@@ -17757,6 +16756,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
"integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+ "dev": true,
"requires": {
"indent-string": "^2.1.0",
"strip-indent": "^1.0.1"
@@ -17766,6 +16766,7 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
"integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+ "dev": true,
"requires": {
"repeating": "^2.0.0"
}
@@ -17832,9 +16833,9 @@
"integrity": "sha1-dJrO7H8/34tj+SegSAnpDFwLNGA="
},
"regenerate": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
- "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz",
+ "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==",
"dev": true
},
"regenerate-unicode-properties": {
@@ -17860,23 +16861,22 @@
"@babel/runtime": "^7.8.4"
}
},
- "regex-cache": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
- "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
- "requires": {
- "is-equal-shallow": "^0.1.3"
- }
- },
"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"
}
},
+ "regex-parser": {
+ "version": "2.2.10",
+ "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.10.tgz",
+ "integrity": "sha512-8t6074A68gHfU8Neftl0Le6KTDwfGAj7IyjPIMSfikI2wJUTHDMaIq42bUsfVnj8mhx0R+45rdUXHGpN164avA==",
+ "dev": true
+ },
"regexp.prototype.flags": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz",
@@ -17885,39 +16885,18 @@
"requires": {
"define-properties": "^1.1.3",
"es-abstract": "^1.17.0-next.1"
- },
- "dependencies": {
- "es-abstract": {
- "version": "1.17.7",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz",
- "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==",
- "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.2.2",
- "is-regex": "^1.1.1",
- "object-inspect": "^1.8.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.1",
- "string.prototype.trimend": "^1.0.1",
- "string.prototype.trimstart": "^1.0.1"
- }
- }
}
},
"regexpp": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
- "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz",
+ "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==",
"dev": true
},
"regexpu-core": {
- "version": "4.7.1",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz",
- "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==",
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz",
+ "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==",
"dev": true,
"requires": {
"regenerate": "^1.4.0",
@@ -17960,19 +16939,20 @@
"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="
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+ "dev": true
},
"renderkid": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.4.tgz",
- "integrity": "sha512-K2eXrSOJdq+HuKzlcjOlGoOarUu5SDguDEhE7+Ah4zuOWL40j8A/oHvLlLob9PSTNvVnBd+/q0Er1QfpEuem5g==",
+ "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",
"dom-converter": "^0.2",
"htmlparser2": "^3.3.0",
- "lodash": "^4.17.20",
- "strip-ansi": "^3.0.0"
+ "strip-ansi": "^3.0.0",
+ "utila": "^0.4.0"
},
"dependencies": {
"css-select": {
@@ -18008,17 +16988,20 @@
"repeat-element": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
- "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g=="
+ "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
+ "dev": true
},
"repeat-string": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
- "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+ "dev": true
},
"repeating": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
"integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "dev": true,
"requires": {
"is-finite": "^1.0.0"
}
@@ -18027,6 +17010,7 @@
"version": "2.88.2",
"resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
"integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
+ "dev": true,
"requires": {
"aws-sign2": "~0.7.0",
"aws4": "^1.8.0",
@@ -18073,17 +17057,20 @@
"require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
+ "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=="
+ "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="
+ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
+ "dev": true
},
"reselect": {
"version": "4.0.0",
@@ -18096,11 +17083,10 @@
"integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
},
"resolve": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz",
- "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==",
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+ "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
"requires": {
- "is-core-module": "^2.1.0",
"path-parse": "^1.0.6"
}
},
@@ -18116,17 +17102,98 @@
"resolve-from": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
- "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g="
+ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
+ "dev": true
},
"resolve-url": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
- "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+ "dev": true
+ },
+ "resolve-url-loader": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.1.tgz",
+ "integrity": "sha512-K1N5xUjj7v0l2j/3Sgs5b8CjrrgtC70SmdCuZiJ8tSyb5J+uk3FoeZ4b7yTnH6j7ngI+Bc5bldHJIa8hYdu2gQ==",
+ "dev": true,
+ "requires": {
+ "adjust-sourcemap-loader": "2.0.0",
+ "camelcase": "5.3.1",
+ "compose-function": "3.0.3",
+ "convert-source-map": "1.7.0",
+ "es6-iterator": "2.0.3",
+ "loader-utils": "1.2.3",
+ "postcss": "7.0.21",
+ "rework": "1.0.1",
+ "rework-visit": "1.0.0",
+ "source-map": "0.6.1"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
+ "emojis-list": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+ "dev": true
+ },
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
+ "loader-utils": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
+ "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
+ "dev": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^2.0.0",
+ "json5": "^1.0.1"
+ }
+ },
+ "postcss": {
+ "version": "7.0.21",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz",
+ "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.2",
+ "source-map": "^0.6.1",
+ "supports-color": "^6.1.0"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "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"
+ }
+ }
+ }
},
"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",
"signal-exit": "^3.0.2"
@@ -18135,7 +17202,44 @@
"ret": {
"version": "0.1.15",
"resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
- "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+ "dev": true
+ },
+ "retry": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=",
+ "dev": true
+ },
+ "revalidator": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz",
+ "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=",
+ "dev": true
+ },
+ "rework": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz",
+ "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=",
+ "dev": true,
+ "requires": {
+ "convert-source-map": "^0.3.3",
+ "css": "^2.0.0"
+ },
+ "dependencies": {
+ "convert-source-map": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz",
+ "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=",
+ "dev": true
+ }
+ }
+ },
+ "rework-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz",
+ "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=",
+ "dev": true
},
"rgb-regex": {
"version": "1.0.1",
@@ -18150,9 +17254,10 @@
"dev": true
},
"rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dev": true,
"requires": {
"glob": "^7.1.3"
}
@@ -18346,10 +17451,9 @@
}
},
"rsvp": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz",
- "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==",
- "dev": true
+ "version": "4.8.5",
+ "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz",
+ "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA=="
},
"run-async": {
"version": "2.4.1",
@@ -18357,11 +17461,6 @@
"integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
"dev": true
},
- "run-node": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/run-node/-/run-node-1.0.0.tgz",
- "integrity": "sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A=="
- },
"run-queue": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
@@ -18372,9 +17471,10 @@
}
},
"rxjs": {
- "version": "6.6.3",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz",
- "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==",
+ "version": "6.6.0",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.0.tgz",
+ "integrity": "sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg==",
+ "dev": true,
"requires": {
"tslib": "^1.9.0"
}
@@ -18384,25 +17484,11 @@
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
},
- "safe-commander": {
- "version": "2.11.2",
- "resolved": "https://registry.npmjs.org/safe-commander/-/safe-commander-2.11.2.tgz",
- "integrity": "sha512-kudDdVjDG1fI8PkCxov3BKgk8YP1ak0alJX2+eohN4j/Ym/GW4SM1Kobh9vKs67nyul748vigmBoJtsfWNdR6Q==",
- "requires": {
- "commander": "~2.11.0"
- },
- "dependencies": {
- "commander": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
- "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ=="
- }
- }
- },
"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"
}
@@ -18413,26 +17499,33 @@
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"sane": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/sane/-/sane-2.5.2.tgz",
- "integrity": "sha1-tNwYYcIbQn6SlQej51HiosuKs/o=",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz",
+ "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==",
"dev": true,
"requires": {
+ "@cnakazawa/watch": "^1.0.3",
"anymatch": "^2.0.0",
- "capture-exit": "^1.2.0",
- "exec-sh": "^0.2.0",
+ "capture-exit": "^2.0.0",
+ "exec-sh": "^0.3.2",
+ "execa": "^1.0.0",
"fb-watchman": "^2.0.0",
- "fsevents": "^1.2.3",
"micromatch": "^3.1.4",
"minimist": "^1.1.1",
- "walker": "~1.0.5",
- "watch": "~0.18.0"
+ "walker": "~1.0.5"
}
},
+ "sanitize.css": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-10.0.0.tgz",
+ "integrity": "sha512-vTxrZz4dX5W86M6oVWVdOVe72ZiPs41Oi7Z6Km4W5Turyz28mrXSJhhEBZoRtzJWIv3833WKVwLSDWWkEfupMg==",
+ "dev": true
+ },
"sass-graph": {
"version": "2.2.6",
"resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.6.tgz",
"integrity": "sha512-MKuEYXFSGuRSi8FZ3A7imN1CeVn9Gpw0/SFJKdL1ejXJneI9a5rwlEZrKejhEFAA3O6yr3eIyl/WuvASvlT36g==",
+ "dev": true,
"requires": {
"glob": "^7.0.0",
"lodash": "^4.0.0",
@@ -18443,12 +17536,14 @@
"camelcase": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
- "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+ "dev": true
},
"cliui": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
"integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+ "dev": true,
"requires": {
"string-width": "^1.0.1",
"strip-ansi": "^3.0.1",
@@ -18458,22 +17553,26 @@
"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=="
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
+ "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="
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
+ "dev": true
},
"which-module": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
- "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8="
+ "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
+ "dev": true
},
"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",
"strip-ansi": "^3.0.1"
@@ -18482,12 +17581,14 @@
"y18n": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
- "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
+ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
+ "dev": true
},
"yargs": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.1.tgz",
"integrity": "sha512-huO4Fr1f9PmiJJdll5kwoS2e4GqzGSsMT3PPMpOwoVkOK8ckqAewMTZyA6LXVQWflleb/Z8oPBEvNsMft0XE+g==",
+ "dev": true,
"requires": {
"camelcase": "^3.0.0",
"cliui": "^3.2.0",
@@ -18508,6 +17609,7 @@
"version": "5.0.0-security.0",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0-security.0.tgz",
"integrity": "sha512-T69y4Ps64LNesYxeYGYPvfoMTt/7y1XtfpIslUeK4um+9Hu7hlGoRtaDLvdXb7+/tfq4opVa2HRY5xGip022rQ==",
+ "dev": true,
"requires": {
"camelcase": "^3.0.0",
"object.assign": "^4.1.0"
@@ -18516,57 +17618,42 @@
}
},
"sass-loader": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.1.0.tgz",
- "integrity": "sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==",
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.2.tgz",
+ "integrity": "sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ==",
"dev": true,
"requires": {
- "clone-deep": "^2.0.1",
- "loader-utils": "^1.0.1",
- "lodash.tail": "^4.1.1",
- "neo-async": "^2.5.0",
- "pify": "^3.0.0",
- "semver": "^5.5.0"
+ "clone-deep": "^4.0.1",
+ "loader-utils": "^1.2.3",
+ "neo-async": "^2.6.1",
+ "schema-utils": "^2.6.1",
+ "semver": "^6.3.0"
},
"dependencies": {
"clone-deep": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz",
- "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
+ "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
"dev": true,
"requires": {
- "for-own": "^1.0.0",
"is-plain-object": "^2.0.4",
- "kind-of": "^6.0.0",
- "shallow-clone": "^1.0.0"
+ "kind-of": "^6.0.2",
+ "shallow-clone": "^3.0.0"
}
},
- "for-own": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
- "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
- "dev": true,
- "requires": {
- "for-in": "^1.0.1"
- }
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
},
"shallow-clone": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz",
- "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
+ "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
"dev": true,
"requires": {
- "is-extendable": "^0.1.1",
- "kind-of": "^5.0.0",
- "mixin-object": "^2.0.1"
- },
- "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
- }
+ "kind-of": "^6.0.2"
}
}
}
@@ -18579,32 +17666,51 @@
"sax": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
- "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+ "dev": true
+ },
+ "saxes": {
+ "version": "3.1.11",
+ "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz",
+ "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==",
+ "dev": true,
+ "requires": {
+ "xmlchars": "^2.1.1"
+ }
},
"scheduler": {
- "version": "0.13.6",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.6.tgz",
- "integrity": "sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ==",
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz",
+ "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==",
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1"
}
},
"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==",
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz",
+ "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==",
"dev": true,
"requires": {
- "ajv": "^6.1.0",
- "ajv-errors": "^1.0.0",
- "ajv-keywords": "^3.1.0"
+ "@types/json-schema": "^7.0.4",
+ "ajv": "^6.12.2",
+ "ajv-keywords": "^3.4.1"
+ }
+ },
+ "scroll-into-view-if-needed": {
+ "version": "2.2.26",
+ "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.26.tgz",
+ "integrity": "sha512-SQ6AOKfABaSchokAmmaxVnL9IArxEnLEX9j4wAZw+x4iUTb40q7irtHG3z4GtAWz5veVZcCnubXDBRyLVQaohw==",
+ "requires": {
+ "compute-scroll-into-view": "^1.0.16"
}
},
"scss-tokenizer": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
"integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
+ "dev": true,
"requires": {
"js-base64": "^2.1.8",
"source-map": "^0.4.2"
@@ -18614,6 +17720,7 @@
"version": "0.4.4",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
"integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+ "dev": true,
"requires": {
"amdefine": ">=0.0.4"
}
@@ -18632,12 +17739,12 @@
"dev": true
},
"selfsigned": {
- "version": "1.10.8",
- "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz",
- "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==",
+ "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.10.0"
+ "node-forge": "0.9.0"
}
},
"semver": {
@@ -18648,12 +17755,20 @@
"semver-compare": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
- "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w="
+ "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=",
+ "dev": true
+ },
+ "semver-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz",
+ "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==",
+ "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",
"depd": "~1.1.2",
@@ -18674,6 +17789,7 @@
"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"
},
@@ -18681,22 +17797,27 @@
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "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=="
+ "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
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
+ "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
+ "dev": true,
+ "requires": {
+ "randombytes": "^2.1.0"
+ }
},
"serve-index": {
"version": "1.9.1",
@@ -18758,6 +17879,7 @@
"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",
"escape-html": "~1.0.3",
@@ -18768,12 +17890,14 @@
"set-blocking": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+ "dev": true
},
"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",
@@ -18785,6 +17909,7 @@
"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"
}
@@ -18799,7 +17924,8 @@
"setprototypeof": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
- "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
+ "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==",
+ "dev": true
},
"sha.js": {
"version": "2.4.11",
@@ -18839,11 +17965,6 @@
}
}
},
- "shallow-equal": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz",
- "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA=="
- },
"shallowequal": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz",
@@ -18873,39 +17994,26 @@
"integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==",
"dev": true
},
+ "side-channel": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.2.tgz",
+ "integrity": "sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA==",
+ "dev": true,
+ "requires": {
+ "es-abstract": "^1.17.0-next.1",
+ "object-inspect": "^1.7.0"
+ }
+ },
"signal-exit": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
- "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
- },
- "simple-git": {
- "version": "1.132.0",
- "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-1.132.0.tgz",
- "integrity": "sha512-xauHm1YqCTom1sC9eOjfq3/9RKiUA9iPnxBbrY2DdL8l4ADMu0jjM5l5lphQP5YWNqAL2aXC/OeuQ76vHtW5fg==",
- "requires": {
- "debug": "^4.0.1"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- }
- }
+ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
+ "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"
},
@@ -18913,31 +18021,76 @@
"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
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
}
}
},
"sisteransi": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-0.1.1.tgz",
- "integrity": "sha512-PmGOd02bM9YO5ifxpw36nrNMBTptEtfRl4qUYl9SndkolplkrZZOW7PGHjrZL53QvMVj9nQ+TKqUnRsw4tJa4g==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
+ "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
"dev": true
},
"slash": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
- "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A=="
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
+ "dev": true
},
"slice-ansi": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
- "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
+ "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "dev": true
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "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",
@@ -18953,6 +18106,7 @@
"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"
}
@@ -18961,6 +18115,7 @@
"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"
}
@@ -18969,6 +18124,7 @@
"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"
}
@@ -18976,7 +18132,8 @@
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
}
}
},
@@ -18984,6 +18141,7 @@
"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",
@@ -18994,6 +18152,7 @@
"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"
}
@@ -19002,6 +18161,7 @@
"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"
}
@@ -19010,6 +18170,7 @@
"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"
}
@@ -19018,6 +18179,7 @@
"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",
@@ -19030,6 +18192,7 @@
"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"
},
@@ -19038,97 +18201,42 @@
"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"
}
}
}
},
- "socket.io-client": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.2.0.tgz",
- "integrity": "sha512-56ZrkTDbdTLmBIyfFYesgOxsjcLnwAKoN4CiPyTVkMQj3zTUh0QAx3GbvIvLpFEOvQWu92yyWICxB0u7wkVbYA==",
- "requires": {
- "backo2": "1.0.2",
- "base64-arraybuffer": "0.1.5",
- "component-bind": "1.0.0",
- "component-emitter": "1.2.1",
- "debug": "~3.1.0",
- "engine.io-client": "~3.3.1",
- "has-binary2": "~1.0.2",
- "has-cors": "1.1.0",
- "indexof": "0.0.1",
- "object-component": "0.0.3",
- "parseqs": "0.0.5",
- "parseuri": "0.0.5",
- "socket.io-parser": "~3.3.0",
- "to-array": "0.1.4"
- },
- "dependencies": {
- "component-emitter": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
- "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
- },
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- }
- }
- },
- "socket.io-parser": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.1.tgz",
- "integrity": "sha512-1QLvVAe8dTz+mKmZ07Swxt+LAo4Y1ff50rlyoEx00TQmDFVQYPfcqGvIDJLGaBdhdNCecXtyKpD+EgKGcmmbuQ==",
+ "sockjs": {
+ "version": "0.3.20",
+ "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz",
+ "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==",
+ "dev": true,
"requires": {
- "component-emitter": "~1.3.0",
- "debug": "~3.1.0",
- "isarray": "2.0.1"
- },
- "dependencies": {
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "isarray": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
- "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4="
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- }
+ "faye-websocket": "^0.10.0",
+ "uuid": "^3.4.0",
+ "websocket-driver": "0.6.5"
}
},
- "sockjs": {
- "version": "0.3.19",
- "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz",
- "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==",
+ "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": {
- "faye-websocket": "^0.10.0",
- "uuid": "^3.0.1"
+ "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"
},
"dependencies": {
"faye-websocket": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
- "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
+ "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": {
"websocket-driver": ">=0.5.1"
@@ -19136,18 +18244,13 @@
}
}
},
- "sockjs-client": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz",
- "integrity": "sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==",
+ "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": {
- "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"
+ "is-plain-obj": "^1.0.0"
}
},
"source-list-map": {
@@ -19159,12 +18262,14 @@
"source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
},
"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",
@@ -19174,18 +18279,28 @@
}
},
"source-map-support": {
- "version": "0.4.18",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
- "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
+ "version": "0.5.19",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
+ "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
"dev": true,
"requires": {
- "source-map": "^0.5.6"
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
}
},
"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="
+ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
+ "dev": true
},
"spdx-correct": {
"version": "3.1.1",
@@ -19211,9 +18326,9 @@
}
},
"spdx-license-ids": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz",
- "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ=="
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
+ "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q=="
},
"spdy": {
"version": "4.0.2",
@@ -19229,19 +18344,13 @@
},
"dependencies": {
"debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "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.2"
+ "ms": "^2.1.1"
}
- },
- "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
}
}
},
@@ -19260,26 +18369,30 @@
},
"dependencies": {
"debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "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.2"
+ "ms": "^2.1.1"
}
- },
- "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
}
}
},
+ "split": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/split/-/split-0.3.1.tgz",
+ "integrity": "sha1-zrzxQr9hu7ZLFBYo5ttIKikUZUw=",
+ "dev": true,
+ "requires": {
+ "through": "2"
+ }
+ },
"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"
}
@@ -19287,12 +18400,14 @@
"sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+ "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==",
+ "dev": true,
"requires": {
"asn1": "~0.2.3",
"assert-plus": "^1.0.0",
@@ -19306,12 +18421,13 @@
}
},
"ssri": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
- "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
+ "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"
+ "figgy-pudding": "^3.5.1",
+ "minipass": "^3.1.1"
}
},
"stable": {
@@ -19320,32 +18436,23 @@
"integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==",
"dev": true
},
- "stack-utils": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.4.tgz",
- "integrity": "sha512-IPDJfugEGbfizBwBZRZ3xpccMdRyP5lqsBWXGQWimVjua/ccLCeMOAVjlc1R7LxFjo5sEDhyNIXd8mo/AiDS9w==",
- "dev": true,
- "requires": {
- "escape-string-regexp": "^2.0.0"
- },
- "dependencies": {
- "escape-string-regexp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
- "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
- "dev": true
- }
- }
+ "stack-trace": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
+ "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=",
+ "dev": true
},
- "staged-git-files": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/staged-git-files/-/staged-git-files-1.1.2.tgz",
- "integrity": "sha512-0Eyrk6uXW6tg9PYkhi/V/J4zHp33aNyi2hOCmhFLqLTIhbgqWn5jlSzI+IU0VqrZq6+DbHcabQl/WP6P3BG0QA=="
+ "stack-utils": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz",
+ "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==",
+ "dev": true
},
"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"
@@ -19355,6 +18462,7 @@
"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"
}
@@ -19364,12 +18472,14 @@
"statuses": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
+ "dev": true
},
"stdout-stream": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
"integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
+ "dev": true,
"requires": {
"readable-stream": "^2.0.1"
},
@@ -19378,6 +18488,7 @@
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
"integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dev": true,
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -19391,12 +18502,14 @@
"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=="
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
},
"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==",
+ "dev": true,
"requires": {
"safe-buffer": "~5.1.0"
}
@@ -19518,9 +18631,10 @@
"integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM="
},
"string-argv": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.0.2.tgz",
- "integrity": "sha1-2sMECGkMIfPDYwo/86BYd73L1zY="
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz",
+ "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==",
+ "dev": true
},
"string-convert": {
"version": "0.2.1",
@@ -19558,38 +18672,52 @@
"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",
"is-fullwidth-code-point": "^1.0.0",
"strip-ansi": "^3.0.0"
}
},
+ "string.prototype.matchall": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz",
+ "integrity": "sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0",
+ "has-symbols": "^1.0.1",
+ "internal-slot": "^1.0.2",
+ "regexp.prototype.flags": "^1.3.0",
+ "side-channel": "^1.0.2"
+ }
+ },
"string.prototype.padend": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.1.tgz",
- "integrity": "sha512-eCzTASPnoCr5Ht+Vn1YXgm8SB015hHKgEIMu9Nr9bQmLhRBxKRfmzSj/IQsxDFc8JInJDDFA0qXwK+xxI7wDkg==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.0.tgz",
+ "integrity": "sha512-3aIv8Ffdp8EZj8iLwREGpQaUZiPyrWrpzMBHvkiSW/bK/EGve9np07Vwy7IJ5waydpGXzQZu/F8Oze2/IWkBaA==",
"requires": {
- "call-bind": "^1.0.0",
"define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.1"
+ "es-abstract": "^1.17.0-next.1"
}
},
"string.prototype.trimend": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz",
- "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz",
+ "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==",
"requires": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3"
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5"
}
},
"string.prototype.trimstart": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz",
- "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz",
+ "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==",
"requires": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3"
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5"
}
},
"string_decoder": {
@@ -19604,6 +18732,7 @@
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz",
"integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==",
+ "dev": true,
"requires": {
"get-own-enumerable-property-symbols": "^3.0.0",
"is-obj": "^1.0.1",
@@ -19614,6 +18743,7 @@
"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"
}
@@ -19622,6 +18752,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
"integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true,
"requires": {
"is-utf8": "^0.2.0"
}
@@ -19639,12 +18770,20 @@
"strip-eof": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
- "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+ "dev": true
+ },
+ "strip-final-newline": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
+ "dev": true
},
"strip-indent": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
"integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+ "dev": true,
"requires": {
"get-stdin": "^4.0.1"
},
@@ -19652,14 +18791,15 @@
"get-stdin": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
- "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4="
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+ "dev": true
}
}
},
"strip-json-comments": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
"dev": true
},
"style-loader": {
@@ -19670,6 +18810,19 @@
"requires": {
"loader-utils": "^1.1.0",
"schema-utils": "^1.0.0"
+ },
+ "dependencies": {
+ "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",
+ "ajv-keywords": "^3.1.0"
+ }
+ }
}
},
"styled-components": {
@@ -19719,17 +18872,6 @@
"postcss-selector-parser": "^3.0.0"
},
"dependencies": {
- "postcss": {
- "version": "7.0.35",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz",
- "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
"postcss-selector-parser": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
@@ -19740,21 +18882,6 @@
"indexes-of": "^1.0.1",
"uniq": "^1.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==",
- "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"
- }
}
}
},
@@ -19771,10 +18898,151 @@
"has-flag": "^3.0.0"
}
},
- "svg-injector": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/svg-injector/-/svg-injector-1.1.3.tgz",
- "integrity": "sha1-j7oY10GeX4GOcSxPgtg+41dhDmE="
+ "surge": {
+ "version": "0.21.6",
+ "resolved": "https://registry.npmjs.org/surge/-/surge-0.21.6.tgz",
+ "integrity": "sha512-FejQvGH9G1Xt9nWGaQnwX5anKReDJkFUrAh3/UCroJTf/M91hId8JOt1N6Glgh9T2Sz8G4DFaFFHJsoPaI5DBw==",
+ "dev": true,
+ "requires": {
+ "cli-table3": "^0.5.1",
+ "inquirer": "^6.2.2",
+ "is-domain": "0.0.1",
+ "minimist": "1.2.3",
+ "moniker": "0.1.2",
+ "netrc": "0.1.4",
+ "progress": "1.1.8",
+ "prompt": "~0.2.14",
+ "read": "1.0.5",
+ "request": "^2.88.0",
+ "split": "0.3.1",
+ "surge-fstream-ignore": "^1.0.6",
+ "surge-ignore": "0.2.0",
+ "tarr": "1.1.0",
+ "url-parse-as-address": "1.0.0"
+ },
+ "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
+ },
+ "cli-width": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz",
+ "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==",
+ "dev": true
+ },
+ "figures": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^1.0.5"
+ }
+ },
+ "inquirer": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz",
+ "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "^3.2.0",
+ "chalk": "^2.4.2",
+ "cli-cursor": "^2.1.0",
+ "cli-width": "^2.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^2.0.0",
+ "lodash": "^4.17.12",
+ "mute-stream": "0.0.7",
+ "run-async": "^2.2.0",
+ "rxjs": "^6.4.0",
+ "string-width": "^2.1.0",
+ "strip-ansi": "^5.1.0",
+ "through": "^2.3.6"
+ }
+ },
+ "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
+ },
+ "minimist": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.3.tgz",
+ "integrity": "sha512-+bMdgqjMN/Z77a6NlY/I3U5LlRDbnmaAk6lDveAPKwSpcPM4tKAuYsvYF8xjhOPXhOYGe/73vVLVez5PW+jqhw==",
+ "dev": true
+ },
+ "mute-stream": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
+ "dev": true
+ },
+ "progress": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
+ "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
+ "dev": true
+ },
+ "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",
+ "strip-ansi": "^4.0.0"
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "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"
+ },
+ "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
+ }
+ }
+ }
+ }
+ },
+ "surge-fstream-ignore": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/surge-fstream-ignore/-/surge-fstream-ignore-1.0.6.tgz",
+ "integrity": "sha512-hNN52cz2fYCAzhlHmWPn4aE3bFbpBt01AkWFLljrtSzFvxlipLAeLuLtQ3t4f0RKoUkjzXWCAFK13WoET2iM1A==",
+ "dev": true,
+ "requires": {
+ "fstream": ">=1.0.12",
+ "inherits": "2",
+ "minimatch": "^3.0.0"
+ }
+ },
+ "surge-ignore": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/surge-ignore/-/surge-ignore-0.2.0.tgz",
+ "integrity": "sha1-Wn+KIKcRiM+edaLP6OsYLekNrzs=",
+ "dev": true
},
"svg-parser": {
"version": "2.0.4",
@@ -19811,12 +19079,8 @@
"symbol-tree": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
- "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
- },
- "synchronous-promise": {
- "version": "2.0.15",
- "resolved": "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.15.tgz",
- "integrity": "sha512-k8uzYIkIVwmT+TcglpdN50pS2y1BDcUnBPK9iJeGu0Pl1lOI8pD6wtzgw91Pjpe+RxtTncw32tLxs/R0yNL2Mg=="
+ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
+ "dev": true
},
"table": {
"version": "5.4.6",
@@ -19885,55 +19149,33 @@
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz",
"integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==",
+ "dev": true,
"requires": {
"block-stream": "*",
"fstream": "^1.0.12",
"inherits": "2"
}
},
- "terser": {
- "version": "3.17.0",
- "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz",
- "integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==",
+ "tarr": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/tarr/-/tarr-1.1.0.tgz",
+ "integrity": "sha512-tENbQ43IQckay71stp1p1lljRhoEZpZk10FzEZKW2tJcMcnLwV3CfZdxBAERlH6nwnFvnHMS9eJOJl6IzSsG0g==",
"dev": true,
"requires": {
- "commander": "^2.19.0",
- "source-map": "~0.6.1",
- "source-map-support": "~0.5.10"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- },
- "source-map-support": {
- "version": "0.5.19",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
- "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
- "dev": true,
- "requires": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- }
+ "block-stream": "*",
+ "fstream": ">=1.0.12",
+ "inherits": "2"
}
},
- "terser-webpack-plugin": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.2.2.tgz",
- "integrity": "sha512-1DMkTk286BzmfylAvLXwpJrI7dWa5BnFmscV/2dCr8+c56egFcbaeFAl7+sujAjdmpLam21XRdhA4oifLyiWWg==",
+ "terser": {
+ "version": "4.8.0",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz",
+ "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==",
"dev": true,
"requires": {
- "cacache": "^11.0.2",
- "find-cache-dir": "^2.0.0",
- "schema-utils": "^1.0.0",
- "serialize-javascript": "^1.4.0",
- "source-map": "^0.6.1",
- "terser": "^3.16.1",
- "webpack-sources": "^1.1.0",
- "worker-farm": "^1.5.2"
+ "commander": "^2.20.0",
+ "source-map": "~0.6.1",
+ "source-map-support": "~0.5.12"
},
"dependencies": {
"source-map": {
@@ -19944,121 +19186,183 @@
}
}
},
- "test-exclude": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.3.tgz",
- "integrity": "sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA==",
+ "terser-webpack-plugin": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.8.tgz",
+ "integrity": "sha512-/fKw3R+hWyHfYx7Bv6oPqmk4HGQcrWLtV3X6ggvPuwPNHSnzvVV51z6OaaCOus4YLjutYGOz3pEpbhe6Up2s1w==",
"dev": true,
"requires": {
- "arrify": "^1.0.1",
- "micromatch": "^2.3.11",
- "object-assign": "^4.1.0",
- "read-pkg-up": "^1.0.1",
- "require-main-filename": "^1.0.1"
+ "cacache": "^13.0.1",
+ "find-cache-dir": "^3.3.1",
+ "jest-worker": "^25.4.0",
+ "p-limit": "^2.3.0",
+ "schema-utils": "^2.6.6",
+ "serialize-javascript": "^4.0.0",
+ "source-map": "^0.6.1",
+ "terser": "^4.6.12",
+ "webpack-sources": "^1.4.3"
},
"dependencies": {
- "arr-diff": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
- "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+ "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",
+ "make-dir": "^3.0.2",
+ "pkg-dir": "^4.1.0"
+ }
+ },
+ "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": {
- "arr-flatten": "^1.0.1"
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
}
},
- "array-unique": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
- "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
+ "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
},
- "braces": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
- "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+ "jest-worker": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz",
+ "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==",
"dev": true,
"requires": {
- "expand-range": "^1.8.1",
- "preserve": "^0.2.0",
- "repeat-element": "^1.1.2"
+ "merge-stream": "^2.0.0",
+ "supports-color": "^7.0.0"
}
},
- "expand-brackets": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
- "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+ "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": {
- "is-posix-bracket": "^0.1.0"
+ "p-locate": "^4.1.0"
}
},
- "extglob": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
- "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+ "make-dir": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
"dev": true,
"requires": {
- "is-extglob": "^1.0.0"
+ "semver": "^6.0.0"
}
},
- "is-extglob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+ "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"
+ }
+ },
+ "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
},
- "is-glob": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
- "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "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": {
- "is-extglob": "^1.0.0"
+ "find-up": "^4.0.0"
}
},
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "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": {
- "is-buffer": "^1.1.5"
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "test-exclude": {
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz",
+ "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3",
+ "minimatch": "^3.0.4",
+ "read-pkg-up": "^4.0.0",
+ "require-main-filename": "^2.0.0"
+ },
+ "dependencies": {
+ "load-json-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^4.0.0",
+ "pify": "^3.0.0",
+ "strip-bom": "^3.0.0"
}
},
- "micromatch": {
- "version": "2.3.11",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
- "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
- "dev": true,
- "requires": {
- "arr-diff": "^2.0.0",
- "array-unique": "^0.2.1",
- "braces": "^1.8.2",
- "expand-brackets": "^0.1.4",
- "extglob": "^0.3.1",
- "filename-regex": "^2.0.0",
- "is-extglob": "^1.0.0",
- "is-glob": "^2.0.1",
- "kind-of": "^3.0.2",
- "normalize-path": "^2.0.1",
- "object.omit": "^2.0.0",
- "parse-glob": "^3.0.4",
- "regex-cache": "^0.4.2"
+ "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"
}
},
- "normalize-path": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
- "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "read-pkg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "^4.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^3.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz",
+ "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==",
"dev": true,
"requires": {
- "remove-trailing-separator": "^1.0.1"
+ "find-up": "^3.0.0",
+ "read-pkg": "^3.0.0"
}
},
- "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=",
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
"dev": true
}
}
@@ -20130,9 +19434,9 @@
"dev": true
},
"timers-browserify": {
- "version": "2.0.12",
- "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz",
- "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==",
+ "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"
@@ -20150,9 +19454,9 @@
"integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q=="
},
"tinycolor2": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz",
- "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA=="
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz",
+ "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g="
},
"tmp": {
"version": "0.0.33",
@@ -20169,11 +19473,6 @@
"integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=",
"dev": true
},
- "to-array": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
- "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA="
- },
"to-arraybuffer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
@@ -20203,6 +19502,7 @@
"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"
},
@@ -20211,6 +19511,7 @@
"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"
}
@@ -20221,6 +19522,7 @@
"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",
@@ -20232,6 +19534,7 @@
"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"
@@ -20253,71 +19556,54 @@
"toidentifier": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
- "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
- },
- "topo": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/topo/-/topo-2.0.2.tgz",
- "integrity": "sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI=",
- "dev": true,
- "requires": {
- "hoek": "4.x.x"
- }
- },
- "toposort": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz",
- "integrity": "sha1-riF2gXXRVZ1IvvNUILL0li8JwzA="
+ "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
+ "dev": true
},
"tough-cookie": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
"integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
+ "dev": true,
"requires": {
"psl": "^1.1.28",
"punycode": "^2.1.1"
}
},
- "tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
- },
"trim-newlines": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
- "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM="
- },
- "trim-right": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
- "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
+ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
"dev": true
},
"true-case-path": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
"integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==",
+ "dev": true,
"requires": {
"glob": "^7.1.2"
}
},
- "tryer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz",
- "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==",
- "dev": true
- },
"ts-pnp": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz",
- "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==",
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.1.6.tgz",
+ "integrity": "sha512-CrG5GqAAzMT7144Cl+UIFP7mz/iIhiy+xQ6GGcnjTezhALT02uPMRw7tgDSESgB5MsfKt55+GPWw4ir1kVtMIQ==",
"dev": true
},
"tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
+ "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
+ "dev": true
+ },
+ "tsutils": {
+ "version": "3.17.1",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz",
+ "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.8.1"
+ }
},
"tty-browserify": {
"version": "0.0.0",
@@ -20329,6 +19615,7 @@
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "dev": true,
"requires": {
"safe-buffer": "^5.0.1"
}
@@ -20341,20 +19628,35 @@
"tweetnacl": {
"version": "0.14.5",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "dev": true
+ },
+ "type": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
+ "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==",
+ "dev": true
},
"type-check": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
"integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "dev": true,
"requires": {
"prelude-ls": "~1.1.2"
}
},
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true
+ },
"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",
"mime-types": "~2.1.24"
@@ -20372,43 +19674,19 @@
"dev": true
},
"ua-parser-js": {
- "version": "0.7.23",
- "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.23.tgz",
- "integrity": "sha512-m4hvMLxgGHXG3O3fQVAyyAQpZzDOvwnhOTjYz5Xmr7r/+LpkNy3vJXdVRWgd1TkAb7NGROZuSy96CrlNVjA7KA=="
+ "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=="
},
"uc.micro": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
"integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA=="
},
- "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",
- "source-map": "~0.6.1"
- },
- "dependencies": {
- "commander": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz",
- "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==",
- "dev": true
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- }
- }
- },
"underscore": {
- "version": "1.12.0",
- "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.0.tgz",
- "integrity": "sha512-21rQzss/XPMjolTiIezSu3JAjgagXKROtNrYFEOWK109qY1Uv2tVjPTZ1ci2HgvQDA16gHYSthQIJfB+XId/rQ=="
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz",
+ "integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg=="
},
"unicode-canonical-property-names-ecmascript": {
"version": "1.0.4",
@@ -20442,6 +19720,7 @@
"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",
@@ -20499,7 +19778,8 @@
"unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+ "dev": true
},
"unquote": {
"version": "1.1.1",
@@ -20511,6 +19791,7 @@
"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"
@@ -20520,6 +19801,7 @@
"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",
@@ -20530,6 +19812,7 @@
"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"
}
@@ -20539,25 +19822,22 @@
"has-values": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
- "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E="
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+ "dev": true
}
}
},
"upath": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
- "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg=="
- },
- "upper-case": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
- "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=",
+ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
"dev": true
},
"uri-js": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz",
- "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+ "dev": true,
"requires": {
"punycode": "^2.1.0"
}
@@ -20565,7 +19845,8 @@
"urix": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
- "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+ "dev": true
},
"url": {
"version": "0.11.0",
@@ -20586,20 +19867,20 @@
}
},
"url-loader": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz",
- "integrity": "sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-2.3.0.tgz",
+ "integrity": "sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog==",
"dev": true,
"requires": {
- "loader-utils": "^1.1.0",
- "mime": "^2.0.3",
- "schema-utils": "^1.0.0"
+ "loader-utils": "^1.2.3",
+ "mime": "^2.4.4",
+ "schema-utils": "^2.5.0"
},
"dependencies": {
"mime": {
- "version": "2.4.7",
- "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz",
- "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==",
+ "version": "2.4.6",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz",
+ "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==",
"dev": true
}
}
@@ -20614,24 +19895,31 @@
"requires-port": "^1.0.0"
}
},
+ "url-parse-as-address": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-as-address/-/url-parse-as-address-1.0.0.tgz",
+ "integrity": "sha1-+4CQGIPzOLPL7TU49fqiatr38uc=",
+ "dev": true
+ },
"use": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
- "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+ "dev": true
},
"util": {
- "version": "0.11.1",
- "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
- "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
+ "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.3"
+ "inherits": "2.0.1"
},
"dependencies": {
"inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
"dev": true
}
}
@@ -20651,27 +19939,6 @@
"es-abstract": "^1.17.2",
"has-symbols": "^1.0.1",
"object.getownpropertydescriptors": "^2.1.0"
- },
- "dependencies": {
- "es-abstract": {
- "version": "1.17.7",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz",
- "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==",
- "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.2.2",
- "is-regex": "^1.1.1",
- "object-inspect": "^1.8.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.1",
- "string.prototype.trimend": "^1.0.1",
- "string.prototype.trimstart": "^1.0.1"
- }
- }
}
},
"utila": {
@@ -20680,15 +19947,59 @@
"integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=",
"dev": true
},
+ "utile": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz",
+ "integrity": "sha1-kwyI6ZCY1iIINMNWy9mncFItkNc=",
+ "dev": true,
+ "requires": {
+ "async": "~0.2.9",
+ "deep-equal": "*",
+ "i": "0.3.x",
+ "mkdirp": "0.x.x",
+ "ncp": "0.4.x",
+ "rimraf": "2.x.x"
+ },
+ "dependencies": {
+ "async": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
+ "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"
+ }
+ }
+ }
+ },
"utils-merge": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+ "dev": true
},
"uuid": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+ "dev": true
+ },
+ "v8-compile-cache": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz",
+ "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==",
+ "dev": true
+ },
+ "validate-color": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/validate-color/-/validate-color-2.1.0.tgz",
+ "integrity": "sha512-/78x9MDsanOisNfa4UxombQkPCE2A/hmFUtgunwGutpAgTRnhKvOhzJ4KeSDunbKEla6T+u0OlHd1hWCLVhSdA=="
},
"validate-npm-package-license": {
"version": "3.0.4",
@@ -20704,10 +20015,16 @@
"resolved": "https://registry.npmjs.org/validator/-/validator-10.11.0.tgz",
"integrity": "sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw=="
},
+ "vanilla-swipe": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/vanilla-swipe/-/vanilla-swipe-1.2.0.tgz",
+ "integrity": "sha512-1yNnsfHcl67Y24HGJc/zrC9omRBzzxqvC6D5apOXMqGukuz0Zha1ydKJM7AUL/dB2w7Bd7UsI2Uw7+AE4soDaA=="
+ },
"vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+ "dev": true
},
"vendors": {
"version": "1.0.4",
@@ -20719,6 +20036,7 @@
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "dev": true,
"requires": {
"assert-plus": "^1.0.0",
"core-util-is": "1.0.2",
@@ -20740,6 +20058,25 @@
"browser-process-hrtime": "^1.0.0"
}
},
+ "w3c-xmlserializer": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz",
+ "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==",
+ "dev": true,
+ "requires": {
+ "domexception": "^1.0.1",
+ "webidl-conversions": "^4.0.2",
+ "xml-name-validator": "^3.0.0"
+ },
+ "dependencies": {
+ "xml-name-validator": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
+ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
+ "dev": true
+ }
+ }
+ },
"walker": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz",
@@ -20766,26 +20103,16 @@
"loose-envify": "^1.0.0"
}
},
- "watch": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz",
- "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=",
- "dev": true,
- "requires": {
- "exec-sh": "^0.2.0",
- "minimist": "^1.2.0"
- }
- },
"watchpack": {
- "version": "1.7.5",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz",
- "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==",
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz",
+ "integrity": "sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==",
"dev": true,
"requires": {
"chokidar": "^3.4.1",
"graceful-fs": "^4.1.2",
"neo-async": "^2.5.0",
- "watchpack-chokidar2": "^2.0.1"
+ "watchpack-chokidar2": "^2.0.0"
},
"dependencies": {
"anymatch": {
@@ -20817,9 +20144,9 @@
}
},
"chokidar": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz",
- "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==",
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz",
+ "integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==",
"dev": true,
"optional": true,
"requires": {
@@ -20830,7 +20157,7 @@
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
"normalize-path": "~3.0.0",
- "readdirp": "~3.5.0"
+ "readdirp": "~3.4.0"
}
},
"fill-range": {
@@ -20878,9 +20205,9 @@
"optional": true
},
"readdirp": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
- "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz",
+ "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==",
"dev": true,
"optional": true,
"requires": {
@@ -20900,9 +20227,9 @@
}
},
"watchpack-chokidar2": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz",
- "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz",
+ "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==",
"dev": true,
"optional": true,
"requires": {
@@ -20921,46 +20248,80 @@
"webidl-conversions": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
- "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg=="
+ "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
+ "dev": true
},
"webpack": {
- "version": "4.28.3",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.28.3.tgz",
- "integrity": "sha512-vLZN9k5I7Nr/XB1IDG9GbZB4yQd1sPuvufMFgJkx0b31fi2LD97KQIjwjxE7xytdruAYfu5S0FLBLjdxmwGJCg==",
- "dev": true,
- "requires": {
- "@webassemblyjs/ast": "1.7.11",
- "@webassemblyjs/helper-module-context": "1.7.11",
- "@webassemblyjs/wasm-edit": "1.7.11",
- "@webassemblyjs/wasm-parser": "1.7.11",
- "acorn": "^5.6.2",
- "acorn-dynamic-import": "^3.0.0",
- "ajv": "^6.1.0",
- "ajv-keywords": "^3.1.0",
- "chrome-trace-event": "^1.0.0",
+ "version": "4.42.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.42.0.tgz",
+ "integrity": "sha512-EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w==",
+ "dev": true,
+ "requires": {
+ "@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.0",
+ "eslint-scope": "^4.0.3",
"json-parse-better-errors": "^1.0.2",
- "loader-runner": "^2.3.0",
- "loader-utils": "^1.1.0",
- "memory-fs": "~0.4.1",
- "micromatch": "^3.1.8",
- "mkdirp": "~0.5.0",
- "neo-async": "^2.5.0",
- "node-libs-browser": "^2.0.0",
- "schema-utils": "^0.4.4",
- "tapable": "^1.1.0",
- "terser-webpack-plugin": "^1.1.0",
- "watchpack": "^1.5.0",
- "webpack-sources": "^1.3.0"
+ "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"
},
"dependencies": {
"acorn": {
- "version": "5.7.4",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz",
- "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==",
+ "version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
+ "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==",
"dev": true
},
+ "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",
+ "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"
+ },
+ "dependencies": {
+ "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"
+ }
+ }
+ }
+ },
"eslint-scope": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
@@ -20971,265 +20332,250 @@
"estraverse": "^4.1.1"
}
},
+ "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"
+ }
+ },
"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==",
+ "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",
"ajv-keywords": "^3.1.0"
}
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "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.5",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz",
+ "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==",
+ "dev": true,
+ "requires": {
+ "cacache": "^12.0.2",
+ "find-cache-dir": "^2.1.0",
+ "is-wsl": "^1.1.0",
+ "schema-utils": "^1.0.0",
+ "serialize-javascript": "^4.0.0",
+ "source-map": "^0.6.1",
+ "terser": "^4.1.2",
+ "webpack-sources": "^1.4.0",
+ "worker-farm": "^1.7.0"
+ }
+ },
+ "yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true
}
}
},
"webpack-dev-middleware": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz",
- "integrity": "sha512-Q9Iyc0X9dP9bAsYskAVJ/hmIZZQwf/3Sy4xCAZgL5cUkjZmUZLt4l5HpbST/Pdgjn3u6pE7u5OdGd1apgzRujA==",
+ "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",
- "mime": "^2.3.1",
- "range-parser": "^1.0.3",
+ "memory-fs": "^0.4.1",
+ "mime": "^2.4.4",
+ "mkdirp": "^0.5.1",
+ "range-parser": "^1.2.1",
"webpack-log": "^2.0.0"
},
"dependencies": {
"mime": {
- "version": "2.4.7",
- "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz",
- "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==",
+ "version": "2.4.6",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz",
+ "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==",
"dev": true
}
}
},
"webpack-dev-server": {
- "version": "3.1.14",
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.14.tgz",
- "integrity": "sha512-mGXDgz5SlTxcF3hUpfC8hrQ11yhAttuUQWf1Wmb+6zo3x6rb7b9mIfuQvAPLdfDRCGRGvakBWHdHOa0I9p/EVQ==",
+ "version": "3.11.0",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz",
+ "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==",
"dev": true,
"requires": {
"ansi-html": "0.0.7",
"bonjour": "^3.5.0",
- "chokidar": "^2.0.0",
- "compression": "^1.5.2",
- "connect-history-api-fallback": "^1.3.0",
- "debug": "^3.1.0",
- "del": "^3.0.0",
- "express": "^4.16.2",
- "html-entities": "^1.2.0",
- "http-proxy-middleware": "~0.18.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.3.1",
+ "http-proxy-middleware": "0.19.1",
"import-local": "^2.0.0",
- "internal-ip": "^3.0.1",
+ "internal-ip": "^4.3.0",
"ip": "^1.1.5",
- "killable": "^1.0.0",
- "loglevel": "^1.4.1",
- "opn": "^5.1.0",
- "portfinder": "^1.0.9",
+ "is-absolute-url": "^3.0.3",
+ "killable": "^1.0.1",
+ "loglevel": "^1.6.8",
+ "opn": "^5.5.0",
+ "p-retry": "^3.0.1",
+ "portfinder": "^1.0.26",
"schema-utils": "^1.0.0",
- "selfsigned": "^1.9.1",
- "semver": "^5.6.0",
- "serve-index": "^1.7.2",
- "sockjs": "0.3.19",
- "sockjs-client": "1.3.0",
- "spdy": "^4.0.0",
- "strip-ansi": "^3.0.0",
- "supports-color": "^5.1.0",
+ "selfsigned": "^1.10.7",
+ "semver": "^6.3.0",
+ "serve-index": "^1.9.1",
+ "sockjs": "0.3.20",
+ "sockjs-client": "1.4.0",
+ "spdy": "^4.0.2",
+ "strip-ansi": "^3.0.1",
+ "supports-color": "^6.1.0",
"url": "^0.11.0",
- "webpack-dev-middleware": "3.4.0",
+ "webpack-dev-middleware": "^3.7.2",
"webpack-log": "^2.0.0",
- "yargs": "12.0.2"
+ "ws": "^6.2.1",
+ "yargs": "^13.3.2"
},
"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
- },
- "camelcase": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
- "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
- "dev": true
+ "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"
+ }
},
- "cliui": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
- "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
+ "del": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz",
+ "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==",
"dev": true,
"requires": {
- "string-width": "^2.1.1",
- "strip-ansi": "^4.0.0",
- "wrap-ansi": "^2.0.0"
+ "@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": {
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
"dev": true,
"requires": {
- "ansi-regex": "^3.0.0"
+ "glob": "^7.1.3"
}
- }
- }
- },
- "decamelize": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz",
- "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==",
- "dev": true,
- "requires": {
- "xregexp": "4.0.0"
- }
- },
- "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
+ }
+ }
},
"http-proxy-middleware": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz",
- "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==",
+ "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.16.2",
+ "http-proxy": "^1.17.0",
"is-glob": "^4.0.0",
- "lodash": "^4.17.5",
- "micromatch": "^3.1.9"
- }
- },
- "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",
- "resolve-cwd": "^2.0.0"
+ "lodash": "^4.17.11",
+ "micromatch": "^3.1.10"
}
},
- "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==",
+ "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": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "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
},
- "lcid": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
- "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
+ "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": {
- "invert-kv": "^2.0.0"
+ "is-path-inside": "^2.1.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==",
+ "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": {
- "execa": "^1.0.0",
- "lcid": "^2.0.0",
- "mem": "^4.0.0"
+ "path-is-inside": "^1.0.2"
}
},
- "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=",
+ "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
},
- "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",
- "strip-ansi": "^4.0.0"
- },
- "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"
- }
- }
- }
+ "pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true
},
- "wrap-ansi": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
- "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "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": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1"
- },
- "dependencies": {
- "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"
- }
- },
- "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",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- }
- }
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
}
},
- "yargs": {
- "version": "12.0.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz",
- "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==",
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "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": {
- "cliui": "^4.0.0",
- "decamelize": "^2.0.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": "^10.1.0"
+ "has-flag": "^3.0.0"
}
},
- "yargs-parser": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz",
- "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==",
+ "ws": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
+ "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
"dev": true,
"requires": {
- "camelcase": "^4.1.0"
+ "async-limiter": "~1.0.0"
}
}
}
@@ -21245,14 +20591,28 @@
}
},
"webpack-manifest-plugin": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-2.0.4.tgz",
- "integrity": "sha512-nejhOHexXDBKQOj/5v5IZSfCeTO3x1Dt1RZEcGfBSul891X/eLIcIVH31gwxPDdsi2Z8LKKFGpM4w9+oTBOSCg==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-2.2.0.tgz",
+ "integrity": "sha512-9S6YyKKKh/Oz/eryM1RyLVDVmy3NSPV0JXMRhZ18fJsq+AwGxUY34X54VNwkzYcEmEkDwNxuEOboCZEebJXBAQ==",
"dev": true,
"requires": {
"fs-extra": "^7.0.0",
"lodash": ">=3.5 <5",
+ "object.entries": "^1.1.0",
"tapable": "^1.0.0"
+ },
+ "dependencies": {
+ "fs-extra": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ }
}
},
"webpack-sources": {
@@ -21274,13 +20634,11 @@
}
},
"websocket-driver": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
- "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz",
+ "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=",
"dev": true,
"requires": {
- "http-parser-js": ">=0.5.1",
- "safe-buffer": ">=5.1.0",
"websocket-extensions": ">=0.1.1"
}
},
@@ -21294,24 +20652,15 @@
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
"integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==",
+ "dev": true,
"requires": {
"iconv-lite": "0.4.24"
- },
- "dependencies": {
- "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"
- }
- }
}
},
"whatwg-fetch": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.5.0.tgz",
- "integrity": "sha512-jXkLtsR42xhXg7akoDKvKWE40eJeI+2KZqcp2h3NsOrRnDvtWX36KcKl30dy+hxECivdk2BVUHVNrPtoMBUx6A=="
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.1.1.tgz",
+ "integrity": "sha512-UlBvc5VApYAwNutfXFeuC9Jp3QCMazcqobfNqSK/RghRr3F8b0+i/QELUlEPsHjDHfijio6H5KPJcZwYXhuZsA=="
},
"whatwg-mimetype": {
"version": "2.3.0",
@@ -21319,22 +20668,6 @@
"integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==",
"dev": true
},
- "whatwg-url": {
- "version": "4.8.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz",
- "integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=",
- "requires": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- },
- "dependencies": {
- "webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
- }
- }
- },
"which": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
@@ -21346,73 +20679,112 @@
"which-module": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
- "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
+ },
+ "which-pm-runs": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz",
+ "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=",
+ "dev": true
},
"wide-align": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
"integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "dev": true,
"requires": {
"string-width": "^1.0.2 || 2"
}
},
+ "winston": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz",
+ "integrity": "sha1-ZLar9M0Brcrv1QCTk7HY6L7BnbA=",
+ "dev": true,
+ "requires": {
+ "async": "0.2.x",
+ "colors": "0.6.x",
+ "cycle": "1.0.x",
+ "eyes": "0.1.x",
+ "isstream": "0.1.x",
+ "pkginfo": "0.3.x",
+ "stack-trace": "0.0.x"
+ },
+ "dependencies": {
+ "async": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
+ "dev": true
+ },
+ "colors": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
+ "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=",
+ "dev": true
+ },
+ "pkginfo": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz",
+ "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=",
+ "dev": true
+ }
+ }
+ },
"word-wrap": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="
- },
- "wordwrap": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
- "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
"dev": true
},
"workbox-background-sync": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-3.6.3.tgz",
- "integrity": "sha512-ypLo0B6dces4gSpaslmDg5wuoUWrHHVJfFWwl1udvSylLdXvnrfhFfriCS42SNEe5lsZtcNZF27W/SMzBlva7Q==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-4.3.1.tgz",
+ "integrity": "sha512-1uFkvU8JXi7L7fCHVBEEnc3asPpiAL33kO495UMcD5+arew9IbKW2rV5lpzhoWcm/qhGB89YfO4PmB/0hQwPRg==",
"dev": true,
"requires": {
- "workbox-core": "^3.6.3"
+ "workbox-core": "^4.3.1"
}
},
- "workbox-broadcast-cache-update": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/workbox-broadcast-cache-update/-/workbox-broadcast-cache-update-3.6.3.tgz",
- "integrity": "sha512-pJl4lbClQcvp0SyTiEw0zLSsVYE1RDlCPtpKnpMjxFtu8lCFTAEuVyzxp9w7GF4/b3P4h5nyQ+q7V9mIR7YzGg==",
+ "workbox-broadcast-update": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-4.3.1.tgz",
+ "integrity": "sha512-MTSfgzIljpKLTBPROo4IpKjESD86pPFlZwlvVG32Kb70hW+aob4Jxpblud8EhNb1/L5m43DUM4q7C+W6eQMMbA==",
"dev": true,
"requires": {
- "workbox-core": "^3.6.3"
+ "workbox-core": "^4.3.1"
}
},
"workbox-build": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-3.6.3.tgz",
- "integrity": "sha512-w0clZ/pVjL8VXy6GfthefxpEXs0T8uiRuopZSFVQ8ovfbH6c6kUpEh6DcYwm/Y6dyWPiCucdyAZotgjz+nRz8g==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-4.3.1.tgz",
+ "integrity": "sha512-UHdwrN3FrDvicM3AqJS/J07X0KXj67R8Cg0waq1MKEOqzo89ap6zh6LmaLnRAjpB+bDIz+7OlPye9iii9KBnxw==",
"dev": true,
"requires": {
- "babel-runtime": "^6.26.0",
- "common-tags": "^1.4.0",
+ "@babel/runtime": "^7.3.4",
+ "@hapi/joi": "^15.0.0",
+ "common-tags": "^1.8.0",
"fs-extra": "^4.0.2",
- "glob": "^7.1.2",
- "joi": "^11.1.1",
+ "glob": "^7.1.3",
"lodash.template": "^4.4.0",
- "pretty-bytes": "^4.0.2",
- "stringify-object": "^3.2.2",
+ "pretty-bytes": "^5.1.0",
+ "stringify-object": "^3.3.0",
"strip-comments": "^1.0.2",
- "workbox-background-sync": "^3.6.3",
- "workbox-broadcast-cache-update": "^3.6.3",
- "workbox-cache-expiration": "^3.6.3",
- "workbox-cacheable-response": "^3.6.3",
- "workbox-core": "^3.6.3",
- "workbox-google-analytics": "^3.6.3",
- "workbox-navigation-preload": "^3.6.3",
- "workbox-precaching": "^3.6.3",
- "workbox-range-requests": "^3.6.3",
- "workbox-routing": "^3.6.3",
- "workbox-strategies": "^3.6.3",
- "workbox-streams": "^3.6.3",
- "workbox-sw": "^3.6.3"
+ "workbox-background-sync": "^4.3.1",
+ "workbox-broadcast-update": "^4.3.1",
+ "workbox-cacheable-response": "^4.3.1",
+ "workbox-core": "^4.3.1",
+ "workbox-expiration": "^4.3.1",
+ "workbox-google-analytics": "^4.3.1",
+ "workbox-navigation-preload": "^4.3.1",
+ "workbox-precaching": "^4.3.1",
+ "workbox-range-requests": "^4.3.1",
+ "workbox-routing": "^4.3.1",
+ "workbox-strategies": "^4.3.1",
+ "workbox-streams": "^4.3.1",
+ "workbox-sw": "^4.3.1",
+ "workbox-window": "^4.3.1"
},
"dependencies": {
"fs-extra": {
@@ -21428,111 +20800,120 @@
}
}
},
- "workbox-cache-expiration": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/workbox-cache-expiration/-/workbox-cache-expiration-3.6.3.tgz",
- "integrity": "sha512-+ECNph/6doYx89oopO/UolYdDmQtGUgo8KCgluwBF/RieyA1ZOFKfrSiNjztxOrGJoyBB7raTIOlEEwZ1LaHoA==",
- "dev": true,
- "requires": {
- "workbox-core": "^3.6.3"
- }
- },
"workbox-cacheable-response": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-3.6.3.tgz",
- "integrity": "sha512-QpmbGA9SLcA7fklBLm06C4zFg577Dt8u3QgLM0eMnnbaVv3rhm4vbmDpBkyTqvgK/Ly8MBDQzlXDtUCswQwqqg==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-4.3.1.tgz",
+ "integrity": "sha512-Rp5qlzm6z8IOvnQNkCdO9qrDgDpoPNguovs0H8C+wswLuPgSzSp9p2afb5maUt9R1uTIwOXrVQMmPfPypv+npw==",
"dev": true,
"requires": {
- "workbox-core": "^3.6.3"
+ "workbox-core": "^4.3.1"
}
},
"workbox-core": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-3.6.3.tgz",
- "integrity": "sha512-cx9cx0nscPkIWs8Pt98HGrS9/aORuUcSkWjG25GqNWdvD/pSe7/5Oh3BKs0fC+rUshCiyLbxW54q0hA+GqZeSQ==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-4.3.1.tgz",
+ "integrity": "sha512-I3C9jlLmMKPxAC1t0ExCq+QoAMd0vAAHULEgRZ7kieCdUd919n53WC0AfvokHNwqRhGn+tIIj7vcb5duCjs2Kg==",
"dev": true
},
+ "workbox-expiration": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-4.3.1.tgz",
+ "integrity": "sha512-vsJLhgQsQouv9m0rpbXubT5jw0jMQdjpkum0uT+d9tTwhXcEZks7qLfQ9dGSaufTD2eimxbUOJfWLbNQpIDMPw==",
+ "dev": true,
+ "requires": {
+ "workbox-core": "^4.3.1"
+ }
+ },
"workbox-google-analytics": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-3.6.3.tgz",
- "integrity": "sha512-RQBUo/6SXtIaQTRFj4RQZ9e1gAl7D8oS5S+Hi173Kk70/BgJjzPwXpC5A249Jv5YfkCOLMQCeF9A27BiD0b0ig==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-4.3.1.tgz",
+ "integrity": "sha512-xzCjAoKuOb55CBSwQrbyWBKqp35yg1vw9ohIlU2wTy06ZrYfJ8rKochb1MSGlnoBfXGWss3UPzxR5QL5guIFdg==",
"dev": true,
"requires": {
- "workbox-background-sync": "^3.6.3",
- "workbox-core": "^3.6.3",
- "workbox-routing": "^3.6.3",
- "workbox-strategies": "^3.6.3"
+ "workbox-background-sync": "^4.3.1",
+ "workbox-core": "^4.3.1",
+ "workbox-routing": "^4.3.1",
+ "workbox-strategies": "^4.3.1"
}
},
"workbox-navigation-preload": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-3.6.3.tgz",
- "integrity": "sha512-dd26xTX16DUu0i+MhqZK/jQXgfIitu0yATM4jhRXEmpMqQ4MxEeNvl2CgjDMOHBnCVMax+CFZQWwxMx/X/PqCw==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-4.3.1.tgz",
+ "integrity": "sha512-K076n3oFHYp16/C+F8CwrRqD25GitA6Rkd6+qAmLmMv1QHPI2jfDwYqrytOfKfYq42bYtW8Pr21ejZX7GvALOw==",
"dev": true,
"requires": {
- "workbox-core": "^3.6.3"
+ "workbox-core": "^4.3.1"
}
},
"workbox-precaching": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-3.6.3.tgz",
- "integrity": "sha512-aBqT66BuMFviPTW6IpccZZHzpA8xzvZU2OM1AdhmSlYDXOJyb1+Z6blVD7z2Q8VNtV1UVwQIdImIX+hH3C3PIw==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-4.3.1.tgz",
+ "integrity": "sha512-piSg/2csPoIi/vPpp48t1q5JLYjMkmg5gsXBQkh/QYapCdVwwmKlU9mHdmy52KsDGIjVaqEUMFvEzn2LRaigqQ==",
"dev": true,
"requires": {
- "workbox-core": "^3.6.3"
+ "workbox-core": "^4.3.1"
}
},
"workbox-range-requests": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-3.6.3.tgz",
- "integrity": "sha512-R+yLWQy7D9aRF9yJ3QzwYnGFnGDhMUij4jVBUVtkl67oaVoP1ymZ81AfCmfZro2kpPRI+vmNMfxxW531cqdx8A==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-4.3.1.tgz",
+ "integrity": "sha512-S+HhL9+iTFypJZ/yQSl/x2Bf5pWnbXdd3j57xnb0V60FW1LVn9LRZkPtneODklzYuFZv7qK6riZ5BNyc0R0jZA==",
"dev": true,
"requires": {
- "workbox-core": "^3.6.3"
+ "workbox-core": "^4.3.1"
}
},
"workbox-routing": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-3.6.3.tgz",
- "integrity": "sha512-bX20i95OKXXQovXhFOViOK63HYmXvsIwZXKWbSpVeKToxMrp0G/6LZXnhg82ijj/S5yhKNRf9LeGDzaqxzAwMQ==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-4.3.1.tgz",
+ "integrity": "sha512-FkbtrODA4Imsi0p7TW9u9MXuQ5P4pVs1sWHK4dJMMChVROsbEltuE79fBoIk/BCztvOJ7yUpErMKa4z3uQLX+g==",
"dev": true,
"requires": {
- "workbox-core": "^3.6.3"
+ "workbox-core": "^4.3.1"
}
},
"workbox-strategies": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-3.6.3.tgz",
- "integrity": "sha512-Pg5eulqeKet2y8j73Yw6xTgLdElktcWExGkzDVCGqfV9JCvnGuEpz5eVsCIK70+k4oJcBCin9qEg3g3CwEIH3g==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-4.3.1.tgz",
+ "integrity": "sha512-F/+E57BmVG8dX6dCCopBlkDvvhg/zj6VDs0PigYwSN23L8hseSRwljrceU2WzTvk/+BSYICsWmRq5qHS2UYzhw==",
"dev": true,
"requires": {
- "workbox-core": "^3.6.3"
+ "workbox-core": "^4.3.1"
}
},
"workbox-streams": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-3.6.3.tgz",
- "integrity": "sha512-rqDuS4duj+3aZUYI1LsrD2t9hHOjwPqnUIfrXSOxSVjVn83W2MisDF2Bj+dFUZv4GalL9xqErcFW++9gH+Z27w==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-4.3.1.tgz",
+ "integrity": "sha512-4Kisis1f/y0ihf4l3u/+ndMkJkIT4/6UOacU3A4BwZSAC9pQ9vSvJpIi/WFGQRH/uPXvuVjF5c2RfIPQFSS2uA==",
"dev": true,
"requires": {
- "workbox-core": "^3.6.3"
+ "workbox-core": "^4.3.1"
}
},
"workbox-sw": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-3.6.3.tgz",
- "integrity": "sha512-IQOUi+RLhvYCiv80RP23KBW/NTtIvzvjex28B8NW1jOm+iV4VIu3VXKXTA6er5/wjjuhmtB28qEAUqADLAyOSg==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-4.3.1.tgz",
+ "integrity": "sha512-0jXdusCL2uC5gM3yYFT6QMBzKfBr2XTk0g5TPAV4y8IZDyVNDyj1a8uSXy3/XrvkVTmQvLN4O5k3JawGReXr9w==",
"dev": true
},
"workbox-webpack-plugin": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-3.6.3.tgz",
- "integrity": "sha512-RwmKjc7HFHUFHoOlKoZUq9349u0QN3F8W5tZZU0vc1qsBZDINWXRiIBCAKvo/Njgay5sWz7z4I2adnyTo97qIQ==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-4.3.1.tgz",
+ "integrity": "sha512-gJ9jd8Mb8wHLbRz9ZvGN57IAmknOipD3W4XNE/Lk/4lqs5Htw4WOQgakQy/o/4CoXQlMCYldaqUg+EJ35l9MEQ==",
"dev": true,
"requires": {
- "babel-runtime": "^6.26.0",
+ "@babel/runtime": "^7.0.0",
"json-stable-stringify": "^1.0.1",
- "workbox-build": "^3.6.3"
+ "workbox-build": "^4.3.1"
+ }
+ },
+ "workbox-window": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-4.3.1.tgz",
+ "integrity": "sha512-C5gWKh6I58w3GeSc0wp2Ne+rqVw8qwcmZnQGpjiek8A2wpbxSJb1FdCoQVO+jDJs35bFgo/WETgl1fqgsxN0Hg==",
+ "dev": true,
+ "requires": {
+ "workbox-core": "^4.3.1"
}
},
"worker-farm": {
@@ -21544,40 +20925,86 @@
"errno": "~0.1.7"
}
},
+ "worker-rpc": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz",
+ "integrity": "sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==",
+ "dev": true,
+ "requires": {
+ "microevent.ts": "~0.1.1"
+ }
+ },
"wrap-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz",
- "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=",
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dev": true,
"requires": {
- "string-width": "^2.1.1",
- "strip-ansi": "^4.0.0"
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
},
"dependencies": {
"ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
},
"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="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
},
"string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "dev": true,
"requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
}
},
"strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
"requires": {
- "ansi-regex": "^3.0.0"
+ "ansi-regex": "^5.0.0"
}
}
}
@@ -21588,18 +21015,18 @@
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"write": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
- "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
+ "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
"dev": true,
"requires": {
"mkdirp": "^0.5.1"
}
},
"write-file-atomic": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
- "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz",
+ "integrity": "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==",
"dev": true,
"requires": {
"graceful-fs": "^4.1.11",
@@ -21611,25 +21038,40 @@
"version": "6.1.4",
"resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz",
"integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==",
+ "dev": true,
"requires": {
"async-limiter": "~1.0.0"
}
},
- "xml-name-validator": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz",
- "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU="
+ "ws-heartbeat": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/ws-heartbeat/-/ws-heartbeat-1.2.0.tgz",
+ "integrity": "sha512-HlN5j2LEFU5O3onX/poHEEwOduF4QYPWrY956CYe+nJQP4tU7aAM+8KciNFlZ1wDEX1/ZnLFP3QNMqnTgMmBkw==",
+ "requires": {
+ "ws": "7"
+ },
+ "dependencies": {
+ "ws": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz",
+ "integrity": "sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ=="
+ }
+ }
},
- "xmlhttprequest-ssl": {
- "version": "1.5.5",
- "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz",
- "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4="
+ "xmlchars": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
+ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
+ "dev": true
},
"xregexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz",
- "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==",
- "dev": true
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.3.0.tgz",
+ "integrity": "sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime-corejs3": "^7.8.3"
+ }
},
"xtend": {
"version": "4.0.2",
@@ -21638,19 +21080,28 @@
"dev": true
},
"y18n": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
- "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ=="
+ "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
},
"yallist": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "dev": true
+ },
+ "yaml": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz",
+ "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==",
+ "dev": true
},
"yargs": {
"version": "13.3.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
"integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
+ "dev": true,
"requires": {
"cliui": "^5.0.0",
"find-up": "^3.0.0",
@@ -21667,17 +21118,20 @@
"ansi-regex": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
},
"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="
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "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",
@@ -21688,6 +21142,7 @@
"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"
}
@@ -21698,6 +21153,7 @@
"version": "13.1.2",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
"integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
+ "dev": true,
"requires": {
"camelcase": "^5.0.0",
"decamelize": "^1.2.0"
@@ -21706,28 +21162,11 @@
"camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
}
}
},
- "yeast": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz",
- "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk="
- },
- "yup": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/yup/-/yup-0.27.0.tgz",
- "integrity": "sha512-v1yFnE4+u9za42gG/b/081E7uNW9mUj3qtkmelLbW5YPROZzSH/KUUyJu9Wt8vxFJcT9otL/eZopS0YK1L5yPQ==",
- "requires": {
- "@babel/runtime": "^7.0.0",
- "fn-name": "~2.0.1",
- "lodash": "^4.17.11",
- "property-expr": "^1.5.0",
- "synchronous-promise": "^2.0.6",
- "toposort": "^2.0.2"
- }
- },
"zscroller": {
"version": "0.4.8",
"resolved": "https://registry.npmjs.org/zscroller/-/zscroller-0.4.8.tgz",
diff --git a/web/package.json b/web/package.json
index 6af8765405..bfae29c251 100644
--- a/web/package.json
+++ b/web/package.json
@@ -1,53 +1,58 @@
{
"name": "hollaex-kit",
- "version": "1.5.15",
+ "version": "2.0.0",
"private": true,
"dependencies": {
+ "@ant-design/compatible": "1.0.5",
+ "@ant-design/icons": "4.2.2",
"@material/button": "0.7.0",
- "antd": "3.21.4",
+ "antd": "4.6.2",
"antd-mobile": "2.2.3",
"awesome-phonenumber": "2.43.0",
"axios": "0.21.1",
"babel-polyfill": "6.26.0",
"bchaddrjs": "0.3.2",
- "bitcoin-address-validation": "0.2.7",
"bluebird": "3.5.5",
"classnames": "2.2.6",
+ "color": "3.1.3",
"country-data": "0.0.31",
"d3-axis": "1.0.12",
"d3-scale": "2.2.2",
"d3-selection": "1.4.0",
- "d3-time": "1.0.11",
"draft-js": "0.11.5",
"draftjs-to-html": "0.9.1",
"emoji-mart": "2.11.1",
"flag-icon-css": "3.3.0",
- "husky": "1.3.1",
+ "flat": "5.0.2",
+ "highcharts": "8.2.2",
+ "highcharts-react-official": "3.0.0",
+ "html-to-draftjs": "1.5.0",
"jwt-decode": "2.2.0",
"keycode": "2.2.0",
- "lint-staged": "8.2.1",
+ "lodash.debounce": "4.0.8",
+ "lodash.isequal": "4.5.0",
+ "lodash.merge": "4.6.2",
"mathjs": "5.10.3",
"mobile-detect": "1.4.2",
"moment": "2.24.0",
"moment-jalaali": "0.7.2",
"moment-timezone": "0.5.21",
- "node-sass-chokidar": "1.3.4",
"npm-run-all": "4.1.5",
"numbro": "1.11.1",
"prop-types": "15.7.2",
"qrcode.react": "0.9.3",
"query-string": "5.1.1",
+ "rc-color-picker": "1.2.6",
"rc-tooltip": "3.7.3",
- "react": "16.8.6",
- "react-addons-shallow-compare": "15.6.2",
+ "react": "16.13.1",
+ "react-alice-carousel": "1.19.3",
"react-copy-to-clipboard": "5.0.1",
"react-csv": "1.1.1",
"react-custom-scrollbars": "4.2.1",
"react-dates": "20.1.0",
"react-device-detect": "1.6.2",
- "react-dom": "16.8.6",
+ "react-dom": "16.13.1",
"react-draft-wysiwyg": "1.14.5",
- "react-draggable": "3.2.1",
"react-event-listener": "0.6.6",
"react-expanding-textarea": "0.2.0",
"react-ga": "2.5.7",
@@ -56,17 +61,14 @@
"react-localization": "0.1.10",
"react-modal": "3.8.1",
"react-moment": "0.9.2",
- "react-numeric-input": "2.2.3",
"react-recaptcha-v3": "2.0.1",
- "react-rectangle": "1.3.3",
"react-redux": "6.0.1",
"react-router": "3.2.1",
- "react-router-redux": "4.0.8",
- "react-snapshot": "1.3.0",
"react-sortable-hoc": "1.10.1",
"react-sparklines": "1.7.0",
"react-stockcharts": "0.7.8",
- "react-svg": "2.2.18",
+ "react-svg": "11.2.2",
+ "react-transition-group": "4.4.1",
"react-truncate-markup": "3.0.1",
"redux": "4.0.1",
"redux-form": "8.1.0",
@@ -75,23 +77,37 @@
"redux-promise-middleware": "6.1.0",
"redux-thunk": "2.3.0",
"reselect": "4.0.0",
- "socket.io-client": "2.2.0",
+ "rsvp": "4.8.5",
"universal-cookie": "4.0.2",
+ "validate-color": "2.1.0",
"validator": "10.11.0",
- "wallet-address-validator": "0.2.4"
+ "wallet-address-validator": "0.2.4",
+ "ws-heartbeat": "1.2.0"
},
"devDependencies": {
- "prettier": "1.16.4",
- "react-scripts": "2.1.8"
+ "cpy-cli": "3.1.1",
+ "husky": "4.3.0",
+ "lint-staged": "10.5.1",
+ "node-sass-chokidar": "1.5.0",
+ "prettier": "2.1.2",
+ "react-scripts": "3.4.3",
+ "rimraf": "3.0.2",
+ "surge": "0.21.6"
},
"scripts": {
- "prettier-commit": "lint-staged",
- "prettier": "./node_modules/prettier/bin-prettier.js --write \"src/**/*.{js,json,css,scss,md}\"",
+ "prettify-project": "prettier --write .",
+ "prettify": "prettier --write",
"build-css": "node-sass-chokidar src/ -o src/",
"watch-css": "npm run build-css && node-sass-chokidar src/ -o src/ --watch --recursive",
+ "copy-cname": "cpy CNAME build/",
+ "remove-build": "rimraf ./build",
"start-js": "react-scripts --max_old_space_size=3072 start",
- "start": "npm-run-all -p watch-css start-js",
+ "start": "npm install && npm-run-all -p watch-css start-js",
"build": "npm run build-css && react-scripts --max_old_space_size=3072 build",
+ "pre-build": "npm run remove-build && npm install",
+ "build:demo": "REACT_APP_SERVER_ENDPOINT=https://api.sandbox.hollaex.com npm run build",
+ "publish:demo": "surge build",
+ "check-build": "npm run pre-build && npm run build:demo && npm run copy-cname && npm run publish:demo",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
},
@@ -102,18 +118,14 @@
"url": "git+https://github.com/bitholla/hollaex.git"
},
"homepage": "https://hollaex.com",
- "prettier": {
- "tabWidth": 2,
- "useTabs": true,
- "semi": true,
- "singleQuote": true,
- "bracketSpacing": true,
- "arrowParens": "always"
+ "husky": {
+ "hooks": {
+ "pre-commit": "lint-staged"
+ }
},
"lint-staged": {
"*.{js,json,css,scss,md}": [
- "prettier --write",
- "git add"
+ "npm run prettify"
]
},
"author": "bitHolla Inc",
diff --git a/web/public/assets/HollaEx-dark-theme.jpg b/web/public/assets/HollaEx-dark-theme.jpg
deleted file mode 100644
index 86f072c956..0000000000
Binary files a/web/public/assets/HollaEx-dark-theme.jpg and /dev/null differ
diff --git a/web/public/assets/acounts/account-icons-05.svg b/web/public/assets/acounts/account-icons-05.svg
deleted file mode 100644
index 153fa11ef8..0000000000
--- a/web/public/assets/acounts/account-icons-05.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
diff --git a/web/public/assets/acounts/account-icons-06.svg b/web/public/assets/acounts/account-icons-06.svg
deleted file mode 100644
index b630681e69..0000000000
--- a/web/public/assets/acounts/account-icons-06.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
diff --git a/web/public/assets/acounts/account-icons-09.svg b/web/public/assets/acounts/account-icons-09.svg
index 0c03fadef0..a2fae6d722 100644
--- a/web/public/assets/acounts/account-icons-09.svg
+++ b/web/public/assets/acounts/account-icons-09.svg
@@ -3,17 +3,17 @@
diff --git a/web/public/assets/acounts/account-icons-10.svg b/web/public/assets/acounts/account-icons-10.svg
index cbd09743ff..8c2dceb1a7 100644
--- a/web/public/assets/acounts/account-icons-10.svg
+++ b/web/public/assets/acounts/account-icons-10.svg
@@ -2,7 +2,7 @@