├── .npmignore ├── .gitignore ├── .babelrc ├── test ├── fixtures │ ├── get-one.js │ ├── update.js │ ├── create.js │ ├── get-many.js │ ├── get-list-no-meta.js │ ├── get-list.js │ └── get-many-reference.js └── index.js ├── .eslintrc.json ├── .editorconfig ├── src ├── default-settings.js ├── actions.js ├── errors.js ├── initializer.js └── index.js ├── LICENSE ├── package.json ├── .circleci └── config.yml ├── README.md └── yarn.lock /.npmignore: -------------------------------------------------------------------------------- 1 | coverage/ 2 | node_modules/ 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | node_modules/ 3 | .nyc_output/ 4 | .yarn-error.log 5 | 6 | npm-debug.log 7 | -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["@babel/preset-env"], 3 | "plugins": [ 4 | "@babel/plugin-proposal-object-rest-spread", 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /test/fixtures/get-one.js: -------------------------------------------------------------------------------- 1 | export default { 2 | data: { 3 | type: 'user', 4 | id: 1, 5 | attributes: { 6 | name: 'Bob', 7 | }, 8 | }, 9 | }; 10 | -------------------------------------------------------------------------------- /test/fixtures/update.js: -------------------------------------------------------------------------------- 1 | export default { 2 | data: { 3 | type: 'user', 4 | id: 1, 5 | attributes: { 6 | name: 'Tim', 7 | }, 8 | }, 9 | }; 10 | -------------------------------------------------------------------------------- /test/fixtures/create.js: -------------------------------------------------------------------------------- 1 | export default { 2 | data: { 3 | type: 'user', 4 | id: 6, 5 | attributes: { 6 | name: 'Sarah', 7 | }, 8 | }, 9 | }; 10 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "airbnb-base", 3 | "env": { 4 | "mocha": true, 5 | "browser": true, 6 | "node": true 7 | }, 8 | "rules": {} 9 | } 10 | -------------------------------------------------------------------------------- /test/fixtures/get-many.js: -------------------------------------------------------------------------------- 1 | export default { 2 | data: [ 3 | { 4 | type: 'user', id: 1, attributes: { name: 'Bob' }, 5 | }, 6 | ], 7 | meta: { 8 | 'total-count': 1, 9 | }, 10 | }; 11 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /src/default-settings.js: -------------------------------------------------------------------------------- 1 | export default { 2 | total: 'total', 3 | headers: { 4 | Accept: 'application/vnd.api+json', 5 | 'Content-Type': 'application/vnd.api+json', 6 | }, 7 | updateMethod: 'PATCH', 8 | arrayFormat: 'brackets', 9 | getManyKey: 'id', 10 | }; 11 | -------------------------------------------------------------------------------- /src/actions.js: -------------------------------------------------------------------------------- 1 | export const GET_LIST = 'GET_LIST'; 2 | export const GET_ONE = 'GET_ONE'; 3 | export const GET_MANY = 'GET_MANY'; 4 | export const GET_MANY_REFERENCE = 'GET_MANY_REFERENCE'; 5 | export const CREATE = 'CREATE'; 6 | export const UPDATE = 'UPDATE'; 7 | export const DELETE = 'DELETE'; 8 | -------------------------------------------------------------------------------- /src/errors.js: -------------------------------------------------------------------------------- 1 | export class NotImplementedError extends Error { 2 | constructor(message) { 3 | super(message); 4 | 5 | this.message = message; 6 | this.name = 'NotImplementedError'; 7 | } 8 | } 9 | 10 | export class HttpError extends Error { 11 | constructor(message, status) { 12 | super(message); 13 | 14 | this.message = message; 15 | this.status = status; 16 | this.name = 'HttpError'; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /test/fixtures/get-list-no-meta.js: -------------------------------------------------------------------------------- 1 | export default { 2 | data: [ 3 | { 4 | type: 'user', id: 1, attributes: { name: 'Bob' }, 5 | }, 6 | { 7 | type: 'user', id: 2, attributes: { name: 'Alice' }, 8 | }, 9 | { 10 | type: 'user', id: 3, attributes: { name: 'Harry' }, 11 | }, 12 | { 13 | type: 'user', id: 4, attributes: { name: 'Zoe' }, 14 | }, 15 | { 16 | type: 'user', id: 5, attributes: { name: 'Jack' }, 17 | }, 18 | ] 19 | }; 20 | -------------------------------------------------------------------------------- /test/fixtures/get-list.js: -------------------------------------------------------------------------------- 1 | export default { 2 | data: [ 3 | { 4 | type: 'user', id: 1, attributes: { name: 'Bob' }, 5 | }, 6 | { 7 | type: 'user', id: 2, attributes: { name: 'Alice' }, 8 | }, 9 | { 10 | type: 'user', id: 3, attributes: { name: 'Harry' }, 11 | }, 12 | { 13 | type: 'user', id: 4, attributes: { name: 'Zoe' }, 14 | }, 15 | { 16 | type: 'user', id: 5, attributes: { name: 'Jack' }, 17 | }, 18 | ], 19 | meta: { 20 | 'total-count': 5, 21 | }, 22 | }; 23 | -------------------------------------------------------------------------------- /test/fixtures/get-many-reference.js: -------------------------------------------------------------------------------- 1 | export default { 2 | data: [ 3 | { 4 | type: 'user', id: 1, attributes: { name: 'Bob' }, 5 | }, 6 | { 7 | type: 'user', id: 2, attributes: { name: 'Alice' }, 8 | }, 9 | { 10 | type: 'user', id: 3, attributes: { name: 'Harry' }, 11 | }, 12 | { 13 | type: 'user', id: 4, attributes: { name: 'Zoe' }, 14 | }, 15 | { 16 | type: 'user', id: 5, attributes: { name: 'Jack' }, 17 | }, 18 | ], 19 | meta: { 20 | 'total-count': 5, 21 | }, 22 | }; 23 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Henning Vogt 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/initializer.js: -------------------------------------------------------------------------------- 1 | import axios from 'axios'; 2 | import { HttpError } from './errors'; 3 | 4 | // Handle HTTP errors. 5 | export default () => { 6 | // Request interceptor 7 | axios.interceptors.request.use( 8 | (config) => { 9 | const token = localStorage.getItem('token'); 10 | const username = localStorage.getItem('username'); 11 | const password = localStorage.getItem('password'); 12 | 13 | const newConfig = config; 14 | 15 | // When a 'token' is available set as Bearer token. 16 | if (token) { 17 | newConfig.headers.Authorization = `Bearer ${token}`; 18 | } 19 | 20 | // When username and password are available use 21 | // as basic auth credentials. 22 | if (username && password) { 23 | newConfig.auth = { username, password }; 24 | } 25 | 26 | return newConfig; 27 | }, 28 | err => Promise.reject(err), 29 | ); 30 | 31 | // Response interceptor 32 | axios.interceptors.response.use( 33 | response => response, 34 | (error) => { 35 | const { status, data } = error.response; 36 | 37 | if (status < 200 || status >= 300) { 38 | return Promise.reject( 39 | new HttpError(data, status), 40 | ); 41 | } 42 | 43 | return Promise.reject(error); 44 | }, 45 | ); 46 | }; 47 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ra-jsonapi-client", 3 | "version": "0.10.0", 4 | "description": "JSON API data provider for react-admin.", 5 | "main": "build/index.js", 6 | "scripts": { 7 | "build": "babel ./src -d ./build", 8 | "test": "mocha --require mock-local-storage --require @babel/register test/index.js", 9 | "coverage": "nyc npm run test", 10 | "lint": "eslint ./src", 11 | "prepublishOnly": "npm run build" 12 | }, 13 | "repository": { 14 | "type": "git", 15 | "url": "git+https://github.com/henvo/ra-jsonapi-client.git" 16 | }, 17 | "keywords": [ 18 | "react-admin", 19 | "jsonapi", 20 | "npm" 21 | ], 22 | "author": "Henning Vogt ", 23 | "license": "MIT", 24 | "bugs": { 25 | "url": "https://github.com/henvo/ra-jsonapi-client/issues" 26 | }, 27 | "homepage": "https://github.com/henvo/ra-jsonapi-client#readme", 28 | "devDependencies": { 29 | "@babel/cli": "^7.15.7", 30 | "@babel/core": "^7.15.5", 31 | "@babel/plugin-proposal-object-rest-spread": "^7.15.6", 32 | "@babel/preset-env": "^7.15.6", 33 | "@babel/register": "^7.15.3", 34 | "chai": "^4.2.0", 35 | "chai-as-promised": "^7.1.1", 36 | "eslint": "^5.5.0", 37 | "eslint-config-airbnb-base": "^13.1.0", 38 | "eslint-plugin-import": "^2.14.0", 39 | "mocha": "^9.1.1", 40 | "mock-local-storage": "^1.1.7", 41 | "nock": "^10.0.0", 42 | "nyc": "^15.1.0" 43 | }, 44 | "dependencies": { 45 | "axios": "^0.21.1", 46 | "deepmerge": "^2.1.1", 47 | "qs": "^6.5.2" 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | # Use the latest 2.1 version of CircleCI pipeline process engine. 2 | # See: https://circleci.com/docs/2.0/configuration-reference 3 | version: 2.1 4 | 5 | orbs: 6 | # The Node.js orb contains a set of prepackaged CircleCI configuration you can utilize 7 | # Orbs reduce the amount of configuration required for common tasks. 8 | # See the orb documentation here: https://circleci.com/developer/orbs/orb/circleci/node 9 | node: circleci/node@4.1 10 | 11 | 12 | jobs: 13 | # Below is the definition of your job to build and test your app, you can rename and customize it as you want. 14 | build-and-test: 15 | # These next lines define a Docker executor: https://circleci.com/docs/2.0/executor-types/ 16 | # You can specify an image from Dockerhub or use one of our Convenience Images from CircleCI's Developer Hub. 17 | # A list of available CircleCI Docker Convenience Images are available here: https://circleci.com/developer/images/image/cimg/node 18 | docker: 19 | - image: cimg/node:15.1 20 | # Then run your tests! 21 | # CircleCI will report the results back to your VCS provider. 22 | steps: 23 | # Checkout the code as the first step. 24 | - checkout 25 | # Next, the node orb's install-packages step will install the dependencies from a package.json. 26 | # The orb install-packages step will also automatically cache them for faster future runs. 27 | # If you are using yarn instead npm, remove the line above and uncomment the two lines below. 28 | - node/install-packages: 29 | pkg-manager: yarn 30 | - run: 31 | name: Run tests 32 | command: npm test 33 | 34 | workflows: 35 | # Below is the definition of your workflow. 36 | # Inside the workflow, you provide the jobs you want to run, e.g this workflow runs the build-and-test job above. 37 | # CircleCI will run this workflow on every commit. 38 | # For more details on extending your workflow, see the configuration docs: https://circleci.com/docs/2.0/configuration-reference/#workflows 39 | sample: 40 | jobs: 41 | - build-and-test 42 | # For running simple node tests, you could optionally use the node/test job from the orb to replicate and replace the job above in fewer lines. 43 | # - node/test 44 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ra-jsonapi-client 2 | [![CircleCI](https://circleci.com/gh/henvo/ra-jsonapi-client/tree/master.svg?style=svg)](https://circleci.com/gh/henvo/ra-jsonapi-client/tree/master) 3 | [![npm version](https://badge.fury.io/js/ra-jsonapi-client.svg)](https://badge.fury.io/js/ra-jsonapi-client) 4 | 5 | A JSONAPI compatible data provider for 6 | [react-admin](https://github.com/marmelab/react-admin). 7 | 8 | ## Deprecation notice 9 | This project has been a lot of fun and has taught me how exciting and enjoyable 10 | developing open source software can be. I hope that with this project I have 11 | been able to contribute a little to spreading the idea of open source software 12 | and giving something back to the community. 13 | 14 | We are constantly evolving, just like our software – and sometimes you have to 15 | have the courage to draw a line under things. As I no longer use JSONAPI for my 16 | projects and interest in the repository has declined over the last few years, 17 | this repository will be archived on 5 August 2025. 18 | 19 | Many thanks to all contributors and users who have given this project a star. 20 | 21 | 22 | ## Features 23 | Currently these actions are supported: 24 | 25 | * `GET_LIST` 26 | * `GET_ONE` 27 | * `CREATE` 28 | * `UPDATE` 29 | * `DELETE` 30 | * `GET_MANY` 31 | * `GET_MANY_REFERENCE` 32 | 33 | ## Installation 34 | 35 | ```sh 36 | # via npm 37 | npm install ra-jsonapi-client 38 | 39 | # via yarn 40 | yarn add ra-jsonapi-client 41 | ``` 42 | 43 | ## Usage 44 | 45 | Import this package, set the base url and pass it as the dataProvider to 46 | react-admin. 47 | 48 | ```javascript 49 | //in app.js 50 | import React from "react"; 51 | import { Admin, Resource } from "react-admin"; 52 | import jsonapiClient from "ra-jsonapi-client"; 53 | 54 | const dataProvider = jsonapiClient('http://localhost:3000'); 55 | 56 | const App = () => ( 57 | 58 | ... 59 | 60 | ); 61 | 62 | export default App; 63 | ``` 64 | 65 | ## Options 66 | This client allows you to set some optional settings as the second parameter: 67 | 68 | ``` javascript 69 | // Configure some settings. 70 | const settings = { ... }; 71 | 72 | // Pass it as the second parameter after the base URL. 73 | const dataProvider = jsonapiClient('http://localhost:3000', settings); 74 | ``` 75 | 76 | ### Total count 77 | Since JSONAPI [does not specify](http://jsonapi.org/examples/#pagination) 78 | a standard for the *total count* key in the meta object, you can set it with: 79 | 80 | ``` javascript 81 | const settings = { total: 'total-count' }; 82 | ``` 83 | 84 | Which will work for: 85 | ``` json 86 | { 87 | "data": { ... }, 88 | "meta": { 89 | "total-count": 436 90 | } 91 | } 92 | ``` 93 | If this option is not set it will fall back to `total`. 94 | 95 | In addition, if your server doesn't provide a count field, you can set *total 96 | count* to `null`, and the provider will assume the total count is the same as 97 | the length of the data array: 98 | 99 | ``` javascript 100 | const dataProvider = jsonapiClient('http://localhost:3000', { total: null }); 101 | ``` 102 | 103 | ### Custom HTTP headers 104 | Custom headers can be set by providing a `headers` object in `options`: 105 | 106 | ``` javascript 107 | const settings = { 108 | headers: { 109 | Authorization: 'Bearer ...', 110 | 'X-Requested-With': 'XMLHttpRequest' 111 | } 112 | } 113 | ``` 114 | The default value is: 115 | ``` javascript 116 | { 117 | Accept: 'application/vnd.api+json', 118 | 'Content-Type': 'application/vnd.api+json', 119 | } 120 | ``` 121 | 122 | ### Authentication 123 | 124 | This client assumes that you are using an 125 | [authProvider](https://bit.ly/2NSYjS9) for your react-admin 126 | application. In order to use authentication with your backend your authProvider 127 | needs to store credentials in localStorage. 128 | 129 | #### Basic auth 130 | 131 | For basic auth your authProvider needs to store username and password like this: 132 | 133 | ``` javascript 134 | localStorage.setItem('username', 'bob'); 135 | localStorage.setItem('password', 'secret'); 136 | ``` 137 | 138 | #### Bearer Token 139 | 140 | For authentication via (access) token your authProvider needs to store the token 141 | like this: 142 | 143 | ``` javascript 144 | localStorage.setItem('token', '123token'); 145 | ``` 146 | 147 | ### Update method (PUT vs. PATCH) 148 | First versions used `PUT` as the default update HTTP method. 149 | In version 0.5.0 this was changed to `PATCH` since it complies with the 150 | JSONAPI standard.. You can still use `PUT` by declaring the update method in 151 | the settings: 152 | 153 | ``` javascript 154 | { 155 | // Set the update method from PATCH to PUT. 156 | updateMethod: 'PUT' 157 | } 158 | ``` 159 | 160 | ### Array format for `GET_MANY` filter 161 | This package makes usage of the aweseome `qs` querystring parsing library. 162 | 163 | Default: `brackets` 164 | Options: `indices`, `repeat`, `comma` 165 | 166 | ### Key for `GET_MANY` filter 167 | In most cases `filter[id]` is enough for get many operation. 168 | But it is not a specification of JSONAPI. 169 | You can change this key `id` to any string. 170 | 171 | ``` javascript 172 | { 173 | // When your api requires filter[id_in] for get many operation. 174 | getManyKey: 'id_in' 175 | } 176 | ``` 177 | 178 | Default: `id` 179 | 180 | ## Contributors 181 | * [TMiguelT](https://github.com/TMiguelT) 182 | * [hootbah](https://github.com/hootbah) 183 | * [770studio](https://github.com/770studio) 184 | * [foxeg](https://github.com/foxeg) 185 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import { stringify } from 'qs'; 2 | import merge from 'deepmerge'; 3 | import axios from 'axios'; 4 | import { 5 | GET_LIST, 6 | GET_ONE, 7 | CREATE, 8 | UPDATE, 9 | DELETE, 10 | GET_MANY, 11 | GET_MANY_REFERENCE, 12 | } from './actions'; 13 | 14 | import defaultSettings from './default-settings'; 15 | import { NotImplementedError } from './errors'; 16 | import init from './initializer'; 17 | 18 | // Set HTTP interceptors. 19 | init(); 20 | 21 | /** 22 | * Maps react-admin queries to a JSONAPI REST API 23 | * 24 | * @param {string} apiUrl the base URL for the JSONAPI 25 | * @param {Object} userSettings Settings to configure this client. 26 | * 27 | * @param {string} type Request type, e.g GET_LIST 28 | * @param {string} resource Resource name, e.g. "posts" 29 | * @param {Object} payload Request parameters. Depends on the request type 30 | * @returns {Promise} the Promise for a data response 31 | */ 32 | export default (apiUrl, userSettings = {}) => (type, resource, params) => { 33 | let url = ''; 34 | const settings = merge(defaultSettings, userSettings); 35 | 36 | const options = { 37 | headers: settings.headers, 38 | }; 39 | 40 | switch (type) { 41 | case GET_LIST: { 42 | const { page, perPage } = params.pagination; 43 | 44 | // Create query with pagination params. 45 | const query = { 46 | 'page[number]': page, 47 | 'page[size]': perPage, 48 | }; 49 | 50 | // Add all filter params to query. 51 | Object.keys(params.filter || {}).forEach((key) => { 52 | query[`filter[${key}]`] = params.filter[key]; 53 | }); 54 | 55 | // Add sort parameter 56 | if (params.sort && params.sort.field) { 57 | const prefix = params.sort.order === 'ASC' ? '' : '-'; 58 | query.sort = `${prefix}${params.sort.field}`; 59 | } 60 | 61 | url = `${apiUrl}/${resource}?${stringify(query)}`; 62 | break; 63 | } 64 | 65 | case GET_ONE: 66 | url = `${apiUrl}/${resource}/${params.id}`; 67 | break; 68 | 69 | case CREATE: 70 | url = `${apiUrl}/${resource}`; 71 | options.method = 'POST'; 72 | options.data = JSON.stringify({ 73 | data: { type: resource, attributes: params.data }, 74 | }); 75 | break; 76 | 77 | case UPDATE: { 78 | url = `${apiUrl}/${resource}/${params.id}`; 79 | 80 | const attributes = params.data; 81 | delete attributes.id; 82 | 83 | const data = { 84 | data: { 85 | id: params.id, 86 | type: resource, 87 | attributes, 88 | }, 89 | }; 90 | 91 | options.method = settings.updateMethod; 92 | options.data = JSON.stringify(data); 93 | break; 94 | } 95 | 96 | case DELETE: 97 | url = `${apiUrl}/${resource}/${params.id}`; 98 | options.method = 'DELETE'; 99 | break; 100 | 101 | case GET_MANY: { 102 | const query = stringify({ 103 | [`filter[${settings.getManyKey}]`]: params.ids, 104 | }, { arrayFormat: settings.arrayFormat }); 105 | 106 | url = `${apiUrl}/${resource}?${query}`; 107 | break; 108 | } 109 | 110 | case GET_MANY_REFERENCE: { 111 | const { page, perPage } = params.pagination; 112 | 113 | // Create query with pagination params. 114 | const query = { 115 | 'page[number]': page, 116 | 'page[size]': perPage, 117 | }; 118 | 119 | // Add all filter params to query. 120 | Object.keys(params.filter || {}).forEach((key) => { 121 | query[`filter[${key}]`] = params.filter[key]; 122 | }); 123 | 124 | // Add the reference id to the filter params. 125 | query[`filter[${params.target}]`] = params.id; 126 | 127 | // Add sort parameter 128 | if (params.sort && params.sort.field) { 129 | const prefix = params.sort.order === 'ASC' ? '' : '-'; 130 | query.sort = `${prefix}${params.sort.field}`; 131 | } 132 | 133 | url = `${apiUrl}/${resource}?${stringify(query)}`; 134 | break; 135 | } 136 | 137 | default: 138 | throw new NotImplementedError(`Unsupported Data Provider request type ${type}`); 139 | } 140 | 141 | return axios({ url, ...options }) 142 | .then((response) => { 143 | let total; 144 | 145 | // For all collection requests get the total count. 146 | if ([GET_LIST, GET_MANY, GET_MANY_REFERENCE].includes(type)) { 147 | // When meta data and the 'total' setting is provided try 148 | // to get the total count. 149 | if (response.data.meta && settings.total) { 150 | total = response.data.meta[settings.total]; 151 | } 152 | 153 | // Use the length of the data array as a fallback. 154 | total = total || response.data.data.length; 155 | } 156 | 157 | switch (type) { 158 | case GET_MANY: 159 | case GET_LIST: { 160 | return { 161 | data: response.data.data.map(value => Object.assign( 162 | { id: value.id }, 163 | value.attributes, 164 | )), 165 | total, 166 | }; 167 | } 168 | 169 | case GET_MANY_REFERENCE: { 170 | return { 171 | data: response.data.data.map(value => Object.assign( 172 | { id: value.id }, 173 | value.attributes, 174 | )), 175 | total, 176 | }; 177 | } 178 | 179 | case GET_ONE: { 180 | const { id, attributes } = response.data.data; 181 | 182 | return { 183 | data: { 184 | id, ...attributes, 185 | }, 186 | }; 187 | } 188 | 189 | case CREATE: { 190 | const { id, attributes } = response.data.data; 191 | 192 | return { 193 | data: { 194 | id, ...attributes, 195 | }, 196 | }; 197 | } 198 | 199 | case UPDATE: { 200 | const { id, attributes } = response.data.data; 201 | 202 | return { 203 | data: { 204 | id, ...attributes, 205 | }, 206 | }; 207 | } 208 | 209 | case DELETE: { 210 | return { 211 | data: { id: params.id }, 212 | }; 213 | } 214 | 215 | default: 216 | throw new NotImplementedError(`Unsupported Data Provider request type ${type}`); 217 | } 218 | }); 219 | }; 220 | -------------------------------------------------------------------------------- /test/index.js: -------------------------------------------------------------------------------- 1 | import chai from 'chai'; 2 | import nock from 'nock'; 3 | import chaiAsPromised from 'chai-as-promised'; 4 | 5 | import jsonapiClient from '../src/index'; 6 | import getList from './fixtures/get-list'; 7 | import getListNoMeta from './fixtures/get-list-no-meta'; 8 | import getManyReference from './fixtures/get-many-reference'; 9 | import getOne from './fixtures/get-one'; 10 | import create from './fixtures/create'; 11 | import update from './fixtures/update'; 12 | import getMany from './fixtures/get-many'; 13 | 14 | chai.use(chaiAsPromised); 15 | 16 | const { expect } = chai; 17 | 18 | const client = jsonapiClient('http://api.example.com', { 19 | total: 'total-count', 20 | }); 21 | 22 | let result; 23 | 24 | describe('GET_LIST', () => { 25 | beforeEach(() => { 26 | nock('http://api.example.com') 27 | .get(/users.*sort=name.*/) 28 | .reply(200, getList); 29 | 30 | return client('GET_LIST', 'users', { 31 | pagination: { page: 1, perPage: 25 }, 32 | sort: { field: 'name', order: 'ASC' }, 33 | }) 34 | .then((data) => { result = data; }); 35 | }); 36 | 37 | it('returns an object', () => { 38 | expect(result).to.be.an('object'); 39 | }); 40 | 41 | it('has a data property', () => { 42 | expect(result).to.have.property('data'); 43 | }); 44 | 45 | it('contains the right count of records', () => { 46 | expect(result.data).to.have.lengthOf(5); 47 | }); 48 | 49 | it('contains valid records', () => { 50 | expect(result.data).to.deep.include({ id: 1, name: 'Bob' }); 51 | }); 52 | 53 | it('contains a total property', () => { 54 | expect(result).to.have.property('total').that.is.equal(5); 55 | }); 56 | }); 57 | 58 | describe('GET_MANY_REFERENCE', () => { 59 | beforeEach(() => { 60 | nock('http://api.example.com') 61 | .get(/users.*company_id.*=1.*sort=-name.*/) 62 | .reply(200, getManyReference); 63 | 64 | return client('GET_MANY_REFERENCE', 'users', { 65 | pagination: { page: 1, perPage: 25 }, 66 | sort: { field: 'name', order: 'DESC' }, 67 | target: 'company_id', 68 | id: 1, 69 | }) 70 | .then((data) => { result = data; }); 71 | }); 72 | 73 | it('returns an object', () => { 74 | expect(result).to.be.an('object'); 75 | }); 76 | 77 | it('has a data property', () => { 78 | expect(result).to.have.property('data'); 79 | }); 80 | 81 | it('contains the right count of records', () => { 82 | expect(result.data).to.have.lengthOf(5); 83 | }); 84 | 85 | it('contains valid records', () => { 86 | expect(result.data).to.deep.include({ id: 1, name: 'Bob' }); 87 | }); 88 | 89 | it('contains a total property', () => { 90 | expect(result).to.have.property('total').that.is.equal(5); 91 | }); 92 | }); 93 | 94 | describe('GET_ONE', () => { 95 | beforeEach(() => { 96 | nock('http://api.example.com') 97 | .get('/users/1') 98 | .reply(200, getOne); 99 | 100 | return client('GET_ONE', 'users', { id: 1 }) 101 | .then((data) => { result = data; }); 102 | }); 103 | 104 | it('returns an object', () => { 105 | expect(result).to.be.an('object'); 106 | }); 107 | 108 | it('has record ID', () => { 109 | expect(result.data).to.have.property('id').that.is.equal(1); 110 | }); 111 | 112 | it('has records attributes', () => { 113 | expect(result.data).to.have.property('name').that.is.equal('Bob'); 114 | }); 115 | }); 116 | 117 | describe('CREATE', () => { 118 | beforeEach(() => { 119 | nock('http://api.example.com') 120 | .post('/users') 121 | .reply(201, create); 122 | 123 | return client('CREATE', 'users', { data: { name: 'Sarah' } }) 124 | .then((data) => { result = data; }); 125 | }); 126 | 127 | it('returns an object', () => { 128 | expect(result).to.be.an('object'); 129 | }); 130 | 131 | it('has record ID', () => { 132 | expect(result.data).to.have.property('id').that.is.equal(6); 133 | }); 134 | 135 | it('has records attributes', () => { 136 | expect(result.data).to.have.property('name').that.is.equal('Sarah'); 137 | }); 138 | }); 139 | 140 | describe('UPDATE', () => { 141 | beforeEach(() => { 142 | nock('http://api.example.com') 143 | .patch('/users/1') 144 | .reply(200, update); 145 | 146 | return client('UPDATE', 'users', { id: 1, data: { name: 'Tim' } }) 147 | .then((data) => { result = data; }); 148 | }); 149 | 150 | it('returns an object', () => { 151 | expect(result).to.be.an('object'); 152 | }); 153 | 154 | it('has record ID', () => { 155 | expect(result.data).to.have.property('id').that.is.equal(1); 156 | }); 157 | 158 | it('has records attributes', () => { 159 | expect(result.data).to.have.property('name').that.is.equal('Tim'); 160 | }); 161 | }); 162 | 163 | describe('DELETE', () => { 164 | beforeEach(() => { 165 | nock('http://api.example.com') 166 | .delete('/users/1') 167 | .reply(204, null); 168 | 169 | return client('DELETE', 'users', { id: 1 }) 170 | .then((data) => { result = data; }); 171 | }); 172 | 173 | it('returns an object', () => { 174 | expect(result).to.be.an('object'); 175 | }); 176 | 177 | it('has record ID', () => { 178 | expect(result.data).to.have.property('id').that.is.equal(1); 179 | }); 180 | }); 181 | 182 | describe('UNDEFINED', () => { 183 | it('throws an error', () => { 184 | expect(() => client('UNDEFINED', 'users')).to.throw(Error, /Unsupported/); 185 | }); 186 | }); 187 | 188 | describe('Unauthorized request', () => { 189 | beforeEach(() => { 190 | nock('http://api.example.com').get('/users/1').reply(401); 191 | }); 192 | 193 | it('throws an error', () => { 194 | expect(client('GET_ONE', 'users', { id: 1 })) 195 | .to.eventually 196 | .be.rejected 197 | .and.have.property('status'); 198 | }); 199 | }); 200 | 201 | describe('GET_MANY', () => { 202 | beforeEach(() => { 203 | nock('http://api.example.com') 204 | .get(/.*filter.*id.*1.*/) 205 | .reply(200, getMany); 206 | 207 | return client('GET_MANY', 'users', { ids: [1, 2] }) 208 | .then((data) => { result = data; }); 209 | }); 210 | 211 | it('returns an object', () => { 212 | expect(result).to.be.an('object'); 213 | }); 214 | 215 | it('has a data property', () => { 216 | expect(result).to.have.property('data'); 217 | }); 218 | 219 | it('contains the right count of records', () => { 220 | expect(result.data).to.have.lengthOf(1); 221 | }); 222 | 223 | it('contains valid records', () => { 224 | expect(result.data).to.deep.include({ id: 1, name: 'Bob' }); 225 | }); 226 | 227 | it('contains a total property', () => { 228 | expect(result).to.have.property('total').that.is.equal(1); 229 | }); 230 | }); 231 | 232 | // This test should work exactly the same as the normal GET_LIST test, but the 233 | // returned data has no meta field, and thus no count variable. We set the 234 | // count variable to null in the client 235 | describe('GET_LIST with {total: null}', () => { 236 | it('contains a total property', () => { 237 | nock('http://api.example.com') 238 | .get(/users.*sort=name.*/) 239 | .reply(200, getListNoMeta); 240 | 241 | const noMetaClient = jsonapiClient('http://api.example.com', { 242 | total: null, 243 | }); 244 | 245 | return expect(noMetaClient('GET_LIST', 'users', { 246 | pagination: { page: 1, perPage: 25 }, 247 | sort: { field: 'name', order: 'ASC' }, 248 | })).to.eventually.have.property('total').that.is.equal(5); 249 | }); 250 | }); 251 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/cli@^7.15.7": 6 | version "7.15.7" 7 | resolved "https://registry.npmjs.org/@babel/cli/-/cli-7.15.7.tgz" 8 | dependencies: 9 | commander "^4.0.1" 10 | convert-source-map "^1.1.0" 11 | fs-readdir-recursive "^1.1.0" 12 | glob "^7.0.0" 13 | make-dir "^2.1.0" 14 | slash "^2.0.0" 15 | source-map "^0.5.0" 16 | optionalDependencies: 17 | "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" 18 | chokidar "^3.4.0" 19 | 20 | "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.14.5": 21 | version "7.14.5" 22 | resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz" 23 | dependencies: 24 | "@babel/highlight" "^7.14.5" 25 | 26 | "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.15.0": 27 | version "7.15.0" 28 | resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz" 29 | 30 | "@babel/core@^7.15.5", "@babel/core@^7.7.5": 31 | version "7.15.5" 32 | resolved "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz" 33 | dependencies: 34 | "@babel/code-frame" "^7.14.5" 35 | "@babel/generator" "^7.15.4" 36 | "@babel/helper-compilation-targets" "^7.15.4" 37 | "@babel/helper-module-transforms" "^7.15.4" 38 | "@babel/helpers" "^7.15.4" 39 | "@babel/parser" "^7.15.5" 40 | "@babel/template" "^7.15.4" 41 | "@babel/traverse" "^7.15.4" 42 | "@babel/types" "^7.15.4" 43 | convert-source-map "^1.7.0" 44 | debug "^4.1.0" 45 | gensync "^1.0.0-beta.2" 46 | json5 "^2.1.2" 47 | semver "^6.3.0" 48 | source-map "^0.5.0" 49 | 50 | "@babel/generator@^7.15.4": 51 | version "7.15.4" 52 | resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz" 53 | dependencies: 54 | "@babel/types" "^7.15.4" 55 | jsesc "^2.5.1" 56 | source-map "^0.5.0" 57 | 58 | "@babel/helper-annotate-as-pure@^7.14.5", "@babel/helper-annotate-as-pure@^7.15.4": 59 | version "7.15.4" 60 | resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz" 61 | dependencies: 62 | "@babel/types" "^7.15.4" 63 | 64 | "@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5": 65 | version "7.15.4" 66 | resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.15.4.tgz" 67 | dependencies: 68 | "@babel/helper-explode-assignable-expression" "^7.15.4" 69 | "@babel/types" "^7.15.4" 70 | 71 | "@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.15.4": 72 | version "7.15.4" 73 | resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz" 74 | dependencies: 75 | "@babel/compat-data" "^7.15.0" 76 | "@babel/helper-validator-option" "^7.14.5" 77 | browserslist "^4.16.6" 78 | semver "^6.3.0" 79 | 80 | "@babel/helper-create-class-features-plugin@^7.14.5", "@babel/helper-create-class-features-plugin@^7.15.4": 81 | version "7.15.4" 82 | resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz" 83 | dependencies: 84 | "@babel/helper-annotate-as-pure" "^7.15.4" 85 | "@babel/helper-function-name" "^7.15.4" 86 | "@babel/helper-member-expression-to-functions" "^7.15.4" 87 | "@babel/helper-optimise-call-expression" "^7.15.4" 88 | "@babel/helper-replace-supers" "^7.15.4" 89 | "@babel/helper-split-export-declaration" "^7.15.4" 90 | 91 | "@babel/helper-create-regexp-features-plugin@^7.14.5": 92 | version "7.14.5" 93 | resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz" 94 | dependencies: 95 | "@babel/helper-annotate-as-pure" "^7.14.5" 96 | regexpu-core "^4.7.1" 97 | 98 | "@babel/helper-define-polyfill-provider@^0.2.2": 99 | version "0.2.3" 100 | resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz" 101 | dependencies: 102 | "@babel/helper-compilation-targets" "^7.13.0" 103 | "@babel/helper-module-imports" "^7.12.13" 104 | "@babel/helper-plugin-utils" "^7.13.0" 105 | "@babel/traverse" "^7.13.0" 106 | debug "^4.1.1" 107 | lodash.debounce "^4.0.8" 108 | resolve "^1.14.2" 109 | semver "^6.1.2" 110 | 111 | "@babel/helper-explode-assignable-expression@^7.15.4": 112 | version "7.15.4" 113 | resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.15.4.tgz" 114 | dependencies: 115 | "@babel/types" "^7.15.4" 116 | 117 | "@babel/helper-function-name@^7.14.5", "@babel/helper-function-name@^7.15.4": 118 | version "7.15.4" 119 | resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz" 120 | dependencies: 121 | "@babel/helper-get-function-arity" "^7.15.4" 122 | "@babel/template" "^7.15.4" 123 | "@babel/types" "^7.15.4" 124 | 125 | "@babel/helper-get-function-arity@^7.15.4": 126 | version "7.15.4" 127 | resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz" 128 | dependencies: 129 | "@babel/types" "^7.15.4" 130 | 131 | "@babel/helper-hoist-variables@^7.15.4": 132 | version "7.15.4" 133 | resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz" 134 | dependencies: 135 | "@babel/types" "^7.15.4" 136 | 137 | "@babel/helper-member-expression-to-functions@^7.15.4": 138 | version "7.15.4" 139 | resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz" 140 | dependencies: 141 | "@babel/types" "^7.15.4" 142 | 143 | "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5", "@babel/helper-module-imports@^7.15.4": 144 | version "7.15.4" 145 | resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz" 146 | dependencies: 147 | "@babel/types" "^7.15.4" 148 | 149 | "@babel/helper-module-transforms@^7.14.5", "@babel/helper-module-transforms@^7.15.4": 150 | version "7.15.7" 151 | resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.7.tgz" 152 | dependencies: 153 | "@babel/helper-module-imports" "^7.15.4" 154 | "@babel/helper-replace-supers" "^7.15.4" 155 | "@babel/helper-simple-access" "^7.15.4" 156 | "@babel/helper-split-export-declaration" "^7.15.4" 157 | "@babel/helper-validator-identifier" "^7.15.7" 158 | "@babel/template" "^7.15.4" 159 | "@babel/traverse" "^7.15.4" 160 | "@babel/types" "^7.15.6" 161 | 162 | "@babel/helper-optimise-call-expression@^7.15.4": 163 | version "7.15.4" 164 | resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz" 165 | dependencies: 166 | "@babel/types" "^7.15.4" 167 | 168 | "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": 169 | version "7.14.5" 170 | resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz" 171 | 172 | "@babel/helper-remap-async-to-generator@^7.14.5", "@babel/helper-remap-async-to-generator@^7.15.4": 173 | version "7.15.4" 174 | resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.15.4.tgz" 175 | dependencies: 176 | "@babel/helper-annotate-as-pure" "^7.15.4" 177 | "@babel/helper-wrap-function" "^7.15.4" 178 | "@babel/types" "^7.15.4" 179 | 180 | "@babel/helper-replace-supers@^7.14.5", "@babel/helper-replace-supers@^7.15.4": 181 | version "7.15.4" 182 | resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz" 183 | dependencies: 184 | "@babel/helper-member-expression-to-functions" "^7.15.4" 185 | "@babel/helper-optimise-call-expression" "^7.15.4" 186 | "@babel/traverse" "^7.15.4" 187 | "@babel/types" "^7.15.4" 188 | 189 | "@babel/helper-simple-access@^7.15.4": 190 | version "7.15.4" 191 | resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz" 192 | dependencies: 193 | "@babel/types" "^7.15.4" 194 | 195 | "@babel/helper-skip-transparent-expression-wrappers@^7.14.5", "@babel/helper-skip-transparent-expression-wrappers@^7.15.4": 196 | version "7.15.4" 197 | resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz" 198 | dependencies: 199 | "@babel/types" "^7.15.4" 200 | 201 | "@babel/helper-split-export-declaration@^7.15.4": 202 | version "7.15.4" 203 | resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz" 204 | dependencies: 205 | "@babel/types" "^7.15.4" 206 | 207 | "@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9", "@babel/helper-validator-identifier@^7.15.7": 208 | version "7.15.7" 209 | resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz" 210 | 211 | "@babel/helper-validator-option@^7.14.5": 212 | version "7.14.5" 213 | resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz" 214 | 215 | "@babel/helper-wrap-function@^7.15.4": 216 | version "7.15.4" 217 | resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.15.4.tgz" 218 | dependencies: 219 | "@babel/helper-function-name" "^7.15.4" 220 | "@babel/template" "^7.15.4" 221 | "@babel/traverse" "^7.15.4" 222 | "@babel/types" "^7.15.4" 223 | 224 | "@babel/helpers@^7.15.4": 225 | version "7.15.4" 226 | resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz" 227 | dependencies: 228 | "@babel/template" "^7.15.4" 229 | "@babel/traverse" "^7.15.4" 230 | "@babel/types" "^7.15.4" 231 | 232 | "@babel/highlight@^7.14.5": 233 | version "7.14.5" 234 | resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz" 235 | dependencies: 236 | "@babel/helper-validator-identifier" "^7.14.5" 237 | chalk "^2.0.0" 238 | js-tokens "^4.0.0" 239 | 240 | "@babel/parser@^7.15.4", "@babel/parser@^7.15.5": 241 | version "7.15.7" 242 | resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.15.7.tgz" 243 | 244 | "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.15.4": 245 | version "7.15.4" 246 | resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.15.4.tgz" 247 | dependencies: 248 | "@babel/helper-plugin-utils" "^7.14.5" 249 | "@babel/helper-skip-transparent-expression-wrappers" "^7.15.4" 250 | "@babel/plugin-proposal-optional-chaining" "^7.14.5" 251 | 252 | "@babel/plugin-proposal-async-generator-functions@^7.15.4": 253 | version "7.15.4" 254 | resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz" 255 | dependencies: 256 | "@babel/helper-plugin-utils" "^7.14.5" 257 | "@babel/helper-remap-async-to-generator" "^7.15.4" 258 | "@babel/plugin-syntax-async-generators" "^7.8.4" 259 | 260 | "@babel/plugin-proposal-class-properties@^7.14.5": 261 | version "7.14.5" 262 | resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz" 263 | dependencies: 264 | "@babel/helper-create-class-features-plugin" "^7.14.5" 265 | "@babel/helper-plugin-utils" "^7.14.5" 266 | 267 | "@babel/plugin-proposal-class-static-block@^7.15.4": 268 | version "7.15.4" 269 | resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.15.4.tgz" 270 | dependencies: 271 | "@babel/helper-create-class-features-plugin" "^7.15.4" 272 | "@babel/helper-plugin-utils" "^7.14.5" 273 | "@babel/plugin-syntax-class-static-block" "^7.14.5" 274 | 275 | "@babel/plugin-proposal-dynamic-import@^7.14.5": 276 | version "7.14.5" 277 | resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz" 278 | dependencies: 279 | "@babel/helper-plugin-utils" "^7.14.5" 280 | "@babel/plugin-syntax-dynamic-import" "^7.8.3" 281 | 282 | "@babel/plugin-proposal-export-namespace-from@^7.14.5": 283 | version "7.14.5" 284 | resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz" 285 | dependencies: 286 | "@babel/helper-plugin-utils" "^7.14.5" 287 | "@babel/plugin-syntax-export-namespace-from" "^7.8.3" 288 | 289 | "@babel/plugin-proposal-json-strings@^7.14.5": 290 | version "7.14.5" 291 | resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz" 292 | dependencies: 293 | "@babel/helper-plugin-utils" "^7.14.5" 294 | "@babel/plugin-syntax-json-strings" "^7.8.3" 295 | 296 | "@babel/plugin-proposal-logical-assignment-operators@^7.14.5": 297 | version "7.14.5" 298 | resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz" 299 | dependencies: 300 | "@babel/helper-plugin-utils" "^7.14.5" 301 | "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" 302 | 303 | "@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5": 304 | version "7.14.5" 305 | resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz" 306 | dependencies: 307 | "@babel/helper-plugin-utils" "^7.14.5" 308 | "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" 309 | 310 | "@babel/plugin-proposal-numeric-separator@^7.14.5": 311 | version "7.14.5" 312 | resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz" 313 | dependencies: 314 | "@babel/helper-plugin-utils" "^7.14.5" 315 | "@babel/plugin-syntax-numeric-separator" "^7.10.4" 316 | 317 | "@babel/plugin-proposal-object-rest-spread@^7.15.6": 318 | version "7.15.6" 319 | resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.15.6.tgz" 320 | dependencies: 321 | "@babel/compat-data" "^7.15.0" 322 | "@babel/helper-compilation-targets" "^7.15.4" 323 | "@babel/helper-plugin-utils" "^7.14.5" 324 | "@babel/plugin-syntax-object-rest-spread" "^7.8.3" 325 | "@babel/plugin-transform-parameters" "^7.15.4" 326 | 327 | "@babel/plugin-proposal-optional-catch-binding@^7.14.5": 328 | version "7.14.5" 329 | resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz" 330 | dependencies: 331 | "@babel/helper-plugin-utils" "^7.14.5" 332 | "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" 333 | 334 | "@babel/plugin-proposal-optional-chaining@^7.14.5": 335 | version "7.14.5" 336 | resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz" 337 | dependencies: 338 | "@babel/helper-plugin-utils" "^7.14.5" 339 | "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" 340 | "@babel/plugin-syntax-optional-chaining" "^7.8.3" 341 | 342 | "@babel/plugin-proposal-private-methods@^7.14.5": 343 | version "7.14.5" 344 | resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz" 345 | dependencies: 346 | "@babel/helper-create-class-features-plugin" "^7.14.5" 347 | "@babel/helper-plugin-utils" "^7.14.5" 348 | 349 | "@babel/plugin-proposal-private-property-in-object@^7.15.4": 350 | version "7.15.4" 351 | resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.15.4.tgz" 352 | dependencies: 353 | "@babel/helper-annotate-as-pure" "^7.15.4" 354 | "@babel/helper-create-class-features-plugin" "^7.15.4" 355 | "@babel/helper-plugin-utils" "^7.14.5" 356 | "@babel/plugin-syntax-private-property-in-object" "^7.14.5" 357 | 358 | "@babel/plugin-proposal-unicode-property-regex@^7.14.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": 359 | version "7.14.5" 360 | resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz" 361 | dependencies: 362 | "@babel/helper-create-regexp-features-plugin" "^7.14.5" 363 | "@babel/helper-plugin-utils" "^7.14.5" 364 | 365 | "@babel/plugin-syntax-async-generators@^7.8.4": 366 | version "7.8.4" 367 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" 368 | dependencies: 369 | "@babel/helper-plugin-utils" "^7.8.0" 370 | 371 | "@babel/plugin-syntax-class-properties@^7.12.13": 372 | version "7.12.13" 373 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" 374 | dependencies: 375 | "@babel/helper-plugin-utils" "^7.12.13" 376 | 377 | "@babel/plugin-syntax-class-static-block@^7.14.5": 378 | version "7.14.5" 379 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" 380 | dependencies: 381 | "@babel/helper-plugin-utils" "^7.14.5" 382 | 383 | "@babel/plugin-syntax-dynamic-import@^7.8.3": 384 | version "7.8.3" 385 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" 386 | dependencies: 387 | "@babel/helper-plugin-utils" "^7.8.0" 388 | 389 | "@babel/plugin-syntax-export-namespace-from@^7.8.3": 390 | version "7.8.3" 391 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" 392 | dependencies: 393 | "@babel/helper-plugin-utils" "^7.8.3" 394 | 395 | "@babel/plugin-syntax-json-strings@^7.8.3": 396 | version "7.8.3" 397 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" 398 | dependencies: 399 | "@babel/helper-plugin-utils" "^7.8.0" 400 | 401 | "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": 402 | version "7.10.4" 403 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" 404 | dependencies: 405 | "@babel/helper-plugin-utils" "^7.10.4" 406 | 407 | "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": 408 | version "7.8.3" 409 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" 410 | dependencies: 411 | "@babel/helper-plugin-utils" "^7.8.0" 412 | 413 | "@babel/plugin-syntax-numeric-separator@^7.10.4": 414 | version "7.10.4" 415 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" 416 | dependencies: 417 | "@babel/helper-plugin-utils" "^7.10.4" 418 | 419 | "@babel/plugin-syntax-object-rest-spread@^7.8.3": 420 | version "7.8.3" 421 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" 422 | dependencies: 423 | "@babel/helper-plugin-utils" "^7.8.0" 424 | 425 | "@babel/plugin-syntax-optional-catch-binding@^7.8.3": 426 | version "7.8.3" 427 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" 428 | dependencies: 429 | "@babel/helper-plugin-utils" "^7.8.0" 430 | 431 | "@babel/plugin-syntax-optional-chaining@^7.8.3": 432 | version "7.8.3" 433 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" 434 | dependencies: 435 | "@babel/helper-plugin-utils" "^7.8.0" 436 | 437 | "@babel/plugin-syntax-private-property-in-object@^7.14.5": 438 | version "7.14.5" 439 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" 440 | dependencies: 441 | "@babel/helper-plugin-utils" "^7.14.5" 442 | 443 | "@babel/plugin-syntax-top-level-await@^7.14.5": 444 | version "7.14.5" 445 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" 446 | dependencies: 447 | "@babel/helper-plugin-utils" "^7.14.5" 448 | 449 | "@babel/plugin-transform-arrow-functions@^7.14.5": 450 | version "7.14.5" 451 | resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz" 452 | dependencies: 453 | "@babel/helper-plugin-utils" "^7.14.5" 454 | 455 | "@babel/plugin-transform-async-to-generator@^7.14.5": 456 | version "7.14.5" 457 | resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz" 458 | dependencies: 459 | "@babel/helper-module-imports" "^7.14.5" 460 | "@babel/helper-plugin-utils" "^7.14.5" 461 | "@babel/helper-remap-async-to-generator" "^7.14.5" 462 | 463 | "@babel/plugin-transform-block-scoped-functions@^7.14.5": 464 | version "7.14.5" 465 | resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz" 466 | dependencies: 467 | "@babel/helper-plugin-utils" "^7.14.5" 468 | 469 | "@babel/plugin-transform-block-scoping@^7.15.3": 470 | version "7.15.3" 471 | resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz" 472 | dependencies: 473 | "@babel/helper-plugin-utils" "^7.14.5" 474 | 475 | "@babel/plugin-transform-classes@^7.15.4": 476 | version "7.15.4" 477 | resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz" 478 | dependencies: 479 | "@babel/helper-annotate-as-pure" "^7.15.4" 480 | "@babel/helper-function-name" "^7.15.4" 481 | "@babel/helper-optimise-call-expression" "^7.15.4" 482 | "@babel/helper-plugin-utils" "^7.14.5" 483 | "@babel/helper-replace-supers" "^7.15.4" 484 | "@babel/helper-split-export-declaration" "^7.15.4" 485 | globals "^11.1.0" 486 | 487 | "@babel/plugin-transform-computed-properties@^7.14.5": 488 | version "7.14.5" 489 | resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz" 490 | dependencies: 491 | "@babel/helper-plugin-utils" "^7.14.5" 492 | 493 | "@babel/plugin-transform-destructuring@^7.14.7": 494 | version "7.14.7" 495 | resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz" 496 | dependencies: 497 | "@babel/helper-plugin-utils" "^7.14.5" 498 | 499 | "@babel/plugin-transform-dotall-regex@^7.14.5", "@babel/plugin-transform-dotall-regex@^7.4.4": 500 | version "7.14.5" 501 | resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz" 502 | dependencies: 503 | "@babel/helper-create-regexp-features-plugin" "^7.14.5" 504 | "@babel/helper-plugin-utils" "^7.14.5" 505 | 506 | "@babel/plugin-transform-duplicate-keys@^7.14.5": 507 | version "7.14.5" 508 | resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz" 509 | dependencies: 510 | "@babel/helper-plugin-utils" "^7.14.5" 511 | 512 | "@babel/plugin-transform-exponentiation-operator@^7.14.5": 513 | version "7.14.5" 514 | resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz" 515 | dependencies: 516 | "@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5" 517 | "@babel/helper-plugin-utils" "^7.14.5" 518 | 519 | "@babel/plugin-transform-for-of@^7.15.4": 520 | version "7.15.4" 521 | resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz" 522 | dependencies: 523 | "@babel/helper-plugin-utils" "^7.14.5" 524 | 525 | "@babel/plugin-transform-function-name@^7.14.5": 526 | version "7.14.5" 527 | resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz" 528 | dependencies: 529 | "@babel/helper-function-name" "^7.14.5" 530 | "@babel/helper-plugin-utils" "^7.14.5" 531 | 532 | "@babel/plugin-transform-literals@^7.14.5": 533 | version "7.14.5" 534 | resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz" 535 | dependencies: 536 | "@babel/helper-plugin-utils" "^7.14.5" 537 | 538 | "@babel/plugin-transform-member-expression-literals@^7.14.5": 539 | version "7.14.5" 540 | resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz" 541 | dependencies: 542 | "@babel/helper-plugin-utils" "^7.14.5" 543 | 544 | "@babel/plugin-transform-modules-amd@^7.14.5": 545 | version "7.14.5" 546 | resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz" 547 | dependencies: 548 | "@babel/helper-module-transforms" "^7.14.5" 549 | "@babel/helper-plugin-utils" "^7.14.5" 550 | babel-plugin-dynamic-import-node "^2.3.3" 551 | 552 | "@babel/plugin-transform-modules-commonjs@^7.15.4": 553 | version "7.15.4" 554 | resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz" 555 | dependencies: 556 | "@babel/helper-module-transforms" "^7.15.4" 557 | "@babel/helper-plugin-utils" "^7.14.5" 558 | "@babel/helper-simple-access" "^7.15.4" 559 | babel-plugin-dynamic-import-node "^2.3.3" 560 | 561 | "@babel/plugin-transform-modules-systemjs@^7.15.4": 562 | version "7.15.4" 563 | resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.15.4.tgz" 564 | dependencies: 565 | "@babel/helper-hoist-variables" "^7.15.4" 566 | "@babel/helper-module-transforms" "^7.15.4" 567 | "@babel/helper-plugin-utils" "^7.14.5" 568 | "@babel/helper-validator-identifier" "^7.14.9" 569 | babel-plugin-dynamic-import-node "^2.3.3" 570 | 571 | "@babel/plugin-transform-modules-umd@^7.14.5": 572 | version "7.14.5" 573 | resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz" 574 | dependencies: 575 | "@babel/helper-module-transforms" "^7.14.5" 576 | "@babel/helper-plugin-utils" "^7.14.5" 577 | 578 | "@babel/plugin-transform-named-capturing-groups-regex@^7.14.9": 579 | version "7.14.9" 580 | resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz" 581 | dependencies: 582 | "@babel/helper-create-regexp-features-plugin" "^7.14.5" 583 | 584 | "@babel/plugin-transform-new-target@^7.14.5": 585 | version "7.14.5" 586 | resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz" 587 | dependencies: 588 | "@babel/helper-plugin-utils" "^7.14.5" 589 | 590 | "@babel/plugin-transform-object-super@^7.14.5": 591 | version "7.14.5" 592 | resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz" 593 | dependencies: 594 | "@babel/helper-plugin-utils" "^7.14.5" 595 | "@babel/helper-replace-supers" "^7.14.5" 596 | 597 | "@babel/plugin-transform-parameters@^7.15.4": 598 | version "7.15.4" 599 | resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz" 600 | dependencies: 601 | "@babel/helper-plugin-utils" "^7.14.5" 602 | 603 | "@babel/plugin-transform-property-literals@^7.14.5": 604 | version "7.14.5" 605 | resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz" 606 | dependencies: 607 | "@babel/helper-plugin-utils" "^7.14.5" 608 | 609 | "@babel/plugin-transform-regenerator@^7.14.5": 610 | version "7.14.5" 611 | resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz" 612 | dependencies: 613 | regenerator-transform "^0.14.2" 614 | 615 | "@babel/plugin-transform-reserved-words@^7.14.5": 616 | version "7.14.5" 617 | resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz" 618 | dependencies: 619 | "@babel/helper-plugin-utils" "^7.14.5" 620 | 621 | "@babel/plugin-transform-shorthand-properties@^7.14.5": 622 | version "7.14.5" 623 | resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz" 624 | dependencies: 625 | "@babel/helper-plugin-utils" "^7.14.5" 626 | 627 | "@babel/plugin-transform-spread@^7.14.6": 628 | version "7.14.6" 629 | resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz" 630 | dependencies: 631 | "@babel/helper-plugin-utils" "^7.14.5" 632 | "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" 633 | 634 | "@babel/plugin-transform-sticky-regex@^7.14.5": 635 | version "7.14.5" 636 | resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz" 637 | dependencies: 638 | "@babel/helper-plugin-utils" "^7.14.5" 639 | 640 | "@babel/plugin-transform-template-literals@^7.14.5": 641 | version "7.14.5" 642 | resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz" 643 | dependencies: 644 | "@babel/helper-plugin-utils" "^7.14.5" 645 | 646 | "@babel/plugin-transform-typeof-symbol@^7.14.5": 647 | version "7.14.5" 648 | resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz" 649 | dependencies: 650 | "@babel/helper-plugin-utils" "^7.14.5" 651 | 652 | "@babel/plugin-transform-unicode-escapes@^7.14.5": 653 | version "7.14.5" 654 | resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz" 655 | dependencies: 656 | "@babel/helper-plugin-utils" "^7.14.5" 657 | 658 | "@babel/plugin-transform-unicode-regex@^7.14.5": 659 | version "7.14.5" 660 | resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz" 661 | dependencies: 662 | "@babel/helper-create-regexp-features-plugin" "^7.14.5" 663 | "@babel/helper-plugin-utils" "^7.14.5" 664 | 665 | "@babel/preset-env@^7.15.6": 666 | version "7.15.6" 667 | resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.6.tgz" 668 | dependencies: 669 | "@babel/compat-data" "^7.15.0" 670 | "@babel/helper-compilation-targets" "^7.15.4" 671 | "@babel/helper-plugin-utils" "^7.14.5" 672 | "@babel/helper-validator-option" "^7.14.5" 673 | "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.15.4" 674 | "@babel/plugin-proposal-async-generator-functions" "^7.15.4" 675 | "@babel/plugin-proposal-class-properties" "^7.14.5" 676 | "@babel/plugin-proposal-class-static-block" "^7.15.4" 677 | "@babel/plugin-proposal-dynamic-import" "^7.14.5" 678 | "@babel/plugin-proposal-export-namespace-from" "^7.14.5" 679 | "@babel/plugin-proposal-json-strings" "^7.14.5" 680 | "@babel/plugin-proposal-logical-assignment-operators" "^7.14.5" 681 | "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5" 682 | "@babel/plugin-proposal-numeric-separator" "^7.14.5" 683 | "@babel/plugin-proposal-object-rest-spread" "^7.15.6" 684 | "@babel/plugin-proposal-optional-catch-binding" "^7.14.5" 685 | "@babel/plugin-proposal-optional-chaining" "^7.14.5" 686 | "@babel/plugin-proposal-private-methods" "^7.14.5" 687 | "@babel/plugin-proposal-private-property-in-object" "^7.15.4" 688 | "@babel/plugin-proposal-unicode-property-regex" "^7.14.5" 689 | "@babel/plugin-syntax-async-generators" "^7.8.4" 690 | "@babel/plugin-syntax-class-properties" "^7.12.13" 691 | "@babel/plugin-syntax-class-static-block" "^7.14.5" 692 | "@babel/plugin-syntax-dynamic-import" "^7.8.3" 693 | "@babel/plugin-syntax-export-namespace-from" "^7.8.3" 694 | "@babel/plugin-syntax-json-strings" "^7.8.3" 695 | "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" 696 | "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" 697 | "@babel/plugin-syntax-numeric-separator" "^7.10.4" 698 | "@babel/plugin-syntax-object-rest-spread" "^7.8.3" 699 | "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" 700 | "@babel/plugin-syntax-optional-chaining" "^7.8.3" 701 | "@babel/plugin-syntax-private-property-in-object" "^7.14.5" 702 | "@babel/plugin-syntax-top-level-await" "^7.14.5" 703 | "@babel/plugin-transform-arrow-functions" "^7.14.5" 704 | "@babel/plugin-transform-async-to-generator" "^7.14.5" 705 | "@babel/plugin-transform-block-scoped-functions" "^7.14.5" 706 | "@babel/plugin-transform-block-scoping" "^7.15.3" 707 | "@babel/plugin-transform-classes" "^7.15.4" 708 | "@babel/plugin-transform-computed-properties" "^7.14.5" 709 | "@babel/plugin-transform-destructuring" "^7.14.7" 710 | "@babel/plugin-transform-dotall-regex" "^7.14.5" 711 | "@babel/plugin-transform-duplicate-keys" "^7.14.5" 712 | "@babel/plugin-transform-exponentiation-operator" "^7.14.5" 713 | "@babel/plugin-transform-for-of" "^7.15.4" 714 | "@babel/plugin-transform-function-name" "^7.14.5" 715 | "@babel/plugin-transform-literals" "^7.14.5" 716 | "@babel/plugin-transform-member-expression-literals" "^7.14.5" 717 | "@babel/plugin-transform-modules-amd" "^7.14.5" 718 | "@babel/plugin-transform-modules-commonjs" "^7.15.4" 719 | "@babel/plugin-transform-modules-systemjs" "^7.15.4" 720 | "@babel/plugin-transform-modules-umd" "^7.14.5" 721 | "@babel/plugin-transform-named-capturing-groups-regex" "^7.14.9" 722 | "@babel/plugin-transform-new-target" "^7.14.5" 723 | "@babel/plugin-transform-object-super" "^7.14.5" 724 | "@babel/plugin-transform-parameters" "^7.15.4" 725 | "@babel/plugin-transform-property-literals" "^7.14.5" 726 | "@babel/plugin-transform-regenerator" "^7.14.5" 727 | "@babel/plugin-transform-reserved-words" "^7.14.5" 728 | "@babel/plugin-transform-shorthand-properties" "^7.14.5" 729 | "@babel/plugin-transform-spread" "^7.14.6" 730 | "@babel/plugin-transform-sticky-regex" "^7.14.5" 731 | "@babel/plugin-transform-template-literals" "^7.14.5" 732 | "@babel/plugin-transform-typeof-symbol" "^7.14.5" 733 | "@babel/plugin-transform-unicode-escapes" "^7.14.5" 734 | "@babel/plugin-transform-unicode-regex" "^7.14.5" 735 | "@babel/preset-modules" "^0.1.4" 736 | "@babel/types" "^7.15.6" 737 | babel-plugin-polyfill-corejs2 "^0.2.2" 738 | babel-plugin-polyfill-corejs3 "^0.2.2" 739 | babel-plugin-polyfill-regenerator "^0.2.2" 740 | core-js-compat "^3.16.0" 741 | semver "^6.3.0" 742 | 743 | "@babel/preset-modules@^0.1.4": 744 | version "0.1.4" 745 | resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz" 746 | dependencies: 747 | "@babel/helper-plugin-utils" "^7.0.0" 748 | "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" 749 | "@babel/plugin-transform-dotall-regex" "^7.4.4" 750 | "@babel/types" "^7.4.4" 751 | esutils "^2.0.2" 752 | 753 | "@babel/register@^7.15.3": 754 | version "7.15.3" 755 | resolved "https://registry.npmjs.org/@babel/register/-/register-7.15.3.tgz" 756 | dependencies: 757 | clone-deep "^4.0.1" 758 | find-cache-dir "^2.0.0" 759 | make-dir "^2.1.0" 760 | pirates "^4.0.0" 761 | source-map-support "^0.5.16" 762 | 763 | "@babel/runtime@^7.8.4": 764 | version "7.15.4" 765 | resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz" 766 | dependencies: 767 | regenerator-runtime "^0.13.4" 768 | 769 | "@babel/template@^7.15.4": 770 | version "7.15.4" 771 | resolved "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz" 772 | dependencies: 773 | "@babel/code-frame" "^7.14.5" 774 | "@babel/parser" "^7.15.4" 775 | "@babel/types" "^7.15.4" 776 | 777 | "@babel/traverse@^7.13.0", "@babel/traverse@^7.15.4": 778 | version "7.15.4" 779 | resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz" 780 | dependencies: 781 | "@babel/code-frame" "^7.14.5" 782 | "@babel/generator" "^7.15.4" 783 | "@babel/helper-function-name" "^7.15.4" 784 | "@babel/helper-hoist-variables" "^7.15.4" 785 | "@babel/helper-split-export-declaration" "^7.15.4" 786 | "@babel/parser" "^7.15.4" 787 | "@babel/types" "^7.15.4" 788 | debug "^4.1.0" 789 | globals "^11.1.0" 790 | 791 | "@babel/types@^7.15.4", "@babel/types@^7.15.6", "@babel/types@^7.4.4": 792 | version "7.15.6" 793 | resolved "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz" 794 | dependencies: 795 | "@babel/helper-validator-identifier" "^7.14.9" 796 | to-fast-properties "^2.0.0" 797 | 798 | "@istanbuljs/load-nyc-config@^1.0.0": 799 | version "1.1.0" 800 | resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" 801 | dependencies: 802 | camelcase "^5.3.1" 803 | find-up "^4.1.0" 804 | get-package-type "^0.1.0" 805 | js-yaml "^3.13.1" 806 | resolve-from "^5.0.0" 807 | 808 | "@istanbuljs/schema@^0.1.2": 809 | version "0.1.3" 810 | resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" 811 | 812 | "@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": 813 | version "2.1.8-no-fsevents.3" 814 | resolved "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz" 815 | 816 | "@types/json5@^0.0.29": 817 | version "0.0.29" 818 | resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" 819 | 820 | "@ungap/promise-all-settled@1.1.2": 821 | version "1.1.2" 822 | resolved "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz" 823 | 824 | acorn-jsx@^5.0.0: 825 | version "5.3.2" 826 | resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" 827 | 828 | acorn@^6.0.7: 829 | version "6.4.2" 830 | resolved "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz" 831 | 832 | aggregate-error@^3.0.0: 833 | version "3.1.0" 834 | resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" 835 | dependencies: 836 | clean-stack "^2.0.0" 837 | indent-string "^4.0.0" 838 | 839 | ajv@^6.10.2, ajv@^6.9.1: 840 | version "6.12.6" 841 | resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" 842 | dependencies: 843 | fast-deep-equal "^3.1.1" 844 | fast-json-stable-stringify "^2.0.0" 845 | json-schema-traverse "^0.4.1" 846 | uri-js "^4.2.2" 847 | 848 | ansi-colors@4.1.1: 849 | version "4.1.1" 850 | resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" 851 | 852 | ansi-escapes@^3.2.0: 853 | version "3.2.0" 854 | resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz" 855 | 856 | ansi-regex@^3.0.0: 857 | version "3.0.1" 858 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz" 859 | 860 | ansi-regex@^4.1.0: 861 | version "4.1.1" 862 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz" 863 | 864 | ansi-regex@^5.0.0: 865 | version "5.0.1" 866 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" 867 | 868 | ansi-styles@^3.2.0, ansi-styles@^3.2.1: 869 | version "3.2.1" 870 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" 871 | dependencies: 872 | color-convert "^1.9.0" 873 | 874 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 875 | version "4.3.0" 876 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" 877 | dependencies: 878 | color-convert "^2.0.1" 879 | 880 | anymatch@~3.1.2: 881 | version "3.1.2" 882 | resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" 883 | dependencies: 884 | normalize-path "^3.0.0" 885 | picomatch "^2.0.4" 886 | 887 | append-transform@^2.0.0: 888 | version "2.0.0" 889 | resolved "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz" 890 | dependencies: 891 | default-require-extensions "^3.0.0" 892 | 893 | archy@^1.0.0: 894 | version "1.0.0" 895 | resolved "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz" 896 | 897 | argparse@^1.0.7: 898 | version "1.0.10" 899 | resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" 900 | dependencies: 901 | sprintf-js "~1.0.2" 902 | 903 | argparse@^2.0.1: 904 | version "2.0.1" 905 | resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" 906 | 907 | array-includes@^3.1.3: 908 | version "3.1.3" 909 | resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz" 910 | dependencies: 911 | call-bind "^1.0.2" 912 | define-properties "^1.1.3" 913 | es-abstract "^1.18.0-next.2" 914 | get-intrinsic "^1.1.1" 915 | is-string "^1.0.5" 916 | 917 | array.prototype.flat@^1.2.4: 918 | version "1.2.4" 919 | resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz" 920 | dependencies: 921 | call-bind "^1.0.0" 922 | define-properties "^1.1.3" 923 | es-abstract "^1.18.0-next.1" 924 | 925 | assertion-error@^1.1.0: 926 | version "1.1.0" 927 | resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" 928 | 929 | astral-regex@^1.0.0: 930 | version "1.0.0" 931 | resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz" 932 | 933 | axios@^0.21.1: 934 | version "0.21.4" 935 | resolved "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz" 936 | dependencies: 937 | follow-redirects "^1.14.0" 938 | 939 | babel-plugin-dynamic-import-node@^2.3.3: 940 | version "2.3.3" 941 | resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz" 942 | dependencies: 943 | object.assign "^4.1.0" 944 | 945 | babel-plugin-polyfill-corejs2@^0.2.2: 946 | version "0.2.2" 947 | resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz" 948 | dependencies: 949 | "@babel/compat-data" "^7.13.11" 950 | "@babel/helper-define-polyfill-provider" "^0.2.2" 951 | semver "^6.1.1" 952 | 953 | babel-plugin-polyfill-corejs3@^0.2.2: 954 | version "0.2.4" 955 | resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz" 956 | dependencies: 957 | "@babel/helper-define-polyfill-provider" "^0.2.2" 958 | core-js-compat "^3.14.0" 959 | 960 | babel-plugin-polyfill-regenerator@^0.2.2: 961 | version "0.2.2" 962 | resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz" 963 | dependencies: 964 | "@babel/helper-define-polyfill-provider" "^0.2.2" 965 | 966 | balanced-match@^1.0.0: 967 | version "1.0.2" 968 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 969 | 970 | binary-extensions@^2.0.0: 971 | version "2.2.0" 972 | resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" 973 | 974 | brace-expansion@^1.1.7: 975 | version "1.1.11" 976 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 977 | dependencies: 978 | balanced-match "^1.0.0" 979 | concat-map "0.0.1" 980 | 981 | braces@~3.0.2: 982 | version "3.0.2" 983 | resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" 984 | dependencies: 985 | fill-range "^7.0.1" 986 | 987 | browser-stdout@1.3.1: 988 | version "1.3.1" 989 | resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" 990 | 991 | browserslist@^4.16.6, browserslist@^4.17.0: 992 | version "4.17.0" 993 | resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz" 994 | dependencies: 995 | caniuse-lite "^1.0.30001254" 996 | colorette "^1.3.0" 997 | electron-to-chromium "^1.3.830" 998 | escalade "^3.1.1" 999 | node-releases "^1.1.75" 1000 | 1001 | buffer-from@^1.0.0: 1002 | version "1.1.2" 1003 | resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" 1004 | 1005 | caching-transform@^4.0.0: 1006 | version "4.0.0" 1007 | resolved "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz" 1008 | dependencies: 1009 | hasha "^5.0.0" 1010 | make-dir "^3.0.0" 1011 | package-hash "^4.0.0" 1012 | write-file-atomic "^3.0.0" 1013 | 1014 | call-bind@^1.0.0, call-bind@^1.0.2: 1015 | version "1.0.2" 1016 | resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" 1017 | dependencies: 1018 | function-bind "^1.1.1" 1019 | get-intrinsic "^1.0.2" 1020 | 1021 | callsites@^3.0.0: 1022 | version "3.1.0" 1023 | resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" 1024 | 1025 | camelcase@^5.0.0, camelcase@^5.3.1: 1026 | version "5.3.1" 1027 | resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" 1028 | 1029 | camelcase@^6.0.0: 1030 | version "6.2.0" 1031 | resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz" 1032 | 1033 | caniuse-lite@^1.0.30001254: 1034 | version "1.0.30001258" 1035 | resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001258.tgz" 1036 | 1037 | chai-as-promised@^7.1.1: 1038 | version "7.1.1" 1039 | resolved "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz" 1040 | dependencies: 1041 | check-error "^1.0.2" 1042 | 1043 | chai@^4.1.2, chai@^4.2.0: 1044 | version "4.3.4" 1045 | resolved "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz" 1046 | dependencies: 1047 | assertion-error "^1.1.0" 1048 | check-error "^1.0.2" 1049 | deep-eql "^3.0.1" 1050 | get-func-name "^2.0.0" 1051 | pathval "^1.1.1" 1052 | type-detect "^4.0.5" 1053 | 1054 | chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2: 1055 | version "2.4.2" 1056 | resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" 1057 | dependencies: 1058 | ansi-styles "^3.2.1" 1059 | escape-string-regexp "^1.0.5" 1060 | supports-color "^5.3.0" 1061 | 1062 | chalk@^4.1.0: 1063 | version "4.1.2" 1064 | resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" 1065 | dependencies: 1066 | ansi-styles "^4.1.0" 1067 | supports-color "^7.1.0" 1068 | 1069 | chardet@^0.7.0: 1070 | version "0.7.0" 1071 | resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" 1072 | 1073 | check-error@^1.0.2: 1074 | version "1.0.2" 1075 | resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz" 1076 | 1077 | chokidar@3.5.3, chokidar@^3.4.0: 1078 | version "3.5.3" 1079 | resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" 1080 | dependencies: 1081 | anymatch "~3.1.2" 1082 | braces "~3.0.2" 1083 | glob-parent "~5.1.2" 1084 | is-binary-path "~2.1.0" 1085 | is-glob "~4.0.1" 1086 | normalize-path "~3.0.0" 1087 | readdirp "~3.6.0" 1088 | optionalDependencies: 1089 | fsevents "~2.3.2" 1090 | 1091 | clean-stack@^2.0.0: 1092 | version "2.2.0" 1093 | resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" 1094 | 1095 | cli-cursor@^2.1.0: 1096 | version "2.1.0" 1097 | resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz" 1098 | dependencies: 1099 | restore-cursor "^2.0.0" 1100 | 1101 | cli-width@^2.0.0: 1102 | version "2.2.1" 1103 | resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz" 1104 | 1105 | cliui@^6.0.0: 1106 | version "6.0.0" 1107 | resolved "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz" 1108 | dependencies: 1109 | string-width "^4.2.0" 1110 | strip-ansi "^6.0.0" 1111 | wrap-ansi "^6.2.0" 1112 | 1113 | cliui@^7.0.2: 1114 | version "7.0.4" 1115 | resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" 1116 | dependencies: 1117 | string-width "^4.2.0" 1118 | strip-ansi "^6.0.0" 1119 | wrap-ansi "^7.0.0" 1120 | 1121 | clone-deep@^4.0.1: 1122 | version "4.0.1" 1123 | resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" 1124 | dependencies: 1125 | is-plain-object "^2.0.4" 1126 | kind-of "^6.0.2" 1127 | shallow-clone "^3.0.0" 1128 | 1129 | color-convert@^1.9.0: 1130 | version "1.9.3" 1131 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" 1132 | dependencies: 1133 | color-name "1.1.3" 1134 | 1135 | color-convert@^2.0.1: 1136 | version "2.0.1" 1137 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" 1138 | dependencies: 1139 | color-name "~1.1.4" 1140 | 1141 | color-name@1.1.3: 1142 | version "1.1.3" 1143 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" 1144 | 1145 | color-name@~1.1.4: 1146 | version "1.1.4" 1147 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" 1148 | 1149 | colorette@^1.3.0: 1150 | version "1.4.0" 1151 | resolved "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz" 1152 | 1153 | commander@^4.0.1: 1154 | version "4.1.1" 1155 | resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" 1156 | 1157 | commondir@^1.0.1: 1158 | version "1.0.1" 1159 | resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" 1160 | 1161 | concat-map@0.0.1: 1162 | version "0.0.1" 1163 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 1164 | 1165 | confusing-browser-globals@^1.0.5: 1166 | version "1.0.10" 1167 | resolved "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz" 1168 | 1169 | convert-source-map@^1.1.0, convert-source-map@^1.7.0: 1170 | version "1.8.0" 1171 | resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz" 1172 | dependencies: 1173 | safe-buffer "~5.1.1" 1174 | 1175 | core-js-compat@^3.14.0, core-js-compat@^3.16.0: 1176 | version "3.17.3" 1177 | resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.17.3.tgz" 1178 | dependencies: 1179 | browserslist "^4.17.0" 1180 | semver "7.0.0" 1181 | 1182 | core-js@^0.8.3: 1183 | version "0.8.4" 1184 | resolved "https://registry.npmjs.org/core-js/-/core-js-0.8.4.tgz" 1185 | 1186 | cross-spawn@^6.0.5: 1187 | version "6.0.5" 1188 | resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" 1189 | dependencies: 1190 | nice-try "^1.0.4" 1191 | path-key "^2.0.1" 1192 | semver "^5.5.0" 1193 | shebang-command "^1.2.0" 1194 | which "^1.2.9" 1195 | 1196 | cross-spawn@^7.0.0: 1197 | version "7.0.3" 1198 | resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" 1199 | dependencies: 1200 | path-key "^3.1.0" 1201 | shebang-command "^2.0.0" 1202 | which "^2.0.1" 1203 | 1204 | debug@4.3.3, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: 1205 | version "4.3.3" 1206 | resolved "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz" 1207 | dependencies: 1208 | ms "2.1.2" 1209 | 1210 | debug@^2.6.9: 1211 | version "2.6.9" 1212 | resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" 1213 | dependencies: 1214 | ms "2.0.0" 1215 | 1216 | debug@^3.2.7: 1217 | version "3.2.7" 1218 | resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" 1219 | dependencies: 1220 | ms "^2.1.1" 1221 | 1222 | decamelize@^1.2.0: 1223 | version "1.2.0" 1224 | resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" 1225 | 1226 | decamelize@^4.0.0: 1227 | version "4.0.0" 1228 | resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" 1229 | 1230 | deep-eql@^3.0.1: 1231 | version "3.0.1" 1232 | resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz" 1233 | dependencies: 1234 | type-detect "^4.0.0" 1235 | 1236 | deep-equal@^1.0.0: 1237 | version "1.1.1" 1238 | resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz" 1239 | dependencies: 1240 | is-arguments "^1.0.4" 1241 | is-date-object "^1.0.1" 1242 | is-regex "^1.0.4" 1243 | object-is "^1.0.1" 1244 | object-keys "^1.1.1" 1245 | regexp.prototype.flags "^1.2.0" 1246 | 1247 | deep-is@~0.1.3: 1248 | version "0.1.4" 1249 | resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" 1250 | 1251 | deepmerge@^2.1.1: 1252 | version "2.2.1" 1253 | resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz" 1254 | 1255 | default-require-extensions@^3.0.0: 1256 | version "3.0.0" 1257 | resolved "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz" 1258 | dependencies: 1259 | strip-bom "^4.0.0" 1260 | 1261 | define-properties@^1.1.3: 1262 | version "1.1.3" 1263 | resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" 1264 | dependencies: 1265 | object-keys "^1.0.12" 1266 | 1267 | diff@5.0.0: 1268 | version "5.0.0" 1269 | resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" 1270 | 1271 | doctrine@^2.1.0: 1272 | version "2.1.0" 1273 | resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" 1274 | dependencies: 1275 | esutils "^2.0.2" 1276 | 1277 | doctrine@^3.0.0: 1278 | version "3.0.0" 1279 | resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" 1280 | dependencies: 1281 | esutils "^2.0.2" 1282 | 1283 | dom-walk@^0.1.0: 1284 | version "0.1.2" 1285 | resolved "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz" 1286 | 1287 | electron-to-chromium@^1.3.830: 1288 | version "1.3.843" 1289 | resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.843.tgz" 1290 | 1291 | emoji-regex@^7.0.1: 1292 | version "7.0.3" 1293 | resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" 1294 | 1295 | emoji-regex@^8.0.0: 1296 | version "8.0.0" 1297 | resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" 1298 | 1299 | error-ex@^1.3.1: 1300 | version "1.3.2" 1301 | resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" 1302 | dependencies: 1303 | is-arrayish "^0.2.1" 1304 | 1305 | es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: 1306 | version "1.18.6" 1307 | resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.6.tgz" 1308 | dependencies: 1309 | call-bind "^1.0.2" 1310 | es-to-primitive "^1.2.1" 1311 | function-bind "^1.1.1" 1312 | get-intrinsic "^1.1.1" 1313 | get-symbol-description "^1.0.0" 1314 | has "^1.0.3" 1315 | has-symbols "^1.0.2" 1316 | internal-slot "^1.0.3" 1317 | is-callable "^1.2.4" 1318 | is-negative-zero "^2.0.1" 1319 | is-regex "^1.1.4" 1320 | is-string "^1.0.7" 1321 | object-inspect "^1.11.0" 1322 | object-keys "^1.1.1" 1323 | object.assign "^4.1.2" 1324 | string.prototype.trimend "^1.0.4" 1325 | string.prototype.trimstart "^1.0.4" 1326 | unbox-primitive "^1.0.1" 1327 | 1328 | es-to-primitive@^1.2.1: 1329 | version "1.2.1" 1330 | resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" 1331 | dependencies: 1332 | is-callable "^1.1.4" 1333 | is-date-object "^1.0.1" 1334 | is-symbol "^1.0.2" 1335 | 1336 | es6-error@^4.0.1: 1337 | version "4.1.1" 1338 | resolved "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz" 1339 | 1340 | escalade@^3.1.1: 1341 | version "3.1.1" 1342 | resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" 1343 | 1344 | escape-string-regexp@4.0.0: 1345 | version "4.0.0" 1346 | resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" 1347 | 1348 | escape-string-regexp@^1.0.5: 1349 | version "1.0.5" 1350 | resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" 1351 | 1352 | eslint-config-airbnb-base@^13.1.0: 1353 | version "13.2.0" 1354 | resolved "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.2.0.tgz" 1355 | dependencies: 1356 | confusing-browser-globals "^1.0.5" 1357 | object.assign "^4.1.0" 1358 | object.entries "^1.1.0" 1359 | 1360 | eslint-import-resolver-node@^0.3.6: 1361 | version "0.3.6" 1362 | resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz" 1363 | dependencies: 1364 | debug "^3.2.7" 1365 | resolve "^1.20.0" 1366 | 1367 | eslint-module-utils@^2.6.2: 1368 | version "2.6.2" 1369 | resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz" 1370 | dependencies: 1371 | debug "^3.2.7" 1372 | pkg-dir "^2.0.0" 1373 | 1374 | eslint-plugin-import@^2.14.0: 1375 | version "2.24.2" 1376 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz#2c8cd2e341f3885918ee27d18479910ade7bb4da" 1377 | dependencies: 1378 | array-includes "^3.1.3" 1379 | array.prototype.flat "^1.2.4" 1380 | debug "^2.6.9" 1381 | doctrine "^2.1.0" 1382 | eslint-import-resolver-node "^0.3.6" 1383 | eslint-module-utils "^2.6.2" 1384 | find-up "^2.0.0" 1385 | has "^1.0.3" 1386 | is-core-module "^2.6.0" 1387 | minimatch "^3.0.4" 1388 | object.values "^1.1.4" 1389 | pkg-up "^2.0.0" 1390 | read-pkg-up "^3.0.0" 1391 | resolve "^1.20.0" 1392 | tsconfig-paths "^3.11.0" 1393 | 1394 | eslint-scope@^4.0.3: 1395 | version "4.0.3" 1396 | resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz" 1397 | dependencies: 1398 | esrecurse "^4.1.0" 1399 | estraverse "^4.1.1" 1400 | 1401 | eslint-utils@^1.3.1: 1402 | version "1.4.3" 1403 | resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz" 1404 | dependencies: 1405 | eslint-visitor-keys "^1.1.0" 1406 | 1407 | eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: 1408 | version "1.3.0" 1409 | resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" 1410 | 1411 | eslint@^5.5.0: 1412 | version "5.16.0" 1413 | resolved "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz" 1414 | dependencies: 1415 | "@babel/code-frame" "^7.0.0" 1416 | ajv "^6.9.1" 1417 | chalk "^2.1.0" 1418 | cross-spawn "^6.0.5" 1419 | debug "^4.0.1" 1420 | doctrine "^3.0.0" 1421 | eslint-scope "^4.0.3" 1422 | eslint-utils "^1.3.1" 1423 | eslint-visitor-keys "^1.0.0" 1424 | espree "^5.0.1" 1425 | esquery "^1.0.1" 1426 | esutils "^2.0.2" 1427 | file-entry-cache "^5.0.1" 1428 | functional-red-black-tree "^1.0.1" 1429 | glob "^7.1.2" 1430 | globals "^11.7.0" 1431 | ignore "^4.0.6" 1432 | import-fresh "^3.0.0" 1433 | imurmurhash "^0.1.4" 1434 | inquirer "^6.2.2" 1435 | js-yaml "^3.13.0" 1436 | json-stable-stringify-without-jsonify "^1.0.1" 1437 | levn "^0.3.0" 1438 | lodash "^4.17.11" 1439 | minimatch "^3.0.4" 1440 | mkdirp "^0.5.1" 1441 | natural-compare "^1.4.0" 1442 | optionator "^0.8.2" 1443 | path-is-inside "^1.0.2" 1444 | progress "^2.0.0" 1445 | regexpp "^2.0.1" 1446 | semver "^5.5.1" 1447 | strip-ansi "^4.0.0" 1448 | strip-json-comments "^2.0.1" 1449 | table "^5.2.3" 1450 | text-table "^0.2.0" 1451 | 1452 | espree@^5.0.1: 1453 | version "5.0.1" 1454 | resolved "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz" 1455 | dependencies: 1456 | acorn "^6.0.7" 1457 | acorn-jsx "^5.0.0" 1458 | eslint-visitor-keys "^1.0.0" 1459 | 1460 | esprima@^4.0.0: 1461 | version "4.0.1" 1462 | resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" 1463 | 1464 | esquery@^1.0.1: 1465 | version "1.4.0" 1466 | resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz" 1467 | dependencies: 1468 | estraverse "^5.1.0" 1469 | 1470 | esrecurse@^4.1.0: 1471 | version "4.3.0" 1472 | resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" 1473 | dependencies: 1474 | estraverse "^5.2.0" 1475 | 1476 | estraverse@^4.1.1: 1477 | version "4.3.0" 1478 | resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" 1479 | 1480 | estraverse@^5.1.0, estraverse@^5.2.0: 1481 | version "5.2.0" 1482 | resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz" 1483 | 1484 | esutils@^2.0.2: 1485 | version "2.0.3" 1486 | resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" 1487 | 1488 | external-editor@^3.0.3: 1489 | version "3.1.0" 1490 | resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz" 1491 | dependencies: 1492 | chardet "^0.7.0" 1493 | iconv-lite "^0.4.24" 1494 | tmp "^0.0.33" 1495 | 1496 | fast-deep-equal@^3.1.1: 1497 | version "3.1.3" 1498 | resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" 1499 | 1500 | fast-json-stable-stringify@^2.0.0: 1501 | version "2.1.0" 1502 | resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" 1503 | 1504 | fast-levenshtein@~2.0.6: 1505 | version "2.0.6" 1506 | resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" 1507 | 1508 | figures@^2.0.0: 1509 | version "2.0.0" 1510 | resolved "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz" 1511 | dependencies: 1512 | escape-string-regexp "^1.0.5" 1513 | 1514 | file-entry-cache@^5.0.1: 1515 | version "5.0.1" 1516 | resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz" 1517 | dependencies: 1518 | flat-cache "^2.0.1" 1519 | 1520 | fill-range@^7.0.1: 1521 | version "7.0.1" 1522 | resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" 1523 | dependencies: 1524 | to-regex-range "^5.0.1" 1525 | 1526 | find-cache-dir@^2.0.0: 1527 | version "2.1.0" 1528 | resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz" 1529 | dependencies: 1530 | commondir "^1.0.1" 1531 | make-dir "^2.0.0" 1532 | pkg-dir "^3.0.0" 1533 | 1534 | find-cache-dir@^3.2.0: 1535 | version "3.3.2" 1536 | resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz" 1537 | dependencies: 1538 | commondir "^1.0.1" 1539 | make-dir "^3.0.2" 1540 | pkg-dir "^4.1.0" 1541 | 1542 | find-up@5.0.0: 1543 | version "5.0.0" 1544 | resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" 1545 | dependencies: 1546 | locate-path "^6.0.0" 1547 | path-exists "^4.0.0" 1548 | 1549 | find-up@^2.0.0, find-up@^2.1.0: 1550 | version "2.1.0" 1551 | resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" 1552 | dependencies: 1553 | locate-path "^2.0.0" 1554 | 1555 | find-up@^3.0.0: 1556 | version "3.0.0" 1557 | resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" 1558 | dependencies: 1559 | locate-path "^3.0.0" 1560 | 1561 | find-up@^4.0.0, find-up@^4.1.0: 1562 | version "4.1.0" 1563 | resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" 1564 | dependencies: 1565 | locate-path "^5.0.0" 1566 | path-exists "^4.0.0" 1567 | 1568 | flat-cache@^2.0.1: 1569 | version "2.0.1" 1570 | resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz" 1571 | dependencies: 1572 | flatted "^2.0.0" 1573 | rimraf "2.6.3" 1574 | write "1.0.3" 1575 | 1576 | flat@^5.0.2: 1577 | version "5.0.2" 1578 | resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" 1579 | 1580 | flatted@^2.0.0: 1581 | version "2.0.2" 1582 | resolved "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz" 1583 | 1584 | follow-redirects@^1.14.0: 1585 | version "1.14.8" 1586 | resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz" 1587 | 1588 | foreground-child@^2.0.0: 1589 | version "2.0.0" 1590 | resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz" 1591 | dependencies: 1592 | cross-spawn "^7.0.0" 1593 | signal-exit "^3.0.2" 1594 | 1595 | fromentries@^1.2.0: 1596 | version "1.3.2" 1597 | resolved "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz" 1598 | 1599 | fs-readdir-recursive@^1.1.0: 1600 | version "1.1.0" 1601 | resolved "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz" 1602 | 1603 | fs.realpath@^1.0.0: 1604 | version "1.0.0" 1605 | resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" 1606 | 1607 | fsevents@~2.3.2: 1608 | version "2.3.2" 1609 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 1610 | 1611 | function-bind@^1.1.1: 1612 | version "1.1.1" 1613 | resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" 1614 | 1615 | functional-red-black-tree@^1.0.1: 1616 | version "1.0.1" 1617 | resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" 1618 | 1619 | gensync@^1.0.0-beta.2: 1620 | version "1.0.0-beta.2" 1621 | resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" 1622 | 1623 | get-caller-file@^2.0.1, get-caller-file@^2.0.5: 1624 | version "2.0.5" 1625 | resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" 1626 | 1627 | get-func-name@^2.0.0: 1628 | version "2.0.0" 1629 | resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz" 1630 | 1631 | get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: 1632 | version "1.1.1" 1633 | resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" 1634 | dependencies: 1635 | function-bind "^1.1.1" 1636 | has "^1.0.3" 1637 | has-symbols "^1.0.1" 1638 | 1639 | get-package-type@^0.1.0: 1640 | version "0.1.0" 1641 | resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" 1642 | 1643 | get-symbol-description@^1.0.0: 1644 | version "1.0.0" 1645 | resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" 1646 | dependencies: 1647 | call-bind "^1.0.2" 1648 | get-intrinsic "^1.1.1" 1649 | 1650 | glob-parent@~5.1.2: 1651 | version "5.1.2" 1652 | resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" 1653 | dependencies: 1654 | is-glob "^4.0.1" 1655 | 1656 | glob@7.2.0, glob@^7.0.0, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: 1657 | version "7.2.0" 1658 | resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" 1659 | dependencies: 1660 | fs.realpath "^1.0.0" 1661 | inflight "^1.0.4" 1662 | inherits "2" 1663 | minimatch "^3.0.4" 1664 | once "^1.3.0" 1665 | path-is-absolute "^1.0.0" 1666 | 1667 | global@^4.3.2: 1668 | version "4.4.0" 1669 | resolved "https://registry.npmjs.org/global/-/global-4.4.0.tgz" 1670 | dependencies: 1671 | min-document "^2.19.0" 1672 | process "^0.11.10" 1673 | 1674 | globals@^11.1.0, globals@^11.7.0: 1675 | version "11.12.0" 1676 | resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" 1677 | 1678 | graceful-fs@^4.1.15, graceful-fs@^4.1.2: 1679 | version "4.2.8" 1680 | resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz" 1681 | 1682 | growl@1.10.5: 1683 | version "1.10.5" 1684 | resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" 1685 | 1686 | has-bigints@^1.0.1: 1687 | version "1.0.1" 1688 | resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz" 1689 | 1690 | has-flag@^3.0.0: 1691 | version "3.0.0" 1692 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" 1693 | 1694 | has-flag@^4.0.0: 1695 | version "4.0.0" 1696 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" 1697 | 1698 | has-symbols@^1.0.1, has-symbols@^1.0.2: 1699 | version "1.0.2" 1700 | resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz" 1701 | 1702 | has-tostringtag@^1.0.0: 1703 | version "1.0.0" 1704 | resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" 1705 | dependencies: 1706 | has-symbols "^1.0.2" 1707 | 1708 | has@^1.0.3: 1709 | version "1.0.3" 1710 | resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" 1711 | dependencies: 1712 | function-bind "^1.1.1" 1713 | 1714 | hasha@^5.0.0: 1715 | version "5.2.2" 1716 | resolved "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz" 1717 | dependencies: 1718 | is-stream "^2.0.0" 1719 | type-fest "^0.8.0" 1720 | 1721 | he@1.2.0: 1722 | version "1.2.0" 1723 | resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" 1724 | 1725 | hosted-git-info@^2.1.4: 1726 | version "2.8.9" 1727 | resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" 1728 | 1729 | html-escaper@^2.0.0: 1730 | version "2.0.2" 1731 | resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" 1732 | 1733 | iconv-lite@^0.4.24: 1734 | version "0.4.24" 1735 | resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" 1736 | dependencies: 1737 | safer-buffer ">= 2.1.2 < 3" 1738 | 1739 | ignore@^4.0.6: 1740 | version "4.0.6" 1741 | resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz" 1742 | 1743 | import-fresh@^3.0.0: 1744 | version "3.3.0" 1745 | resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" 1746 | dependencies: 1747 | parent-module "^1.0.0" 1748 | resolve-from "^4.0.0" 1749 | 1750 | imurmurhash@^0.1.4: 1751 | version "0.1.4" 1752 | resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" 1753 | 1754 | indent-string@^4.0.0: 1755 | version "4.0.0" 1756 | resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" 1757 | 1758 | inflight@^1.0.4: 1759 | version "1.0.6" 1760 | resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" 1761 | dependencies: 1762 | once "^1.3.0" 1763 | wrappy "1" 1764 | 1765 | inherits@2: 1766 | version "2.0.4" 1767 | resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" 1768 | 1769 | inquirer@^6.2.2: 1770 | version "6.5.2" 1771 | resolved "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz" 1772 | dependencies: 1773 | ansi-escapes "^3.2.0" 1774 | chalk "^2.4.2" 1775 | cli-cursor "^2.1.0" 1776 | cli-width "^2.0.0" 1777 | external-editor "^3.0.3" 1778 | figures "^2.0.0" 1779 | lodash "^4.17.12" 1780 | mute-stream "0.0.7" 1781 | run-async "^2.2.0" 1782 | rxjs "^6.4.0" 1783 | string-width "^2.1.0" 1784 | strip-ansi "^5.1.0" 1785 | through "^2.3.6" 1786 | 1787 | internal-slot@^1.0.3: 1788 | version "1.0.3" 1789 | resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" 1790 | dependencies: 1791 | get-intrinsic "^1.1.0" 1792 | has "^1.0.3" 1793 | side-channel "^1.0.4" 1794 | 1795 | is-arguments@^1.0.4: 1796 | version "1.1.1" 1797 | resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz" 1798 | dependencies: 1799 | call-bind "^1.0.2" 1800 | has-tostringtag "^1.0.0" 1801 | 1802 | is-arrayish@^0.2.1: 1803 | version "0.2.1" 1804 | resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" 1805 | 1806 | is-bigint@^1.0.1: 1807 | version "1.0.4" 1808 | resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" 1809 | dependencies: 1810 | has-bigints "^1.0.1" 1811 | 1812 | is-binary-path@~2.1.0: 1813 | version "2.1.0" 1814 | resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" 1815 | dependencies: 1816 | binary-extensions "^2.0.0" 1817 | 1818 | is-boolean-object@^1.1.0: 1819 | version "1.1.2" 1820 | resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" 1821 | dependencies: 1822 | call-bind "^1.0.2" 1823 | has-tostringtag "^1.0.0" 1824 | 1825 | is-callable@^1.1.4, is-callable@^1.2.4: 1826 | version "1.2.4" 1827 | resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz" 1828 | 1829 | is-core-module@^2.2.0, is-core-module@^2.6.0: 1830 | version "2.6.0" 1831 | resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz" 1832 | dependencies: 1833 | has "^1.0.3" 1834 | 1835 | is-date-object@^1.0.1: 1836 | version "1.0.5" 1837 | resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" 1838 | dependencies: 1839 | has-tostringtag "^1.0.0" 1840 | 1841 | is-extglob@^2.1.1: 1842 | version "2.1.1" 1843 | resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" 1844 | 1845 | is-fullwidth-code-point@^2.0.0: 1846 | version "2.0.0" 1847 | resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" 1848 | 1849 | is-fullwidth-code-point@^3.0.0: 1850 | version "3.0.0" 1851 | resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" 1852 | 1853 | is-glob@^4.0.1, is-glob@~4.0.1: 1854 | version "4.0.1" 1855 | resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz" 1856 | dependencies: 1857 | is-extglob "^2.1.1" 1858 | 1859 | is-negative-zero@^2.0.1: 1860 | version "2.0.1" 1861 | resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz" 1862 | 1863 | is-number-object@^1.0.4: 1864 | version "1.0.6" 1865 | resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz" 1866 | dependencies: 1867 | has-tostringtag "^1.0.0" 1868 | 1869 | is-number@^7.0.0: 1870 | version "7.0.0" 1871 | resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" 1872 | 1873 | is-plain-obj@^2.1.0: 1874 | version "2.1.0" 1875 | resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" 1876 | 1877 | is-plain-object@^2.0.4: 1878 | version "2.0.4" 1879 | resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" 1880 | dependencies: 1881 | isobject "^3.0.1" 1882 | 1883 | is-regex@^1.0.4, is-regex@^1.1.4: 1884 | version "1.1.4" 1885 | resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" 1886 | dependencies: 1887 | call-bind "^1.0.2" 1888 | has-tostringtag "^1.0.0" 1889 | 1890 | is-stream@^2.0.0: 1891 | version "2.0.1" 1892 | resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" 1893 | 1894 | is-string@^1.0.5, is-string@^1.0.7: 1895 | version "1.0.7" 1896 | resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" 1897 | dependencies: 1898 | has-tostringtag "^1.0.0" 1899 | 1900 | is-symbol@^1.0.2, is-symbol@^1.0.3: 1901 | version "1.0.4" 1902 | resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" 1903 | dependencies: 1904 | has-symbols "^1.0.2" 1905 | 1906 | is-typedarray@^1.0.0: 1907 | version "1.0.0" 1908 | resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" 1909 | 1910 | is-unicode-supported@^0.1.0: 1911 | version "0.1.0" 1912 | resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" 1913 | 1914 | is-windows@^1.0.2: 1915 | version "1.0.2" 1916 | resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" 1917 | 1918 | isexe@^2.0.0: 1919 | version "2.0.0" 1920 | resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" 1921 | 1922 | isobject@^3.0.1: 1923 | version "3.0.1" 1924 | resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" 1925 | 1926 | istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.0.0-alpha.1: 1927 | version "3.0.0" 1928 | resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz" 1929 | 1930 | istanbul-lib-hook@^3.0.0: 1931 | version "3.0.0" 1932 | resolved "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz" 1933 | dependencies: 1934 | append-transform "^2.0.0" 1935 | 1936 | istanbul-lib-instrument@^4.0.0: 1937 | version "4.0.3" 1938 | resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz" 1939 | dependencies: 1940 | "@babel/core" "^7.7.5" 1941 | "@istanbuljs/schema" "^0.1.2" 1942 | istanbul-lib-coverage "^3.0.0" 1943 | semver "^6.3.0" 1944 | 1945 | istanbul-lib-processinfo@^2.0.2: 1946 | version "2.0.2" 1947 | resolved "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz" 1948 | dependencies: 1949 | archy "^1.0.0" 1950 | cross-spawn "^7.0.0" 1951 | istanbul-lib-coverage "^3.0.0-alpha.1" 1952 | make-dir "^3.0.0" 1953 | p-map "^3.0.0" 1954 | rimraf "^3.0.0" 1955 | uuid "^3.3.3" 1956 | 1957 | istanbul-lib-report@^3.0.0: 1958 | version "3.0.0" 1959 | resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" 1960 | dependencies: 1961 | istanbul-lib-coverage "^3.0.0" 1962 | make-dir "^3.0.0" 1963 | supports-color "^7.1.0" 1964 | 1965 | istanbul-lib-source-maps@^4.0.0: 1966 | version "4.0.0" 1967 | resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz" 1968 | dependencies: 1969 | debug "^4.1.1" 1970 | istanbul-lib-coverage "^3.0.0" 1971 | source-map "^0.6.1" 1972 | 1973 | istanbul-reports@^3.0.2: 1974 | version "3.0.2" 1975 | resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz" 1976 | dependencies: 1977 | html-escaper "^2.0.0" 1978 | istanbul-lib-report "^3.0.0" 1979 | 1980 | js-tokens@^4.0.0: 1981 | version "4.0.0" 1982 | resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" 1983 | 1984 | js-yaml@4.1.0: 1985 | version "4.1.0" 1986 | resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" 1987 | dependencies: 1988 | argparse "^2.0.1" 1989 | 1990 | js-yaml@^3.13.0, js-yaml@^3.13.1: 1991 | version "3.14.1" 1992 | resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" 1993 | dependencies: 1994 | argparse "^1.0.7" 1995 | esprima "^4.0.0" 1996 | 1997 | jsesc@^2.5.1: 1998 | version "2.5.2" 1999 | resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" 2000 | 2001 | jsesc@~0.5.0: 2002 | version "0.5.0" 2003 | resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" 2004 | 2005 | json-parse-better-errors@^1.0.1: 2006 | version "1.0.2" 2007 | resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" 2008 | 2009 | json-schema-traverse@^0.4.1: 2010 | version "0.4.1" 2011 | resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" 2012 | 2013 | json-stable-stringify-without-jsonify@^1.0.1: 2014 | version "1.0.1" 2015 | resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" 2016 | 2017 | json-stringify-safe@^5.0.1: 2018 | version "5.0.1" 2019 | resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" 2020 | 2021 | json5@^1.0.1: 2022 | version "1.0.1" 2023 | resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" 2024 | dependencies: 2025 | minimist "^1.2.0" 2026 | 2027 | json5@^2.1.2: 2028 | version "2.2.0" 2029 | resolved "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz" 2030 | dependencies: 2031 | minimist "^1.2.5" 2032 | 2033 | kind-of@^6.0.2: 2034 | version "6.0.3" 2035 | resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" 2036 | 2037 | levn@^0.3.0, levn@~0.3.0: 2038 | version "0.3.0" 2039 | resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" 2040 | dependencies: 2041 | prelude-ls "~1.1.2" 2042 | type-check "~0.3.2" 2043 | 2044 | load-json-file@^4.0.0: 2045 | version "4.0.0" 2046 | resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz" 2047 | dependencies: 2048 | graceful-fs "^4.1.2" 2049 | parse-json "^4.0.0" 2050 | pify "^3.0.0" 2051 | strip-bom "^3.0.0" 2052 | 2053 | locate-path@^2.0.0: 2054 | version "2.0.0" 2055 | resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" 2056 | dependencies: 2057 | p-locate "^2.0.0" 2058 | path-exists "^3.0.0" 2059 | 2060 | locate-path@^3.0.0: 2061 | version "3.0.0" 2062 | resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" 2063 | dependencies: 2064 | p-locate "^3.0.0" 2065 | path-exists "^3.0.0" 2066 | 2067 | locate-path@^5.0.0: 2068 | version "5.0.0" 2069 | resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" 2070 | dependencies: 2071 | p-locate "^4.1.0" 2072 | 2073 | locate-path@^6.0.0: 2074 | version "6.0.0" 2075 | resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" 2076 | dependencies: 2077 | p-locate "^5.0.0" 2078 | 2079 | lodash.debounce@^4.0.8: 2080 | version "4.0.8" 2081 | resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" 2082 | 2083 | lodash.flattendeep@^4.4.0: 2084 | version "4.4.0" 2085 | resolved "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz" 2086 | 2087 | lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.5: 2088 | version "4.17.21" 2089 | resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" 2090 | 2091 | log-symbols@4.1.0: 2092 | version "4.1.0" 2093 | resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" 2094 | dependencies: 2095 | chalk "^4.1.0" 2096 | is-unicode-supported "^0.1.0" 2097 | 2098 | make-dir@^2.0.0, make-dir@^2.1.0: 2099 | version "2.1.0" 2100 | resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" 2101 | dependencies: 2102 | pify "^4.0.1" 2103 | semver "^5.6.0" 2104 | 2105 | make-dir@^3.0.0, make-dir@^3.0.2: 2106 | version "3.1.0" 2107 | resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" 2108 | dependencies: 2109 | semver "^6.0.0" 2110 | 2111 | mimic-fn@^1.0.0: 2112 | version "1.2.0" 2113 | resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz" 2114 | 2115 | min-document@^2.19.0: 2116 | version "2.19.0" 2117 | resolved "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz" 2118 | dependencies: 2119 | dom-walk "^0.1.0" 2120 | 2121 | minimatch@4.2.1: 2122 | version "4.2.1" 2123 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz" 2124 | dependencies: 2125 | brace-expansion "^1.1.7" 2126 | 2127 | minimatch@^3.0.4: 2128 | version "3.1.2" 2129 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 2130 | dependencies: 2131 | brace-expansion "^1.1.7" 2132 | 2133 | minimist@^1.2.0, minimist@^1.2.5: 2134 | version "1.2.6" 2135 | resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz" 2136 | 2137 | mkdirp@^0.5.0, mkdirp@^0.5.1: 2138 | version "0.5.5" 2139 | resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" 2140 | dependencies: 2141 | minimist "^1.2.5" 2142 | 2143 | mocha@^9.1.1: 2144 | version "9.2.2" 2145 | resolved "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz" 2146 | dependencies: 2147 | "@ungap/promise-all-settled" "1.1.2" 2148 | ansi-colors "4.1.1" 2149 | browser-stdout "1.3.1" 2150 | chokidar "3.5.3" 2151 | debug "4.3.3" 2152 | diff "5.0.0" 2153 | escape-string-regexp "4.0.0" 2154 | find-up "5.0.0" 2155 | glob "7.2.0" 2156 | growl "1.10.5" 2157 | he "1.2.0" 2158 | js-yaml "4.1.0" 2159 | log-symbols "4.1.0" 2160 | minimatch "4.2.1" 2161 | ms "2.1.3" 2162 | nanoid "3.3.1" 2163 | serialize-javascript "6.0.0" 2164 | strip-json-comments "3.1.1" 2165 | supports-color "8.1.1" 2166 | which "2.0.2" 2167 | workerpool "6.2.0" 2168 | yargs "16.2.0" 2169 | yargs-parser "20.2.4" 2170 | yargs-unparser "2.0.0" 2171 | 2172 | mock-local-storage@^1.1.7: 2173 | version "1.1.17" 2174 | resolved "https://registry.npmjs.org/mock-local-storage/-/mock-local-storage-1.1.17.tgz" 2175 | dependencies: 2176 | core-js "^0.8.3" 2177 | global "^4.3.2" 2178 | 2179 | ms@2.0.0: 2180 | version "2.0.0" 2181 | resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" 2182 | 2183 | ms@2.1.2, ms@^2.1.1: 2184 | version "2.1.2" 2185 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" 2186 | 2187 | ms@2.1.3: 2188 | version "2.1.3" 2189 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" 2190 | 2191 | mute-stream@0.0.7: 2192 | version "0.0.7" 2193 | resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz" 2194 | 2195 | nanoid@3.3.1: 2196 | version "3.3.1" 2197 | resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz" 2198 | 2199 | natural-compare@^1.4.0: 2200 | version "1.4.0" 2201 | resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" 2202 | 2203 | nice-try@^1.0.4: 2204 | version "1.0.5" 2205 | resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" 2206 | 2207 | nock@^10.0.0: 2208 | version "10.0.6" 2209 | resolved "https://registry.npmjs.org/nock/-/nock-10.0.6.tgz" 2210 | dependencies: 2211 | chai "^4.1.2" 2212 | debug "^4.1.0" 2213 | deep-equal "^1.0.0" 2214 | json-stringify-safe "^5.0.1" 2215 | lodash "^4.17.5" 2216 | mkdirp "^0.5.0" 2217 | propagate "^1.0.0" 2218 | qs "^6.5.1" 2219 | semver "^5.5.0" 2220 | 2221 | node-modules-regexp@^1.0.0: 2222 | version "1.0.0" 2223 | resolved "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz" 2224 | 2225 | node-preload@^0.2.1: 2226 | version "0.2.1" 2227 | resolved "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz" 2228 | dependencies: 2229 | process-on-spawn "^1.0.0" 2230 | 2231 | node-releases@^1.1.75: 2232 | version "1.1.75" 2233 | resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz" 2234 | 2235 | normalize-package-data@^2.3.2: 2236 | version "2.5.0" 2237 | resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" 2238 | dependencies: 2239 | hosted-git-info "^2.1.4" 2240 | resolve "^1.10.0" 2241 | semver "2 || 3 || 4 || 5" 2242 | validate-npm-package-license "^3.0.1" 2243 | 2244 | normalize-path@^3.0.0, normalize-path@~3.0.0: 2245 | version "3.0.0" 2246 | resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" 2247 | 2248 | nyc@^15.1.0: 2249 | version "15.1.0" 2250 | resolved "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz" 2251 | dependencies: 2252 | "@istanbuljs/load-nyc-config" "^1.0.0" 2253 | "@istanbuljs/schema" "^0.1.2" 2254 | caching-transform "^4.0.0" 2255 | convert-source-map "^1.7.0" 2256 | decamelize "^1.2.0" 2257 | find-cache-dir "^3.2.0" 2258 | find-up "^4.1.0" 2259 | foreground-child "^2.0.0" 2260 | get-package-type "^0.1.0" 2261 | glob "^7.1.6" 2262 | istanbul-lib-coverage "^3.0.0" 2263 | istanbul-lib-hook "^3.0.0" 2264 | istanbul-lib-instrument "^4.0.0" 2265 | istanbul-lib-processinfo "^2.0.2" 2266 | istanbul-lib-report "^3.0.0" 2267 | istanbul-lib-source-maps "^4.0.0" 2268 | istanbul-reports "^3.0.2" 2269 | make-dir "^3.0.0" 2270 | node-preload "^0.2.1" 2271 | p-map "^3.0.0" 2272 | process-on-spawn "^1.0.0" 2273 | resolve-from "^5.0.0" 2274 | rimraf "^3.0.0" 2275 | signal-exit "^3.0.2" 2276 | spawn-wrap "^2.0.0" 2277 | test-exclude "^6.0.0" 2278 | yargs "^15.0.2" 2279 | 2280 | object-inspect@^1.11.0, object-inspect@^1.9.0: 2281 | version "1.11.0" 2282 | resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz" 2283 | 2284 | object-is@^1.0.1: 2285 | version "1.1.5" 2286 | resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz" 2287 | dependencies: 2288 | call-bind "^1.0.2" 2289 | define-properties "^1.1.3" 2290 | 2291 | object-keys@^1.0.12, object-keys@^1.1.1: 2292 | version "1.1.1" 2293 | resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" 2294 | 2295 | object.assign@^4.1.0, object.assign@^4.1.2: 2296 | version "4.1.2" 2297 | resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" 2298 | dependencies: 2299 | call-bind "^1.0.0" 2300 | define-properties "^1.1.3" 2301 | has-symbols "^1.0.1" 2302 | object-keys "^1.1.1" 2303 | 2304 | object.entries@^1.1.0: 2305 | version "1.1.4" 2306 | resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz" 2307 | dependencies: 2308 | call-bind "^1.0.2" 2309 | define-properties "^1.1.3" 2310 | es-abstract "^1.18.2" 2311 | 2312 | object.values@^1.1.4: 2313 | version "1.1.4" 2314 | resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz" 2315 | dependencies: 2316 | call-bind "^1.0.2" 2317 | define-properties "^1.1.3" 2318 | es-abstract "^1.18.2" 2319 | 2320 | once@^1.3.0: 2321 | version "1.4.0" 2322 | resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" 2323 | dependencies: 2324 | wrappy "1" 2325 | 2326 | onetime@^2.0.0: 2327 | version "2.0.1" 2328 | resolved "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz" 2329 | dependencies: 2330 | mimic-fn "^1.0.0" 2331 | 2332 | optionator@^0.8.2: 2333 | version "0.8.3" 2334 | resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" 2335 | dependencies: 2336 | deep-is "~0.1.3" 2337 | fast-levenshtein "~2.0.6" 2338 | levn "~0.3.0" 2339 | prelude-ls "~1.1.2" 2340 | type-check "~0.3.2" 2341 | word-wrap "~1.2.3" 2342 | 2343 | os-tmpdir@~1.0.2: 2344 | version "1.0.2" 2345 | resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" 2346 | 2347 | p-limit@^1.1.0: 2348 | version "1.3.0" 2349 | resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" 2350 | dependencies: 2351 | p-try "^1.0.0" 2352 | 2353 | p-limit@^2.0.0, p-limit@^2.2.0: 2354 | version "2.3.0" 2355 | resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" 2356 | dependencies: 2357 | p-try "^2.0.0" 2358 | 2359 | p-limit@^3.0.2: 2360 | version "3.1.0" 2361 | resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" 2362 | dependencies: 2363 | yocto-queue "^0.1.0" 2364 | 2365 | p-locate@^2.0.0: 2366 | version "2.0.0" 2367 | resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" 2368 | dependencies: 2369 | p-limit "^1.1.0" 2370 | 2371 | p-locate@^3.0.0: 2372 | version "3.0.0" 2373 | resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" 2374 | dependencies: 2375 | p-limit "^2.0.0" 2376 | 2377 | p-locate@^4.1.0: 2378 | version "4.1.0" 2379 | resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" 2380 | dependencies: 2381 | p-limit "^2.2.0" 2382 | 2383 | p-locate@^5.0.0: 2384 | version "5.0.0" 2385 | resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" 2386 | dependencies: 2387 | p-limit "^3.0.2" 2388 | 2389 | p-map@^3.0.0: 2390 | version "3.0.0" 2391 | resolved "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz" 2392 | dependencies: 2393 | aggregate-error "^3.0.0" 2394 | 2395 | p-try@^1.0.0: 2396 | version "1.0.0" 2397 | resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" 2398 | 2399 | p-try@^2.0.0: 2400 | version "2.2.0" 2401 | resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" 2402 | 2403 | package-hash@^4.0.0: 2404 | version "4.0.0" 2405 | resolved "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz" 2406 | dependencies: 2407 | graceful-fs "^4.1.15" 2408 | hasha "^5.0.0" 2409 | lodash.flattendeep "^4.4.0" 2410 | release-zalgo "^1.0.0" 2411 | 2412 | parent-module@^1.0.0: 2413 | version "1.0.1" 2414 | resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" 2415 | dependencies: 2416 | callsites "^3.0.0" 2417 | 2418 | parse-json@^4.0.0: 2419 | version "4.0.0" 2420 | resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" 2421 | dependencies: 2422 | error-ex "^1.3.1" 2423 | json-parse-better-errors "^1.0.1" 2424 | 2425 | path-exists@^3.0.0: 2426 | version "3.0.0" 2427 | resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" 2428 | 2429 | path-exists@^4.0.0: 2430 | version "4.0.0" 2431 | resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" 2432 | 2433 | path-is-absolute@^1.0.0: 2434 | version "1.0.1" 2435 | resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" 2436 | 2437 | path-is-inside@^1.0.2: 2438 | version "1.0.2" 2439 | resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz" 2440 | 2441 | path-key@^2.0.1: 2442 | version "2.0.1" 2443 | resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" 2444 | 2445 | path-key@^3.1.0: 2446 | version "3.1.1" 2447 | resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" 2448 | 2449 | path-parse@^1.0.6: 2450 | version "1.0.7" 2451 | resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" 2452 | 2453 | path-type@^3.0.0: 2454 | version "3.0.0" 2455 | resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz" 2456 | dependencies: 2457 | pify "^3.0.0" 2458 | 2459 | pathval@^1.1.1: 2460 | version "1.1.1" 2461 | resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz" 2462 | 2463 | picomatch@^2.0.4, picomatch@^2.2.1: 2464 | version "2.3.0" 2465 | resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz" 2466 | 2467 | pify@^3.0.0: 2468 | version "3.0.0" 2469 | resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" 2470 | 2471 | pify@^4.0.1: 2472 | version "4.0.1" 2473 | resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" 2474 | 2475 | pirates@^4.0.0: 2476 | version "4.0.1" 2477 | resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz" 2478 | dependencies: 2479 | node-modules-regexp "^1.0.0" 2480 | 2481 | pkg-dir@^2.0.0: 2482 | version "2.0.0" 2483 | resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz" 2484 | dependencies: 2485 | find-up "^2.1.0" 2486 | 2487 | pkg-dir@^3.0.0: 2488 | version "3.0.0" 2489 | resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz" 2490 | dependencies: 2491 | find-up "^3.0.0" 2492 | 2493 | pkg-dir@^4.1.0: 2494 | version "4.2.0" 2495 | resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" 2496 | dependencies: 2497 | find-up "^4.0.0" 2498 | 2499 | pkg-up@^2.0.0: 2500 | version "2.0.0" 2501 | resolved "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz" 2502 | dependencies: 2503 | find-up "^2.1.0" 2504 | 2505 | prelude-ls@~1.1.2: 2506 | version "1.1.2" 2507 | resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" 2508 | 2509 | process-on-spawn@^1.0.0: 2510 | version "1.0.0" 2511 | resolved "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz" 2512 | dependencies: 2513 | fromentries "^1.2.0" 2514 | 2515 | process@^0.11.10: 2516 | version "0.11.10" 2517 | resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" 2518 | 2519 | progress@^2.0.0: 2520 | version "2.0.3" 2521 | resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" 2522 | 2523 | propagate@^1.0.0: 2524 | version "1.0.0" 2525 | resolved "https://registry.npmjs.org/propagate/-/propagate-1.0.0.tgz" 2526 | 2527 | punycode@^2.1.0: 2528 | version "2.1.1" 2529 | resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" 2530 | 2531 | qs@^6.5.1, qs@^6.5.2: 2532 | version "6.10.3" 2533 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" 2534 | dependencies: 2535 | side-channel "^1.0.4" 2536 | 2537 | randombytes@^2.1.0: 2538 | version "2.1.0" 2539 | resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" 2540 | dependencies: 2541 | safe-buffer "^5.1.0" 2542 | 2543 | read-pkg-up@^3.0.0: 2544 | version "3.0.0" 2545 | resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz" 2546 | dependencies: 2547 | find-up "^2.0.0" 2548 | read-pkg "^3.0.0" 2549 | 2550 | read-pkg@^3.0.0: 2551 | version "3.0.0" 2552 | resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz" 2553 | dependencies: 2554 | load-json-file "^4.0.0" 2555 | normalize-package-data "^2.3.2" 2556 | path-type "^3.0.0" 2557 | 2558 | readdirp@~3.6.0: 2559 | version "3.6.0" 2560 | resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" 2561 | dependencies: 2562 | picomatch "^2.2.1" 2563 | 2564 | regenerate-unicode-properties@^9.0.0: 2565 | version "9.0.0" 2566 | resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz" 2567 | dependencies: 2568 | regenerate "^1.4.2" 2569 | 2570 | regenerate@^1.4.2: 2571 | version "1.4.2" 2572 | resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" 2573 | 2574 | regenerator-runtime@^0.13.4: 2575 | version "0.13.9" 2576 | resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" 2577 | 2578 | regenerator-transform@^0.14.2: 2579 | version "0.14.5" 2580 | resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz" 2581 | dependencies: 2582 | "@babel/runtime" "^7.8.4" 2583 | 2584 | regexp.prototype.flags@^1.2.0: 2585 | version "1.3.1" 2586 | resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz" 2587 | dependencies: 2588 | call-bind "^1.0.2" 2589 | define-properties "^1.1.3" 2590 | 2591 | regexpp@^2.0.1: 2592 | version "2.0.1" 2593 | resolved "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz" 2594 | 2595 | regexpu-core@^4.7.1: 2596 | version "4.8.0" 2597 | resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz" 2598 | dependencies: 2599 | regenerate "^1.4.2" 2600 | regenerate-unicode-properties "^9.0.0" 2601 | regjsgen "^0.5.2" 2602 | regjsparser "^0.7.0" 2603 | unicode-match-property-ecmascript "^2.0.0" 2604 | unicode-match-property-value-ecmascript "^2.0.0" 2605 | 2606 | regjsgen@^0.5.2: 2607 | version "0.5.2" 2608 | resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz" 2609 | 2610 | regjsparser@^0.7.0: 2611 | version "0.7.0" 2612 | resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz" 2613 | dependencies: 2614 | jsesc "~0.5.0" 2615 | 2616 | release-zalgo@^1.0.0: 2617 | version "1.0.0" 2618 | resolved "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz" 2619 | dependencies: 2620 | es6-error "^4.0.1" 2621 | 2622 | require-directory@^2.1.1: 2623 | version "2.1.1" 2624 | resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" 2625 | 2626 | require-main-filename@^2.0.0: 2627 | version "2.0.0" 2628 | resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" 2629 | 2630 | resolve-from@^4.0.0: 2631 | version "4.0.0" 2632 | resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" 2633 | 2634 | resolve-from@^5.0.0: 2635 | version "5.0.0" 2636 | resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" 2637 | 2638 | resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0: 2639 | version "1.20.0" 2640 | resolved "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz" 2641 | dependencies: 2642 | is-core-module "^2.2.0" 2643 | path-parse "^1.0.6" 2644 | 2645 | restore-cursor@^2.0.0: 2646 | version "2.0.0" 2647 | resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz" 2648 | dependencies: 2649 | onetime "^2.0.0" 2650 | signal-exit "^3.0.2" 2651 | 2652 | rimraf@2.6.3: 2653 | version "2.6.3" 2654 | resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz" 2655 | dependencies: 2656 | glob "^7.1.3" 2657 | 2658 | rimraf@^3.0.0: 2659 | version "3.0.2" 2660 | resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" 2661 | dependencies: 2662 | glob "^7.1.3" 2663 | 2664 | run-async@^2.2.0: 2665 | version "2.4.1" 2666 | resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz" 2667 | 2668 | rxjs@^6.4.0: 2669 | version "6.6.7" 2670 | resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz" 2671 | dependencies: 2672 | tslib "^1.9.0" 2673 | 2674 | safe-buffer@^5.1.0, safe-buffer@~5.1.1: 2675 | version "5.1.2" 2676 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" 2677 | 2678 | "safer-buffer@>= 2.1.2 < 3": 2679 | version "2.1.2" 2680 | resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" 2681 | 2682 | "semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: 2683 | version "5.7.1" 2684 | resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" 2685 | 2686 | semver@7.0.0: 2687 | version "7.0.0" 2688 | resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz" 2689 | 2690 | semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: 2691 | version "6.3.0" 2692 | resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" 2693 | 2694 | serialize-javascript@6.0.0: 2695 | version "6.0.0" 2696 | resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" 2697 | dependencies: 2698 | randombytes "^2.1.0" 2699 | 2700 | set-blocking@^2.0.0: 2701 | version "2.0.0" 2702 | resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" 2703 | 2704 | shallow-clone@^3.0.0: 2705 | version "3.0.1" 2706 | resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" 2707 | dependencies: 2708 | kind-of "^6.0.2" 2709 | 2710 | shebang-command@^1.2.0: 2711 | version "1.2.0" 2712 | resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" 2713 | dependencies: 2714 | shebang-regex "^1.0.0" 2715 | 2716 | shebang-command@^2.0.0: 2717 | version "2.0.0" 2718 | resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" 2719 | dependencies: 2720 | shebang-regex "^3.0.0" 2721 | 2722 | shebang-regex@^1.0.0: 2723 | version "1.0.0" 2724 | resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" 2725 | 2726 | shebang-regex@^3.0.0: 2727 | version "3.0.0" 2728 | resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" 2729 | 2730 | side-channel@^1.0.4: 2731 | version "1.0.4" 2732 | resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" 2733 | dependencies: 2734 | call-bind "^1.0.0" 2735 | get-intrinsic "^1.0.2" 2736 | object-inspect "^1.9.0" 2737 | 2738 | signal-exit@^3.0.2: 2739 | version "3.0.4" 2740 | resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.4.tgz" 2741 | 2742 | slash@^2.0.0: 2743 | version "2.0.0" 2744 | resolved "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz" 2745 | 2746 | slice-ansi@^2.1.0: 2747 | version "2.1.0" 2748 | resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz" 2749 | dependencies: 2750 | ansi-styles "^3.2.0" 2751 | astral-regex "^1.0.0" 2752 | is-fullwidth-code-point "^2.0.0" 2753 | 2754 | source-map-support@^0.5.16: 2755 | version "0.5.20" 2756 | resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz" 2757 | dependencies: 2758 | buffer-from "^1.0.0" 2759 | source-map "^0.6.0" 2760 | 2761 | source-map@^0.5.0: 2762 | version "0.5.7" 2763 | resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" 2764 | 2765 | source-map@^0.6.0, source-map@^0.6.1: 2766 | version "0.6.1" 2767 | resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" 2768 | 2769 | spawn-wrap@^2.0.0: 2770 | version "2.0.0" 2771 | resolved "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz" 2772 | dependencies: 2773 | foreground-child "^2.0.0" 2774 | is-windows "^1.0.2" 2775 | make-dir "^3.0.0" 2776 | rimraf "^3.0.0" 2777 | signal-exit "^3.0.2" 2778 | which "^2.0.1" 2779 | 2780 | spdx-correct@^3.0.0: 2781 | version "3.1.1" 2782 | resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz" 2783 | dependencies: 2784 | spdx-expression-parse "^3.0.0" 2785 | spdx-license-ids "^3.0.0" 2786 | 2787 | spdx-exceptions@^2.1.0: 2788 | version "2.3.0" 2789 | resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" 2790 | 2791 | spdx-expression-parse@^3.0.0: 2792 | version "3.0.1" 2793 | resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" 2794 | dependencies: 2795 | spdx-exceptions "^2.1.0" 2796 | spdx-license-ids "^3.0.0" 2797 | 2798 | spdx-license-ids@^3.0.0: 2799 | version "3.0.10" 2800 | resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz" 2801 | 2802 | sprintf-js@~1.0.2: 2803 | version "1.0.3" 2804 | resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" 2805 | 2806 | string-width@^2.1.0: 2807 | version "2.1.1" 2808 | resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" 2809 | dependencies: 2810 | is-fullwidth-code-point "^2.0.0" 2811 | strip-ansi "^4.0.0" 2812 | 2813 | string-width@^3.0.0: 2814 | version "3.1.0" 2815 | resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" 2816 | dependencies: 2817 | emoji-regex "^7.0.1" 2818 | is-fullwidth-code-point "^2.0.0" 2819 | strip-ansi "^5.1.0" 2820 | 2821 | string-width@^4.1.0, string-width@^4.2.0: 2822 | version "4.2.2" 2823 | resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz" 2824 | dependencies: 2825 | emoji-regex "^8.0.0" 2826 | is-fullwidth-code-point "^3.0.0" 2827 | strip-ansi "^6.0.0" 2828 | 2829 | string.prototype.trimend@^1.0.4: 2830 | version "1.0.4" 2831 | resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz" 2832 | dependencies: 2833 | call-bind "^1.0.2" 2834 | define-properties "^1.1.3" 2835 | 2836 | string.prototype.trimstart@^1.0.4: 2837 | version "1.0.4" 2838 | resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz" 2839 | dependencies: 2840 | call-bind "^1.0.2" 2841 | define-properties "^1.1.3" 2842 | 2843 | strip-ansi@^4.0.0: 2844 | version "4.0.0" 2845 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" 2846 | dependencies: 2847 | ansi-regex "^3.0.0" 2848 | 2849 | strip-ansi@^5.1.0: 2850 | version "5.2.0" 2851 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" 2852 | dependencies: 2853 | ansi-regex "^4.1.0" 2854 | 2855 | strip-ansi@^6.0.0: 2856 | version "6.0.0" 2857 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz" 2858 | dependencies: 2859 | ansi-regex "^5.0.0" 2860 | 2861 | strip-bom@^3.0.0: 2862 | version "3.0.0" 2863 | resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" 2864 | 2865 | strip-bom@^4.0.0: 2866 | version "4.0.0" 2867 | resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" 2868 | 2869 | strip-json-comments@3.1.1: 2870 | version "3.1.1" 2871 | resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" 2872 | 2873 | strip-json-comments@^2.0.1: 2874 | version "2.0.1" 2875 | resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" 2876 | 2877 | supports-color@8.1.1: 2878 | version "8.1.1" 2879 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" 2880 | dependencies: 2881 | has-flag "^4.0.0" 2882 | 2883 | supports-color@^5.3.0: 2884 | version "5.5.0" 2885 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" 2886 | dependencies: 2887 | has-flag "^3.0.0" 2888 | 2889 | supports-color@^7.1.0: 2890 | version "7.2.0" 2891 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" 2892 | dependencies: 2893 | has-flag "^4.0.0" 2894 | 2895 | table@^5.2.3: 2896 | version "5.4.6" 2897 | resolved "https://registry.npmjs.org/table/-/table-5.4.6.tgz" 2898 | dependencies: 2899 | ajv "^6.10.2" 2900 | lodash "^4.17.14" 2901 | slice-ansi "^2.1.0" 2902 | string-width "^3.0.0" 2903 | 2904 | test-exclude@^6.0.0: 2905 | version "6.0.0" 2906 | resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" 2907 | dependencies: 2908 | "@istanbuljs/schema" "^0.1.2" 2909 | glob "^7.1.4" 2910 | minimatch "^3.0.4" 2911 | 2912 | text-table@^0.2.0: 2913 | version "0.2.0" 2914 | resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" 2915 | 2916 | through@^2.3.6: 2917 | version "2.3.8" 2918 | resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" 2919 | 2920 | tmp@^0.0.33: 2921 | version "0.0.33" 2922 | resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" 2923 | dependencies: 2924 | os-tmpdir "~1.0.2" 2925 | 2926 | to-fast-properties@^2.0.0: 2927 | version "2.0.0" 2928 | resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" 2929 | 2930 | to-regex-range@^5.0.1: 2931 | version "5.0.1" 2932 | resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" 2933 | dependencies: 2934 | is-number "^7.0.0" 2935 | 2936 | tsconfig-paths@^3.11.0: 2937 | version "3.11.0" 2938 | resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz" 2939 | dependencies: 2940 | "@types/json5" "^0.0.29" 2941 | json5 "^1.0.1" 2942 | minimist "^1.2.0" 2943 | strip-bom "^3.0.0" 2944 | 2945 | tslib@^1.9.0: 2946 | version "1.14.1" 2947 | resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" 2948 | 2949 | type-check@~0.3.2: 2950 | version "0.3.2" 2951 | resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" 2952 | dependencies: 2953 | prelude-ls "~1.1.2" 2954 | 2955 | type-detect@^4.0.0, type-detect@^4.0.5: 2956 | version "4.0.8" 2957 | resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" 2958 | 2959 | type-fest@^0.8.0: 2960 | version "0.8.1" 2961 | resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" 2962 | 2963 | typedarray-to-buffer@^3.1.5: 2964 | version "3.1.5" 2965 | resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" 2966 | dependencies: 2967 | is-typedarray "^1.0.0" 2968 | 2969 | unbox-primitive@^1.0.1: 2970 | version "1.0.1" 2971 | resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz" 2972 | dependencies: 2973 | function-bind "^1.1.1" 2974 | has-bigints "^1.0.1" 2975 | has-symbols "^1.0.2" 2976 | which-boxed-primitive "^1.0.2" 2977 | 2978 | unicode-canonical-property-names-ecmascript@^2.0.0: 2979 | version "2.0.0" 2980 | resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" 2981 | 2982 | unicode-match-property-ecmascript@^2.0.0: 2983 | version "2.0.0" 2984 | resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" 2985 | dependencies: 2986 | unicode-canonical-property-names-ecmascript "^2.0.0" 2987 | unicode-property-aliases-ecmascript "^2.0.0" 2988 | 2989 | unicode-match-property-value-ecmascript@^2.0.0: 2990 | version "2.0.0" 2991 | resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz" 2992 | 2993 | unicode-property-aliases-ecmascript@^2.0.0: 2994 | version "2.0.0" 2995 | resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz" 2996 | 2997 | uri-js@^4.2.2: 2998 | version "4.4.1" 2999 | resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" 3000 | dependencies: 3001 | punycode "^2.1.0" 3002 | 3003 | uuid@^3.3.3: 3004 | version "3.4.0" 3005 | resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" 3006 | 3007 | validate-npm-package-license@^3.0.1: 3008 | version "3.0.4" 3009 | resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" 3010 | dependencies: 3011 | spdx-correct "^3.0.0" 3012 | spdx-expression-parse "^3.0.0" 3013 | 3014 | which-boxed-primitive@^1.0.2: 3015 | version "1.0.2" 3016 | resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" 3017 | dependencies: 3018 | is-bigint "^1.0.1" 3019 | is-boolean-object "^1.1.0" 3020 | is-number-object "^1.0.4" 3021 | is-string "^1.0.5" 3022 | is-symbol "^1.0.3" 3023 | 3024 | which-module@^2.0.0: 3025 | version "2.0.0" 3026 | resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" 3027 | 3028 | which@2.0.2, which@^2.0.1: 3029 | version "2.0.2" 3030 | resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" 3031 | dependencies: 3032 | isexe "^2.0.0" 3033 | 3034 | which@^1.2.9: 3035 | version "1.3.1" 3036 | resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" 3037 | dependencies: 3038 | isexe "^2.0.0" 3039 | 3040 | word-wrap@~1.2.3: 3041 | version "1.2.3" 3042 | resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" 3043 | 3044 | workerpool@6.2.0: 3045 | version "6.2.0" 3046 | resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz" 3047 | 3048 | wrap-ansi@^6.2.0: 3049 | version "6.2.0" 3050 | resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" 3051 | dependencies: 3052 | ansi-styles "^4.0.0" 3053 | string-width "^4.1.0" 3054 | strip-ansi "^6.0.0" 3055 | 3056 | wrap-ansi@^7.0.0: 3057 | version "7.0.0" 3058 | resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" 3059 | dependencies: 3060 | ansi-styles "^4.0.0" 3061 | string-width "^4.1.0" 3062 | strip-ansi "^6.0.0" 3063 | 3064 | wrappy@1: 3065 | version "1.0.2" 3066 | resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" 3067 | 3068 | write-file-atomic@^3.0.0: 3069 | version "3.0.3" 3070 | resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" 3071 | dependencies: 3072 | imurmurhash "^0.1.4" 3073 | is-typedarray "^1.0.0" 3074 | signal-exit "^3.0.2" 3075 | typedarray-to-buffer "^3.1.5" 3076 | 3077 | write@1.0.3: 3078 | version "1.0.3" 3079 | resolved "https://registry.npmjs.org/write/-/write-1.0.3.tgz" 3080 | dependencies: 3081 | mkdirp "^0.5.1" 3082 | 3083 | y18n@^4.0.0: 3084 | version "4.0.3" 3085 | resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" 3086 | 3087 | y18n@^5.0.5: 3088 | version "5.0.8" 3089 | resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" 3090 | 3091 | yargs-parser@20.2.4, yargs-parser@^20.2.2: 3092 | version "20.2.4" 3093 | resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" 3094 | 3095 | yargs-parser@^18.1.2: 3096 | version "18.1.3" 3097 | resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz" 3098 | dependencies: 3099 | camelcase "^5.0.0" 3100 | decamelize "^1.2.0" 3101 | 3102 | yargs-unparser@2.0.0: 3103 | version "2.0.0" 3104 | resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" 3105 | dependencies: 3106 | camelcase "^6.0.0" 3107 | decamelize "^4.0.0" 3108 | flat "^5.0.2" 3109 | is-plain-obj "^2.1.0" 3110 | 3111 | yargs@16.2.0: 3112 | version "16.2.0" 3113 | resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" 3114 | dependencies: 3115 | cliui "^7.0.2" 3116 | escalade "^3.1.1" 3117 | get-caller-file "^2.0.5" 3118 | require-directory "^2.1.1" 3119 | string-width "^4.2.0" 3120 | y18n "^5.0.5" 3121 | yargs-parser "^20.2.2" 3122 | 3123 | yargs@^15.0.2: 3124 | version "15.4.1" 3125 | resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz" 3126 | dependencies: 3127 | cliui "^6.0.0" 3128 | decamelize "^1.2.0" 3129 | find-up "^4.1.0" 3130 | get-caller-file "^2.0.1" 3131 | require-directory "^2.1.1" 3132 | require-main-filename "^2.0.0" 3133 | set-blocking "^2.0.0" 3134 | string-width "^4.2.0" 3135 | which-module "^2.0.0" 3136 | y18n "^4.0.0" 3137 | yargs-parser "^18.1.2" 3138 | 3139 | yocto-queue@^0.1.0: 3140 | version "0.1.0" 3141 | resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" 3142 | --------------------------------------------------------------------------------