From 6930880ca1f828f5fc630cbd87fd969efd0e9e97 Mon Sep 17 00:00:00 2001
From: DemChing <62481633+DemChing@users.noreply.github.com>
Date: Sun, 20 Mar 2022 04:08:59 +0800
Subject: [PATCH 1/5] update to postcss v8 and fix tests file path resolve
---
README.md | 67 +-
babel.config.json | 3 +
package.json | 44 +-
pnpm-lock.yaml | 3917 +++++++++++++++++++++++++++++++++++++
src/core-loader.ts | 42 +
src/file-system-loader.js | 77 -
src/file-system-loader.ts | 101 +
src/index.js | 31 -
src/index.ts | 3 +
src/parser.js | 63 -
src/parser.ts | 85 +
src/plugins.ts | 17 +
test/test-cases.js | 55 -
test/test-cases.ts | 40 +
tsconfig.json | 11 +
15 files changed, 4304 insertions(+), 252 deletions(-)
create mode 100644 babel.config.json
create mode 100644 pnpm-lock.yaml
create mode 100644 src/core-loader.ts
delete mode 100644 src/file-system-loader.js
create mode 100644 src/file-system-loader.ts
delete mode 100644 src/index.js
create mode 100644 src/index.ts
delete mode 100644 src/parser.js
create mode 100644 src/parser.ts
create mode 100644 src/plugins.ts
delete mode 100644 test/test-cases.js
create mode 100644 test/test-cases.ts
create mode 100644 tsconfig.json
diff --git a/README.md b/README.md
index 8a666de..7f5048d 100644
--- a/README.md
+++ b/README.md
@@ -1,16 +1,30 @@
# CSS Module Loader Core
-> A loader-agnostic CSS Modules implementation, based on PostCSS
+> A loader-agnostic CSS Modules implementation, based on `PostCSS@8`
-[](https://travis-ci.org/css-modules/css-modules-loader-core)
+> If you don't use plugins for `PostCSS@8`, use the original package instead.
+
+[](https://travis-ci.org/demching/demching-loader-core)
+
+## Notice
+This is a modified repository of [css-modules-loader-core](https://github.com/css-modules/css-modules-loader-core) with the following changes:
+
+1. Rewrite in `Typescript`.
+2. Update some dependencies to latest version: `PostCSS` and related plugins.
+3. Change the usage of `file-system-loader`.
+
+The original package depends on `PostCSS@6` which has a different usage of plugins to the latest `PostCSS@8`. Incompatible plugins is the main reason I created this package. You may install the original package if you are not using custom plugins.
+
+Usage of this package should be the same as original repo unless you are using `file-system-loader`. Check [here](#file-system-loader) for details.
## API
```js
-import Core from 'css-modules-loader-core'
+import Core from '@demching113/css-modules-loader-core'
let core = new Core()
```
-### core.load( sourceString , sourcePath , pathFetcher ) =>
Promise({ injectableSource, exportTokens })
+### core.load
+> __core.load( sourceString , sourcePath, depTrace , pathFetcher ) => Promise({ injectableSource, exportTokens })__
Processes the input CSS `sourceString`, looking for dependencies such as `@import` or `:import`. Any localisation will happen by prefixing a sanitised version of `sourcePath` When dependencies are found, it will ask the `pathFetcher` for each dependency, resolve & inline any imports, and return the following object:
@@ -24,16 +38,51 @@ These should map nicely to what your build-tool-specific loader needs to do its
The default set of plugins is [[postcss-modules-local-by-default](https://github.com/css-modules/postcss-modules-local-by-default), [postcss-modules-extract-imports](https://github.com/css-modules/postcss-modules-extract-imports), [postcss-modules-scope](https://github.com/css-modules/postcss-modules-scope)] (i.e. the CSS Modules specification). This can override which PostCSS plugins you wish to execute, e.g.
```js
-import Core from 'css-loader-core'
+import Core from '@demching113/css-modules-loader-core'
import autoprefixer from 'autoprefixer'
import colorFunctions from 'postcss-color-function'
-// Don't run local-by-default, but use colorFunctions
+// Don't run local-by-default, but use colorFunctions
// beforehand and autoprefixer afterwards:
let core = new Core([
- colorFunctions,
- core.plugins.extractImports,
- core.plugins.scope,
+ colorFunctions,
+ Core.extractImports,
+ Core.scope,
autoprefixer("Last 2 Versions")
])
```
+
+## File System Loader
+This loader was used only for testing in original repository. However, it doesn't work because the file path is not resolved correctly. See related [issue](https://github.com/css-modules/css-modules-loader-core/issues/232).
+
+So I try to fix the bug and end up changing its usage.
+
+> P.S. This is tested on Windows only so it may not work on Unix system.
+
+```js
+import { FileSystemLoader } from '@demching113/css-modules-loader-core';
+// Specify the absolute path of root. E.g. C:\users\your\root\of\src
+let fileLoader = new FileSystemLoader(rootAbsolutePath);
+
+// or with using plugins
+let fileLoader = new FileSystemLoader(rootAbsolutePath, [
+ // your plugins
+]);
+```
+
+### fileLoader.load
+> __fileLoader.load( sourceString , sourceRelativePath , depTrace ) => Promise({ injectableSource, exportTokens })__
+
+The usage is similar to [`core.load`](#coreload) except you don't need to provide `pathFetcher`.
+
+Also, you may need to provide the file path `sourceRelativePath` relative to `rootAbsolutePath`.
+
+For example, the `rootAbsolutePath` is `/root/of/src` and you want to load `/root/of/src/styles/main.css`:
+
+```js
+let fileLoader = new FileSystemLoader(`/root/of/src`);
+fileLoader.load(
+ contents, // contents of main.css
+ `styles/main.css`, // relative path
+)
+```
diff --git a/babel.config.json b/babel.config.json
new file mode 100644
index 0000000..937768f
--- /dev/null
+++ b/babel.config.json
@@ -0,0 +1,3 @@
+{
+ "presets": ["@babel/preset-env", "@babel/preset-typescript"]
+}
\ No newline at end of file
diff --git a/package.json b/package.json
index 01f795d..859f8ee 100644
--- a/package.json
+++ b/package.json
@@ -1,37 +1,44 @@
{
- "name": "css-modules-loader-core",
+ "name": "@demching113/css-modules-loader-core",
"version": "1.1.0",
- "description": "A loader-agnostic CSS Modules implementation, based on PostCSS",
+ "description": "A loader-agnostic CSS Modules implementation, based on PostCSS@8.x",
"main": "lib/index.js",
"directories": {
"test": "test"
},
"dependencies": {
"icss-replace-symbols": "1.1.0",
- "postcss": "6.0.1",
- "postcss-modules-extract-imports": "1.1.0",
- "postcss-modules-local-by-default": "1.2.0",
- "postcss-modules-scope": "1.1.0",
- "postcss-modules-values": "1.3.0"
+ "postcss": "8.4.12",
+ "postcss-modules-extract-imports": "3.0.0",
+ "postcss-modules-local-by-default": "4.0.0",
+ "postcss-modules-scope": "3.0.0",
+ "postcss-modules-values": "4.0.0"
},
"devDependencies": {
- "babel": "5.8.29",
- "babel-eslint": "7.1.0",
- "babelify": "7.3.0",
+ "@babel/cli": "^7.17.6",
+ "@babel/core": "^7.17.8",
+ "@babel/preset-env": "^7.16.11",
+ "@babel/preset-typescript": "^7.16.7",
+ "@types/chai": "^4.3.0",
+ "@types/mocha": "^9.1.0",
+ "@types/node": "^17.0.21",
+ "babelify": "10.0.0",
"chokidar-cli": "1.1.0",
"eslint": "3.10.1",
- "mocha": "3.1.2"
+ "mocha": "3.1.2",
+ "ts-node": "^10.7.0",
+ "typescript": "^4.6.2"
},
"scripts": {
"lint": "eslint src",
- "build": "babel --out-dir lib src",
+ "build": "babel --extensions '.ts' --out-dir lib src && tsc",
"autotest": "chokidar src test -c 'npm test'",
- "test": "mocha --compilers js:babel/register",
+ "test": "mocha --compilers ts:ts-node/register",
"prepublish": "rm -rf lib/* && npm run build"
},
"repository": {
"type": "git",
- "url": "https://github.com/css-modules/css-modules-loader-core.git"
+ "url": "https://github.com/demching/css-modules-loader-core.git"
},
"keywords": [
"css-modules",
@@ -41,10 +48,13 @@
"files": [
"lib"
],
- "author": "Glen Maddern",
+ "author": "Dem Ching",
"license": "ISC",
"bugs": {
- "url": "https://github.com/css-modules/css-modules-loader-core/issues"
+ "url": "https://github.com/demching/css-modules-loader-core/issues"
},
- "homepage": "https://github.com/css-modules/css-modules-loader-core"
+ "homepage": "https://github.com/demching/css-modules-loader-core",
+ "publishConfig": {
+ "access": "public"
+ }
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
new file mode 100644
index 0000000..15cfbde
--- /dev/null
+++ b/pnpm-lock.yaml
@@ -0,0 +1,3917 @@
+lockfileVersion: 5.3
+
+specifiers:
+ '@babel/cli': ^7.17.6
+ '@babel/core': ^7.17.8
+ '@babel/preset-env': ^7.16.11
+ '@babel/preset-typescript': ^7.16.7
+ '@types/chai': ^4.3.0
+ '@types/mocha': ^9.1.0
+ '@types/node': ^17.0.21
+ babelify: 10.0.0
+ chokidar-cli: 1.1.0
+ eslint: 3.10.1
+ icss-replace-symbols: 1.1.0
+ mocha: 3.1.2
+ postcss: 8.4.12
+ postcss-modules-extract-imports: 3.0.0
+ postcss-modules-local-by-default: 4.0.0
+ postcss-modules-scope: 3.0.0
+ postcss-modules-values: 4.0.0
+ ts-node: ^10.7.0
+ typescript: ^4.6.2
+
+dependencies:
+ icss-replace-symbols: 1.1.0
+ postcss: 8.4.12
+ postcss-modules-extract-imports: 3.0.0_postcss@8.4.12
+ postcss-modules-local-by-default: 4.0.0_postcss@8.4.12
+ postcss-modules-scope: 3.0.0_postcss@8.4.12
+ postcss-modules-values: 4.0.0_postcss@8.4.12
+
+devDependencies:
+ '@babel/cli': 7.17.6_@babel+core@7.17.8
+ '@babel/core': 7.17.8
+ '@babel/preset-env': 7.16.11_@babel+core@7.17.8
+ '@babel/preset-typescript': 7.16.7_@babel+core@7.17.8
+ '@types/chai': 4.3.0
+ '@types/mocha': 9.1.0
+ '@types/node': 17.0.21
+ babelify: 10.0.0_@babel+core@7.17.8
+ chokidar-cli: 1.1.0
+ eslint: 3.10.1
+ mocha: 3.1.2
+ ts-node: 10.7.0_e79e62fe450383fd2d418267dc75e645
+ typescript: 4.6.2
+
+packages:
+
+ /@ampproject/remapping/2.1.2:
+ resolution: {integrity: sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.4
+ dev: true
+
+ /@babel/cli/7.17.6_@babel+core@7.17.8:
+ resolution: {integrity: sha512-l4w608nsDNlxZhiJ5tE3DbNmr61fIKMZ6fTBo171VEFuFMIYuJ3mHRhTLEkKKyvx2Mizkkv/0a8OJOnZqkKYNA==}
+ engines: {node: '>=6.9.0'}
+ hasBin: true
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@jridgewell/trace-mapping': 0.3.4
+ commander: 4.1.1
+ convert-source-map: 1.8.0
+ fs-readdir-recursive: 1.1.0
+ glob: 7.2.0
+ make-dir: 2.1.0
+ slash: 2.0.0
+ source-map: 0.5.7
+ optionalDependencies:
+ '@nicolo-ribaudo/chokidar-2': 2.1.8-no-fsevents.3
+ chokidar: 3.5.3
+ dev: true
+
+ /@babel/code-frame/7.16.7:
+ resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/highlight': 7.16.10
+ dev: true
+
+ /@babel/compat-data/7.17.7:
+ resolution: {integrity: sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/core/7.17.8:
+ resolution: {integrity: sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@ampproject/remapping': 2.1.2
+ '@babel/code-frame': 7.16.7
+ '@babel/generator': 7.17.7
+ '@babel/helper-compilation-targets': 7.17.7_@babel+core@7.17.8
+ '@babel/helper-module-transforms': 7.17.7
+ '@babel/helpers': 7.17.8
+ '@babel/parser': 7.17.8
+ '@babel/template': 7.16.7
+ '@babel/traverse': 7.17.3
+ '@babel/types': 7.17.0
+ convert-source-map: 1.8.0
+ debug: 4.3.4
+ gensync: 1.0.0-beta.2
+ json5: 2.2.0
+ semver: 6.3.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/generator/7.17.7:
+ resolution: {integrity: sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ jsesc: 2.5.2
+ source-map: 0.5.7
+ dev: true
+
+ /@babel/helper-annotate-as-pure/7.16.7:
+ resolution: {integrity: sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-builder-binary-assignment-operator-visitor/7.16.7:
+ resolution: {integrity: sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-explode-assignable-expression': 7.16.7
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-compilation-targets/7.17.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/compat-data': 7.17.7
+ '@babel/core': 7.17.8
+ '@babel/helper-validator-option': 7.16.7
+ browserslist: 4.20.2
+ semver: 6.3.0
+ dev: true
+
+ /@babel/helper-create-class-features-plugin/7.17.6_@babel+core@7.17.8:
+ resolution: {integrity: sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-annotate-as-pure': 7.16.7
+ '@babel/helper-environment-visitor': 7.16.7
+ '@babel/helper-function-name': 7.16.7
+ '@babel/helper-member-expression-to-functions': 7.17.7
+ '@babel/helper-optimise-call-expression': 7.16.7
+ '@babel/helper-replace-supers': 7.16.7
+ '@babel/helper-split-export-declaration': 7.16.7
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/helper-create-regexp-features-plugin/7.17.0_@babel+core@7.17.8:
+ resolution: {integrity: sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-annotate-as-pure': 7.16.7
+ regexpu-core: 5.0.1
+ dev: true
+
+ /@babel/helper-define-polyfill-provider/0.3.1_@babel+core@7.17.8:
+ resolution: {integrity: sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==}
+ peerDependencies:
+ '@babel/core': ^7.4.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-compilation-targets': 7.17.7_@babel+core@7.17.8
+ '@babel/helper-module-imports': 7.16.7
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/traverse': 7.17.3
+ debug: 4.3.4
+ lodash.debounce: 4.0.8
+ resolve: 1.22.0
+ semver: 6.3.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/helper-environment-visitor/7.16.7:
+ resolution: {integrity: sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-explode-assignable-expression/7.16.7:
+ resolution: {integrity: sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-function-name/7.16.7:
+ resolution: {integrity: sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-get-function-arity': 7.16.7
+ '@babel/template': 7.16.7
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-get-function-arity/7.16.7:
+ resolution: {integrity: sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-hoist-variables/7.16.7:
+ resolution: {integrity: sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-member-expression-to-functions/7.17.7:
+ resolution: {integrity: sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-module-imports/7.16.7:
+ resolution: {integrity: sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-module-transforms/7.17.7:
+ resolution: {integrity: sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-environment-visitor': 7.16.7
+ '@babel/helper-module-imports': 7.16.7
+ '@babel/helper-simple-access': 7.17.7
+ '@babel/helper-split-export-declaration': 7.16.7
+ '@babel/helper-validator-identifier': 7.16.7
+ '@babel/template': 7.16.7
+ '@babel/traverse': 7.17.3
+ '@babel/types': 7.17.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/helper-optimise-call-expression/7.16.7:
+ resolution: {integrity: sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-plugin-utils/7.16.7:
+ resolution: {integrity: sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helper-remap-async-to-generator/7.16.8:
+ resolution: {integrity: sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-annotate-as-pure': 7.16.7
+ '@babel/helper-wrap-function': 7.16.8
+ '@babel/types': 7.17.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/helper-replace-supers/7.16.7:
+ resolution: {integrity: sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-environment-visitor': 7.16.7
+ '@babel/helper-member-expression-to-functions': 7.17.7
+ '@babel/helper-optimise-call-expression': 7.16.7
+ '@babel/traverse': 7.17.3
+ '@babel/types': 7.17.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/helper-simple-access/7.17.7:
+ resolution: {integrity: sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-skip-transparent-expression-wrappers/7.16.0:
+ resolution: {integrity: sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-split-export-declaration/7.16.7:
+ resolution: {integrity: sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/helper-validator-identifier/7.16.7:
+ resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helper-validator-option/7.16.7:
+ resolution: {integrity: sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helper-wrap-function/7.16.8:
+ resolution: {integrity: sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-function-name': 7.16.7
+ '@babel/template': 7.16.7
+ '@babel/traverse': 7.17.3
+ '@babel/types': 7.17.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/helpers/7.17.8:
+ resolution: {integrity: sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/template': 7.16.7
+ '@babel/traverse': 7.17.3
+ '@babel/types': 7.17.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/highlight/7.16.10:
+ resolution: {integrity: sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-validator-identifier': 7.16.7
+ chalk: 2.4.2
+ js-tokens: 4.0.0
+ dev: true
+
+ /@babel/parser/7.17.8:
+ resolution: {integrity: sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+ dev: true
+
+ /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.13.0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/helper-skip-transparent-expression-wrappers': 7.16.0
+ '@babel/plugin-proposal-optional-chaining': 7.16.7_@babel+core@7.17.8
+ dev: true
+
+ /@babel/plugin-proposal-async-generator-functions/7.16.8_@babel+core@7.17.8:
+ resolution: {integrity: sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/helper-remap-async-to-generator': 7.16.8
+ '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.17.8
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-proposal-class-properties/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-create-class-features-plugin': 7.17.6_@babel+core@7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-proposal-class-static-block/7.17.6_@babel+core@7.17.8:
+ resolution: {integrity: sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.12.0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-create-class-features-plugin': 7.17.6_@babel+core@7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.17.8
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-proposal-dynamic-import/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.17.8
+ dev: true
+
+ /@babel/plugin-proposal-export-namespace-from/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.17.8
+ dev: true
+
+ /@babel/plugin-proposal-json-strings/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.17.8
+ dev: true
+
+ /@babel/plugin-proposal-logical-assignment-operators/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.17.8
+ dev: true
+
+ /@babel/plugin-proposal-nullish-coalescing-operator/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.17.8
+ dev: true
+
+ /@babel/plugin-proposal-numeric-separator/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.17.8
+ dev: true
+
+ /@babel/plugin-proposal-object-rest-spread/7.17.3_@babel+core@7.17.8:
+ resolution: {integrity: sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/compat-data': 7.17.7
+ '@babel/core': 7.17.8
+ '@babel/helper-compilation-targets': 7.17.7_@babel+core@7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.17.8
+ '@babel/plugin-transform-parameters': 7.16.7_@babel+core@7.17.8
+ dev: true
+
+ /@babel/plugin-proposal-optional-catch-binding/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.17.8
+ dev: true
+
+ /@babel/plugin-proposal-optional-chaining/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/helper-skip-transparent-expression-wrappers': 7.16.0
+ '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.17.8
+ dev: true
+
+ /@babel/plugin-proposal-private-methods/7.16.11_@babel+core@7.17.8:
+ resolution: {integrity: sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-create-class-features-plugin': 7.17.6_@babel+core@7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-proposal-private-property-in-object/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-annotate-as-pure': 7.16.7
+ '@babel/helper-create-class-features-plugin': 7.17.6_@babel+core@7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.17.8
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-proposal-unicode-property-regex/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.17.8:
+ resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.17.8:
+ resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.17.8:
+ resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.17.8:
+ resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.17.8:
+ resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.17.8:
+ resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.17.8:
+ resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.17.8:
+ resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.17.8:
+ resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.17.8:
+ resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.17.8:
+ resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.17.8:
+ resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.17.8:
+ resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.17.8:
+ resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-syntax-typescript/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-transform-arrow-functions/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-transform-async-to-generator/7.16.8_@babel+core@7.17.8:
+ resolution: {integrity: sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-module-imports': 7.16.7
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/helper-remap-async-to-generator': 7.16.8
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-transform-block-scoped-functions/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-transform-block-scoping/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-transform-classes/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-annotate-as-pure': 7.16.7
+ '@babel/helper-environment-visitor': 7.16.7
+ '@babel/helper-function-name': 7.16.7
+ '@babel/helper-optimise-call-expression': 7.16.7
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/helper-replace-supers': 7.16.7
+ '@babel/helper-split-export-declaration': 7.16.7
+ globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-transform-computed-properties/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-transform-destructuring/7.17.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-transform-dotall-regex/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-transform-duplicate-keys/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-transform-exponentiation-operator/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-builder-binary-assignment-operator-visitor': 7.16.7
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-transform-for-of/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-transform-function-name/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-compilation-targets': 7.17.7_@babel+core@7.17.8
+ '@babel/helper-function-name': 7.16.7
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-transform-literals/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-transform-member-expression-literals/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-transform-modules-amd/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-module-transforms': 7.17.7
+ '@babel/helper-plugin-utils': 7.16.7
+ babel-plugin-dynamic-import-node: 2.3.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-transform-modules-commonjs/7.17.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-ITPmR2V7MqioMJyrxUo2onHNC3e+MvfFiFIR0RP21d3PtlVb6sfzoxNKiphSZUOM9hEIdzCcZe83ieX3yoqjUA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-module-transforms': 7.17.7
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/helper-simple-access': 7.17.7
+ babel-plugin-dynamic-import-node: 2.3.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-transform-modules-systemjs/7.17.8_@babel+core@7.17.8:
+ resolution: {integrity: sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-hoist-variables': 7.16.7
+ '@babel/helper-module-transforms': 7.17.7
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/helper-validator-identifier': 7.16.7
+ babel-plugin-dynamic-import-node: 2.3.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-transform-modules-umd/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-module-transforms': 7.17.7
+ '@babel/helper-plugin-utils': 7.16.7
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-transform-named-capturing-groups-regex/7.16.8_@babel+core@7.17.8:
+ resolution: {integrity: sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.8
+ dev: true
+
+ /@babel/plugin-transform-new-target/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-transform-object-super/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/helper-replace-supers': 7.16.7
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-transform-parameters/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-transform-property-literals/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-transform-regenerator/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ regenerator-transform: 0.14.5
+ dev: true
+
+ /@babel/plugin-transform-reserved-words/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-transform-shorthand-properties/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-transform-spread/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/helper-skip-transparent-expression-wrappers': 7.16.0
+ dev: true
+
+ /@babel/plugin-transform-sticky-regex/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-transform-template-literals/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-transform-typeof-symbol/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-transform-typescript/7.16.8_@babel+core@7.17.8:
+ resolution: {integrity: sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-create-class-features-plugin': 7.17.6_@babel+core@7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/plugin-syntax-typescript': 7.16.7_@babel+core@7.17.8
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/plugin-transform-unicode-escapes/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/plugin-transform-unicode-regex/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-create-regexp-features-plugin': 7.17.0_@babel+core@7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
+ /@babel/preset-env/7.16.11_@babel+core@7.17.8:
+ resolution: {integrity: sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/compat-data': 7.17.7
+ '@babel/core': 7.17.8
+ '@babel/helper-compilation-targets': 7.17.7_@babel+core@7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/helper-validator-option': 7.16.7
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-proposal-async-generator-functions': 7.16.8_@babel+core@7.17.8
+ '@babel/plugin-proposal-class-properties': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-proposal-class-static-block': 7.17.6_@babel+core@7.17.8
+ '@babel/plugin-proposal-dynamic-import': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-proposal-export-namespace-from': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-proposal-json-strings': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-proposal-logical-assignment-operators': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-proposal-nullish-coalescing-operator': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-proposal-numeric-separator': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-proposal-object-rest-spread': 7.17.3_@babel+core@7.17.8
+ '@babel/plugin-proposal-optional-catch-binding': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-proposal-optional-chaining': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-proposal-private-methods': 7.16.11_@babel+core@7.17.8
+ '@babel/plugin-proposal-private-property-in-object': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-proposal-unicode-property-regex': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.17.8
+ '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.17.8
+ '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.17.8
+ '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.17.8
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.17.8
+ '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.17.8
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.17.8
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.17.8
+ '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.17.8
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.17.8
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.17.8
+ '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.17.8
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.17.8
+ '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.17.8
+ '@babel/plugin-transform-arrow-functions': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-async-to-generator': 7.16.8_@babel+core@7.17.8
+ '@babel/plugin-transform-block-scoped-functions': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-block-scoping': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-classes': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-computed-properties': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-destructuring': 7.17.7_@babel+core@7.17.8
+ '@babel/plugin-transform-dotall-regex': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-duplicate-keys': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-exponentiation-operator': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-for-of': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-function-name': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-literals': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-member-expression-literals': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-modules-amd': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-modules-commonjs': 7.17.7_@babel+core@7.17.8
+ '@babel/plugin-transform-modules-systemjs': 7.17.8_@babel+core@7.17.8
+ '@babel/plugin-transform-modules-umd': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.16.8_@babel+core@7.17.8
+ '@babel/plugin-transform-new-target': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-object-super': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-parameters': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-property-literals': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-regenerator': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-reserved-words': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-shorthand-properties': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-spread': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-sticky-regex': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-template-literals': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-typeof-symbol': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-unicode-escapes': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-unicode-regex': 7.16.7_@babel+core@7.17.8
+ '@babel/preset-modules': 0.1.5_@babel+core@7.17.8
+ '@babel/types': 7.17.0
+ babel-plugin-polyfill-corejs2: 0.3.1_@babel+core@7.17.8
+ babel-plugin-polyfill-corejs3: 0.5.2_@babel+core@7.17.8
+ babel-plugin-polyfill-regenerator: 0.3.1_@babel+core@7.17.8
+ core-js-compat: 3.21.1
+ semver: 6.3.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/preset-modules/0.1.5_@babel+core@7.17.8:
+ resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/plugin-proposal-unicode-property-regex': 7.16.7_@babel+core@7.17.8
+ '@babel/plugin-transform-dotall-regex': 7.16.7_@babel+core@7.17.8
+ '@babel/types': 7.17.0
+ esutils: 2.0.3
+ dev: true
+
+ /@babel/preset-typescript/7.16.7_@babel+core@7.17.8:
+ resolution: {integrity: sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/helper-validator-option': 7.16.7
+ '@babel/plugin-transform-typescript': 7.16.8_@babel+core@7.17.8
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/runtime/7.17.8:
+ resolution: {integrity: sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ regenerator-runtime: 0.13.9
+ dev: true
+
+ /@babel/template/7.16.7:
+ resolution: {integrity: sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/code-frame': 7.16.7
+ '@babel/parser': 7.17.8
+ '@babel/types': 7.17.0
+ dev: true
+
+ /@babel/traverse/7.17.3:
+ resolution: {integrity: sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/code-frame': 7.16.7
+ '@babel/generator': 7.17.7
+ '@babel/helper-environment-visitor': 7.16.7
+ '@babel/helper-function-name': 7.16.7
+ '@babel/helper-hoist-variables': 7.16.7
+ '@babel/helper-split-export-declaration': 7.16.7
+ '@babel/parser': 7.17.8
+ '@babel/types': 7.17.0
+ debug: 4.3.4
+ globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/types/7.17.0:
+ resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-validator-identifier': 7.16.7
+ to-fast-properties: 2.0.0
+ dev: true
+
+ /@cspotcode/source-map-consumer/0.8.0:
+ resolution: {integrity: sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==}
+ engines: {node: '>= 12'}
+ dev: true
+
+ /@cspotcode/source-map-support/0.7.0:
+ resolution: {integrity: sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==}
+ engines: {node: '>=12'}
+ dependencies:
+ '@cspotcode/source-map-consumer': 0.8.0
+ dev: true
+
+ /@jridgewell/resolve-uri/3.0.5:
+ resolution: {integrity: sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==}
+ engines: {node: '>=6.0.0'}
+ dev: true
+
+ /@jridgewell/sourcemap-codec/1.4.11:
+ resolution: {integrity: sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==}
+ dev: true
+
+ /@jridgewell/trace-mapping/0.3.4:
+ resolution: {integrity: sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==}
+ dependencies:
+ '@jridgewell/resolve-uri': 3.0.5
+ '@jridgewell/sourcemap-codec': 1.4.11
+ dev: true
+
+ /@nicolo-ribaudo/chokidar-2/2.1.8-no-fsevents.3:
+ resolution: {integrity: sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==}
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@tsconfig/node10/1.0.8:
+ resolution: {integrity: sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==}
+ dev: true
+
+ /@tsconfig/node12/1.0.9:
+ resolution: {integrity: sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==}
+ dev: true
+
+ /@tsconfig/node14/1.0.1:
+ resolution: {integrity: sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==}
+ dev: true
+
+ /@tsconfig/node16/1.0.2:
+ resolution: {integrity: sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==}
+ dev: true
+
+ /@types/chai/4.3.0:
+ resolution: {integrity: sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw==}
+ dev: true
+
+ /@types/mocha/9.1.0:
+ resolution: {integrity: sha512-QCWHkbMv4Y5U9oW10Uxbr45qMMSzl4OzijsozynUAgx3kEHUdXB00udx2dWDQ7f2TU2a2uuiFaRZjCe3unPpeg==}
+ dev: true
+
+ /@types/node/17.0.21:
+ resolution: {integrity: sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==}
+ dev: true
+
+ /acorn-jsx/3.0.1:
+ resolution: {integrity: sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=}
+ dependencies:
+ acorn: 3.3.0
+ dev: true
+
+ /acorn-walk/8.2.0:
+ resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}
+ engines: {node: '>=0.4.0'}
+ dev: true
+
+ /acorn/3.3.0:
+ resolution: {integrity: sha1-ReN/s56No/JbruP/U2niu18iAXo=}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+ dev: true
+
+ /acorn/5.7.4:
+ resolution: {integrity: sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+ dev: true
+
+ /acorn/8.7.0:
+ resolution: {integrity: sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+ dev: true
+
+ /ajv-keywords/1.5.1_ajv@4.11.8:
+ resolution: {integrity: sha1-MU3QpLM2j609/NxU7eYXG4htrzw=}
+ peerDependencies:
+ ajv: '>=4.10.0'
+ dependencies:
+ ajv: 4.11.8
+ dev: true
+
+ /ajv/4.11.8:
+ resolution: {integrity: sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=}
+ dependencies:
+ co: 4.6.0
+ json-stable-stringify: 1.0.1
+ dev: true
+
+ /ansi-escapes/1.4.0:
+ resolution: {integrity: sha1-06ioOzGapneTZisT52HHkRQiMG4=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /ansi-regex/2.1.1:
+ resolution: {integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /ansi-regex/3.0.0:
+ resolution: {integrity: sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=}
+ engines: {node: '>=4'}
+ dev: true
+
+ /ansi-styles/2.2.1:
+ resolution: {integrity: sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /ansi-styles/3.2.1:
+ resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
+ engines: {node: '>=4'}
+ dependencies:
+ color-convert: 1.9.3
+ dev: true
+
+ /anymatch/1.3.2:
+ resolution: {integrity: sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==}
+ dependencies:
+ micromatch: 2.3.11
+ normalize-path: 2.1.1
+ dev: true
+
+ /anymatch/3.1.2:
+ resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==}
+ engines: {node: '>= 8'}
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+ dev: true
+ optional: true
+
+ /arg/4.1.3:
+ resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
+ dev: true
+
+ /argparse/1.0.10:
+ resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
+ dependencies:
+ sprintf-js: 1.0.3
+ dev: true
+
+ /arr-diff/2.0.0:
+ resolution: {integrity: sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ arr-flatten: 1.1.0
+ dev: true
+
+ /arr-diff/4.0.0:
+ resolution: {integrity: sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /arr-flatten/1.1.0:
+ resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /arr-union/3.1.0:
+ resolution: {integrity: sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /array-unique/0.2.1:
+ resolution: {integrity: sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /array-unique/0.3.2:
+ resolution: {integrity: sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /assign-symbols/1.0.0:
+ resolution: {integrity: sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /async-each/1.0.3:
+ resolution: {integrity: sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==}
+ dev: true
+
+ /atob/2.1.2:
+ resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==}
+ engines: {node: '>= 4.5.0'}
+ hasBin: true
+ dev: true
+
+ /babel-code-frame/6.26.0:
+ resolution: {integrity: sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=}
+ dependencies:
+ chalk: 1.1.3
+ esutils: 2.0.3
+ js-tokens: 3.0.2
+ dev: true
+
+ /babel-plugin-dynamic-import-node/2.3.3:
+ resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==}
+ dependencies:
+ object.assign: 4.1.2
+ dev: true
+
+ /babel-plugin-polyfill-corejs2/0.3.1_@babel+core@7.17.8:
+ resolution: {integrity: sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/compat-data': 7.17.7
+ '@babel/core': 7.17.8
+ '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.17.8
+ semver: 6.3.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /babel-plugin-polyfill-corejs3/0.5.2_@babel+core@7.17.8:
+ resolution: {integrity: sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.17.8
+ core-js-compat: 3.21.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /babel-plugin-polyfill-regenerator/0.3.1_@babel+core@7.17.8:
+ resolution: {integrity: sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.17.8
+ '@babel/helper-define-polyfill-provider': 0.3.1_@babel+core@7.17.8
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /babelify/10.0.0_@babel+core@7.17.8:
+ resolution: {integrity: sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.17.8
+ dev: true
+
+ /balanced-match/1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+ dev: true
+
+ /base/0.11.2:
+ resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ cache-base: 1.0.1
+ class-utils: 0.3.6
+ component-emitter: 1.3.0
+ define-property: 1.0.0
+ isobject: 3.0.1
+ mixin-deep: 1.3.2
+ pascalcase: 0.1.1
+ dev: true
+
+ /binary-extensions/1.13.1:
+ resolution: {integrity: sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /binary-extensions/2.2.0:
+ resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
+ engines: {node: '>=8'}
+ dev: true
+ optional: true
+
+ /bindings/1.5.0:
+ resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
+ requiresBuild: true
+ dependencies:
+ file-uri-to-path: 1.0.0
+ dev: true
+ optional: true
+
+ /bluebird/2.11.0:
+ resolution: {integrity: sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=}
+ dev: true
+
+ /brace-expansion/1.1.11:
+ resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+ dev: true
+
+ /braces/1.8.5:
+ resolution: {integrity: sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ expand-range: 1.8.2
+ preserve: 0.2.0
+ repeat-element: 1.1.4
+ dev: true
+
+ /braces/2.3.2:
+ resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ arr-flatten: 1.1.0
+ array-unique: 0.3.2
+ extend-shallow: 2.0.1
+ fill-range: 4.0.0
+ isobject: 3.0.1
+ repeat-element: 1.1.4
+ snapdragon: 0.8.2
+ snapdragon-node: 2.1.1
+ split-string: 3.1.0
+ to-regex: 3.0.2
+ dev: true
+
+ /braces/3.0.2:
+ resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
+ engines: {node: '>=8'}
+ dependencies:
+ fill-range: 7.0.1
+ dev: true
+ optional: true
+
+ /browser-stdout/1.3.0:
+ resolution: {integrity: sha1-81HTKWnTL6XXpVZxVCY9korjvR8=}
+ dev: true
+
+ /browserslist/4.20.2:
+ resolution: {integrity: sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+ dependencies:
+ caniuse-lite: 1.0.30001319
+ electron-to-chromium: 1.4.88
+ escalade: 3.1.1
+ node-releases: 2.0.2
+ picocolors: 1.0.0
+ dev: true
+
+ /buffer-from/1.1.2:
+ resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+ dev: true
+
+ /cache-base/1.0.1:
+ resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ collection-visit: 1.0.0
+ component-emitter: 1.3.0
+ get-value: 2.0.6
+ has-value: 1.0.0
+ isobject: 3.0.1
+ set-value: 2.0.1
+ to-object-path: 0.3.0
+ union-value: 1.0.1
+ unset-value: 1.0.0
+ dev: true
+
+ /call-bind/1.0.2:
+ resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
+ dependencies:
+ function-bind: 1.1.1
+ get-intrinsic: 1.1.1
+ dev: true
+
+ /caller-path/0.1.0:
+ resolution: {integrity: sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ callsites: 0.2.0
+ dev: true
+
+ /callsites/0.2.0:
+ resolution: {integrity: sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /camelcase/2.1.1:
+ resolution: {integrity: sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /caniuse-lite/1.0.30001319:
+ resolution: {integrity: sha512-xjlIAFHucBRSMUo1kb5D4LYgcN1M45qdKP++lhqowDpwJwGkpIRTt5qQqnhxjj1vHcI7nrJxWhCC1ATrCEBTcw==}
+ dev: true
+
+ /chalk/1.1.3:
+ resolution: {integrity: sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ ansi-styles: 2.2.1
+ escape-string-regexp: 1.0.5
+ has-ansi: 2.0.0
+ strip-ansi: 3.0.1
+ supports-color: 2.0.0
+ dev: true
+
+ /chalk/2.4.2:
+ resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
+ engines: {node: '>=4'}
+ dependencies:
+ ansi-styles: 3.2.1
+ escape-string-regexp: 1.0.5
+ supports-color: 5.5.0
+ dev: true
+
+ /chokidar-cli/1.1.0:
+ resolution: {integrity: sha1-RbCzK7n9OrbFV9qCgOsYgMeXQTI=}
+ hasBin: true
+ dependencies:
+ anymatch: 1.3.2
+ bluebird: 2.11.0
+ chokidar: 1.7.0
+ lodash: 3.10.1
+ shell-quote: 1.7.3
+ yargs: 3.32.0
+ dev: true
+
+ /chokidar/1.7.0:
+ resolution: {integrity: sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=}
+ deprecated: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
+ dependencies:
+ anymatch: 1.3.2
+ async-each: 1.0.3
+ glob-parent: 2.0.0
+ inherits: 2.0.4
+ is-binary-path: 1.0.1
+ is-glob: 2.0.1
+ path-is-absolute: 1.0.1
+ readdirp: 2.2.1
+ optionalDependencies:
+ fsevents: 1.2.13
+ dev: true
+
+ /chokidar/3.5.3:
+ resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
+ engines: {node: '>= 8.10.0'}
+ requiresBuild: true
+ dependencies:
+ anymatch: 3.1.2
+ braces: 3.0.2
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.2
+ dev: true
+ optional: true
+
+ /circular-json/0.3.3:
+ resolution: {integrity: sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==}
+ deprecated: CircularJSON is in maintenance only, flatted is its successor.
+ dev: true
+
+ /class-utils/0.3.6:
+ resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ arr-union: 3.1.0
+ define-property: 0.2.5
+ isobject: 3.0.1
+ static-extend: 0.1.2
+ dev: true
+
+ /cli-cursor/1.0.2:
+ resolution: {integrity: sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ restore-cursor: 1.0.1
+ dev: true
+
+ /cli-width/2.2.1:
+ resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==}
+ dev: true
+
+ /cliui/3.2.0:
+ resolution: {integrity: sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=}
+ dependencies:
+ string-width: 1.0.2
+ strip-ansi: 3.0.1
+ wrap-ansi: 2.1.0
+ dev: true
+
+ /co/4.6.0:
+ resolution: {integrity: sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=}
+ engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
+ dev: true
+
+ /code-point-at/1.1.0:
+ resolution: {integrity: sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /collection-visit/1.0.0:
+ resolution: {integrity: sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ map-visit: 1.0.0
+ object-visit: 1.0.1
+ dev: true
+
+ /color-convert/1.9.3:
+ resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
+ dependencies:
+ color-name: 1.1.3
+ dev: true
+
+ /color-name/1.1.3:
+ resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=}
+ dev: true
+
+ /commander/2.9.0:
+ resolution: {integrity: sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=}
+ engines: {node: '>= 0.6.x'}
+ dependencies:
+ graceful-readlink: 1.0.1
+ dev: true
+
+ /commander/4.1.1:
+ resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
+ engines: {node: '>= 6'}
+ dev: true
+
+ /component-emitter/1.3.0:
+ resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==}
+ dev: true
+
+ /concat-map/0.0.1:
+ resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
+ dev: true
+
+ /concat-stream/1.6.2:
+ resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==}
+ engines: {'0': node >= 0.8}
+ dependencies:
+ buffer-from: 1.1.2
+ inherits: 2.0.4
+ readable-stream: 2.3.7
+ typedarray: 0.0.6
+ dev: true
+
+ /convert-source-map/1.8.0:
+ resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==}
+ dependencies:
+ safe-buffer: 5.1.2
+ dev: true
+
+ /copy-descriptor/0.1.1:
+ resolution: {integrity: sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /core-js-compat/3.21.1:
+ resolution: {integrity: sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==}
+ dependencies:
+ browserslist: 4.20.2
+ semver: 7.0.0
+ dev: true
+
+ /core-util-is/1.0.3:
+ resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
+ dev: true
+
+ /create-require/1.1.1:
+ resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
+ dev: true
+
+ /cssesc/3.0.0:
+ resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
+ engines: {node: '>=4'}
+ hasBin: true
+ dev: false
+
+ /d/1.0.1:
+ resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==}
+ dependencies:
+ es5-ext: 0.10.59
+ type: 1.2.0
+ dev: true
+
+ /debug/2.2.0:
+ resolution: {integrity: sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=}
+ dependencies:
+ ms: 0.7.1
+ dev: true
+
+ /debug/2.6.9:
+ resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
+ dependencies:
+ ms: 2.0.0
+ dev: true
+
+ /debug/4.3.4:
+ resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.2
+ dev: true
+
+ /decamelize/1.2.0:
+ resolution: {integrity: sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /decode-uri-component/0.2.0:
+ resolution: {integrity: sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=}
+ engines: {node: '>=0.10'}
+ dev: true
+
+ /deep-is/0.1.4:
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+ dev: true
+
+ /define-properties/1.1.3:
+ resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ object-keys: 1.1.1
+ dev: true
+
+ /define-property/0.2.5:
+ resolution: {integrity: sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-descriptor: 0.1.6
+ dev: true
+
+ /define-property/1.0.0:
+ resolution: {integrity: sha1-dp66rz9KY6rTr56NMEybvnm/sOY=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-descriptor: 1.0.2
+ dev: true
+
+ /define-property/2.0.2:
+ resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-descriptor: 1.0.2
+ isobject: 3.0.1
+ dev: true
+
+ /diff/1.4.0:
+ resolution: {integrity: sha1-fyjS657nsVqX79ic5j3P2qPMur8=}
+ engines: {node: '>=0.3.1'}
+ dev: true
+
+ /diff/4.0.2:
+ resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
+ engines: {node: '>=0.3.1'}
+ dev: true
+
+ /doctrine/1.5.0:
+ resolution: {integrity: sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ esutils: 2.0.3
+ isarray: 1.0.0
+ dev: true
+
+ /electron-to-chromium/1.4.88:
+ resolution: {integrity: sha512-oA7mzccefkvTNi9u7DXmT0LqvhnOiN2BhSrKerta7HeUC1cLoIwtbf2wL+Ah2ozh5KQd3/1njrGrwDBXx6d14Q==}
+ dev: true
+
+ /es5-ext/0.10.59:
+ resolution: {integrity: sha512-cOgyhW0tIJyQY1Kfw6Kr0viu9ZlUctVchRMZ7R0HiH3dxTSp5zJDLecwxUqPUrGKMsgBI1wd1FL+d9Jxfi4cLw==}
+ engines: {node: '>=0.10'}
+ requiresBuild: true
+ dependencies:
+ es6-iterator: 2.0.3
+ es6-symbol: 3.1.3
+ next-tick: 1.1.0
+ dev: true
+
+ /es6-iterator/2.0.3:
+ resolution: {integrity: sha1-p96IkUGgWpSwhUQDstCg+/qY87c=}
+ dependencies:
+ d: 1.0.1
+ es5-ext: 0.10.59
+ es6-symbol: 3.1.3
+ dev: true
+
+ /es6-map/0.1.5:
+ resolution: {integrity: sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=}
+ dependencies:
+ d: 1.0.1
+ es5-ext: 0.10.59
+ es6-iterator: 2.0.3
+ es6-set: 0.1.5
+ es6-symbol: 3.1.3
+ event-emitter: 0.3.5
+ dev: true
+
+ /es6-set/0.1.5:
+ resolution: {integrity: sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=}
+ dependencies:
+ d: 1.0.1
+ es5-ext: 0.10.59
+ es6-iterator: 2.0.3
+ es6-symbol: 3.1.1
+ event-emitter: 0.3.5
+ dev: true
+
+ /es6-symbol/3.1.1:
+ resolution: {integrity: sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=}
+ dependencies:
+ d: 1.0.1
+ es5-ext: 0.10.59
+ dev: true
+
+ /es6-symbol/3.1.3:
+ resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==}
+ dependencies:
+ d: 1.0.1
+ ext: 1.6.0
+ dev: true
+
+ /es6-weak-map/2.0.3:
+ resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==}
+ dependencies:
+ d: 1.0.1
+ es5-ext: 0.10.59
+ es6-iterator: 2.0.3
+ es6-symbol: 3.1.3
+ dev: true
+
+ /escalade/3.1.1:
+ resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /escape-string-regexp/1.0.5:
+ resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=}
+ engines: {node: '>=0.8.0'}
+ dev: true
+
+ /escope/3.6.0:
+ resolution: {integrity: sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=}
+ engines: {node: '>=0.4.0'}
+ dependencies:
+ es6-map: 0.1.5
+ es6-weak-map: 2.0.3
+ esrecurse: 4.3.0
+ estraverse: 4.3.0
+ dev: true
+
+ /eslint/3.10.1:
+ resolution: {integrity: sha1-ZVRMfBcZhomfqKj5q9cbrfeYG6A=}
+ engines: {node: '>=4'}
+ hasBin: true
+ dependencies:
+ babel-code-frame: 6.26.0
+ chalk: 1.1.3
+ concat-stream: 1.6.2
+ debug: 2.6.9
+ doctrine: 1.5.0
+ escope: 3.6.0
+ espree: 3.5.4
+ estraverse: 4.3.0
+ esutils: 2.0.3
+ file-entry-cache: 2.0.0
+ glob: 7.2.0
+ globals: 9.18.0
+ ignore: 3.3.10
+ imurmurhash: 0.1.4
+ inquirer: 0.12.0
+ is-my-json-valid: 2.20.6
+ is-resolvable: 1.1.0
+ js-yaml: 3.14.1
+ json-stable-stringify: 1.0.1
+ levn: 0.3.0
+ lodash: 4.17.21
+ mkdirp: 0.5.5
+ natural-compare: 1.4.0
+ optionator: 0.8.3
+ path-is-inside: 1.0.2
+ pluralize: 1.2.1
+ progress: 1.1.8
+ require-uncached: 1.0.3
+ shelljs: 0.7.8
+ strip-bom: 3.0.0
+ strip-json-comments: 1.0.4
+ table: 3.8.3
+ text-table: 0.2.0
+ user-home: 2.0.0
+ dev: true
+
+ /espree/3.5.4:
+ resolution: {integrity: sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ acorn: 5.7.4
+ acorn-jsx: 3.0.1
+ dev: true
+
+ /esprima/4.0.1:
+ resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
+ engines: {node: '>=4'}
+ hasBin: true
+ dev: true
+
+ /esrecurse/4.3.0:
+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
+ engines: {node: '>=4.0'}
+ dependencies:
+ estraverse: 5.3.0
+ dev: true
+
+ /estraverse/4.3.0:
+ resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
+ engines: {node: '>=4.0'}
+ dev: true
+
+ /estraverse/5.3.0:
+ resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
+ engines: {node: '>=4.0'}
+ dev: true
+
+ /esutils/2.0.3:
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /event-emitter/0.3.5:
+ resolution: {integrity: sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=}
+ dependencies:
+ d: 1.0.1
+ es5-ext: 0.10.59
+ dev: true
+
+ /exit-hook/1.1.1:
+ resolution: {integrity: sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /expand-brackets/0.1.5:
+ resolution: {integrity: sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-posix-bracket: 0.1.1
+ dev: true
+
+ /expand-brackets/2.1.4:
+ resolution: {integrity: sha1-t3c14xXOMPa27/D4OwQVGiJEliI=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ debug: 2.6.9
+ define-property: 0.2.5
+ extend-shallow: 2.0.1
+ posix-character-classes: 0.1.1
+ regex-not: 1.0.2
+ snapdragon: 0.8.2
+ to-regex: 3.0.2
+ dev: true
+
+ /expand-range/1.8.2:
+ resolution: {integrity: sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ fill-range: 2.2.4
+ dev: true
+
+ /ext/1.6.0:
+ resolution: {integrity: sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==}
+ dependencies:
+ type: 2.6.0
+ dev: true
+
+ /extend-shallow/2.0.1:
+ resolution: {integrity: sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-extendable: 0.1.1
+ dev: true
+
+ /extend-shallow/3.0.2:
+ resolution: {integrity: sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ assign-symbols: 1.0.0
+ is-extendable: 1.0.1
+ dev: true
+
+ /extglob/0.3.2:
+ resolution: {integrity: sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-extglob: 1.0.0
+ dev: true
+
+ /extglob/2.0.4:
+ resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ array-unique: 0.3.2
+ define-property: 1.0.0
+ expand-brackets: 2.1.4
+ extend-shallow: 2.0.1
+ fragment-cache: 0.2.1
+ regex-not: 1.0.2
+ snapdragon: 0.8.2
+ to-regex: 3.0.2
+ dev: true
+
+ /fast-levenshtein/2.0.6:
+ resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=}
+ dev: true
+
+ /figures/1.7.0:
+ resolution: {integrity: sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ escape-string-regexp: 1.0.5
+ object-assign: 4.1.1
+ dev: true
+
+ /file-entry-cache/2.0.0:
+ resolution: {integrity: sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ flat-cache: 1.3.4
+ object-assign: 4.1.1
+ dev: true
+
+ /file-uri-to-path/1.0.0:
+ resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /filename-regex/2.0.1:
+ resolution: {integrity: sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /fill-range/2.2.4:
+ resolution: {integrity: sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-number: 2.1.0
+ isobject: 2.1.0
+ randomatic: 3.1.1
+ repeat-element: 1.1.4
+ repeat-string: 1.6.1
+ dev: true
+
+ /fill-range/4.0.0:
+ resolution: {integrity: sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ extend-shallow: 2.0.1
+ is-number: 3.0.0
+ repeat-string: 1.6.1
+ to-regex-range: 2.1.1
+ dev: true
+
+ /fill-range/7.0.1:
+ resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ to-regex-range: 5.0.1
+ dev: true
+ optional: true
+
+ /flat-cache/1.3.4:
+ resolution: {integrity: sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ circular-json: 0.3.3
+ graceful-fs: 4.2.9
+ rimraf: 2.6.3
+ write: 0.2.1
+ dev: true
+
+ /for-in/1.0.2:
+ resolution: {integrity: sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /for-own/0.1.5:
+ resolution: {integrity: sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ for-in: 1.0.2
+ dev: true
+
+ /fragment-cache/0.2.1:
+ resolution: {integrity: sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ map-cache: 0.2.2
+ dev: true
+
+ /fs-readdir-recursive/1.1.0:
+ resolution: {integrity: sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==}
+ dev: true
+
+ /fs.realpath/1.0.0:
+ resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=}
+ dev: true
+
+ /fsevents/1.2.13:
+ resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==}
+ engines: {node: '>= 4.0'}
+ os: [darwin]
+ deprecated: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
+ requiresBuild: true
+ dependencies:
+ bindings: 1.5.0
+ nan: 2.15.0
+ dev: true
+ optional: true
+
+ /fsevents/2.3.2:
+ resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /function-bind/1.1.1:
+ resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
+ dev: true
+
+ /generate-function/2.3.1:
+ resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==}
+ dependencies:
+ is-property: 1.0.2
+ dev: true
+
+ /generate-object-property/1.2.0:
+ resolution: {integrity: sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=}
+ dependencies:
+ is-property: 1.0.2
+ dev: true
+
+ /gensync/1.0.0-beta.2:
+ resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /get-intrinsic/1.1.1:
+ resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==}
+ dependencies:
+ function-bind: 1.1.1
+ has: 1.0.3
+ has-symbols: 1.0.3
+ dev: true
+
+ /get-value/2.0.6:
+ resolution: {integrity: sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /glob-base/0.3.0:
+ resolution: {integrity: sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ glob-parent: 2.0.0
+ is-glob: 2.0.1
+ dev: true
+
+ /glob-parent/2.0.0:
+ resolution: {integrity: sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=}
+ dependencies:
+ is-glob: 2.0.1
+ dev: true
+
+ /glob-parent/5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+ dependencies:
+ is-glob: 4.0.3
+ dev: true
+ optional: true
+
+ /glob/7.0.5:
+ resolution: {integrity: sha1-tCAqaQmbu00pKnwblbZoK2fr3JU=}
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+ dev: true
+
+ /glob/7.2.0:
+ resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==}
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+ dev: true
+
+ /globals/11.12.0:
+ resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /globals/9.18.0:
+ resolution: {integrity: sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /graceful-fs/4.2.9:
+ resolution: {integrity: sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==}
+ dev: true
+
+ /graceful-readlink/1.0.1:
+ resolution: {integrity: sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=}
+ dev: true
+
+ /growl/1.9.2:
+ resolution: {integrity: sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=}
+ dev: true
+
+ /has-ansi/2.0.0:
+ resolution: {integrity: sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ ansi-regex: 2.1.1
+ dev: true
+
+ /has-flag/1.0.0:
+ resolution: {integrity: sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /has-flag/3.0.0:
+ resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=}
+ engines: {node: '>=4'}
+ dev: true
+
+ /has-symbols/1.0.3:
+ resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /has-value/0.3.1:
+ resolution: {integrity: sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ get-value: 2.0.6
+ has-values: 0.1.4
+ isobject: 2.1.0
+ dev: true
+
+ /has-value/1.0.0:
+ resolution: {integrity: sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ get-value: 2.0.6
+ has-values: 1.0.0
+ isobject: 3.0.1
+ dev: true
+
+ /has-values/0.1.4:
+ resolution: {integrity: sha1-bWHeldkd/Km5oCCJrThL/49it3E=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /has-values/1.0.0:
+ resolution: {integrity: sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-number: 3.0.0
+ kind-of: 4.0.0
+ dev: true
+
+ /has/1.0.3:
+ resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
+ engines: {node: '>= 0.4.0'}
+ dependencies:
+ function-bind: 1.1.1
+ dev: true
+
+ /icss-replace-symbols/1.1.0:
+ resolution: {integrity: sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=}
+ dev: false
+
+ /icss-utils/5.1.0_postcss@8.4.12:
+ resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==}
+ engines: {node: ^10 || ^12 || >= 14}
+ peerDependencies:
+ postcss: ^8.1.0
+ dependencies:
+ postcss: 8.4.12
+ dev: false
+
+ /ignore/3.3.10:
+ resolution: {integrity: sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==}
+ dev: true
+
+ /imurmurhash/0.1.4:
+ resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=}
+ engines: {node: '>=0.8.19'}
+ dev: true
+
+ /inflight/1.0.6:
+ resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=}
+ dependencies:
+ once: 1.4.0
+ wrappy: 1.0.2
+ dev: true
+
+ /inherits/2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+ dev: true
+
+ /inquirer/0.12.0:
+ resolution: {integrity: sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=}
+ dependencies:
+ ansi-escapes: 1.4.0
+ ansi-regex: 2.1.1
+ chalk: 1.1.3
+ cli-cursor: 1.0.2
+ cli-width: 2.2.1
+ figures: 1.7.0
+ lodash: 4.17.21
+ readline2: 1.0.1
+ run-async: 0.1.0
+ rx-lite: 3.1.2
+ string-width: 1.0.2
+ strip-ansi: 3.0.1
+ through: 2.3.8
+ dev: true
+
+ /interpret/1.4.0:
+ resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==}
+ engines: {node: '>= 0.10'}
+ dev: true
+
+ /invert-kv/1.0.0:
+ resolution: {integrity: sha1-EEqOSqym09jNFXqO+L+rLXo//bY=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /is-accessor-descriptor/0.1.6:
+ resolution: {integrity: sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ kind-of: 3.2.2
+ dev: true
+
+ /is-accessor-descriptor/1.0.0:
+ resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ kind-of: 6.0.3
+ dev: true
+
+ /is-binary-path/1.0.1:
+ resolution: {integrity: sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ binary-extensions: 1.13.1
+ dev: true
+
+ /is-binary-path/2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+ dependencies:
+ binary-extensions: 2.2.0
+ dev: true
+ optional: true
+
+ /is-buffer/1.1.6:
+ resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==}
+ dev: true
+
+ /is-core-module/2.8.1:
+ resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==}
+ dependencies:
+ has: 1.0.3
+ dev: true
+
+ /is-data-descriptor/0.1.4:
+ resolution: {integrity: sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ kind-of: 3.2.2
+ dev: true
+
+ /is-data-descriptor/1.0.0:
+ resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ kind-of: 6.0.3
+ dev: true
+
+ /is-descriptor/0.1.6:
+ resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-accessor-descriptor: 0.1.6
+ is-data-descriptor: 0.1.4
+ kind-of: 5.1.0
+ dev: true
+
+ /is-descriptor/1.0.2:
+ resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-accessor-descriptor: 1.0.0
+ is-data-descriptor: 1.0.0
+ kind-of: 6.0.3
+ dev: true
+
+ /is-dotfile/1.0.3:
+ resolution: {integrity: sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /is-equal-shallow/0.1.3:
+ resolution: {integrity: sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-primitive: 2.0.0
+ dev: true
+
+ /is-extendable/0.1.1:
+ resolution: {integrity: sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /is-extendable/1.0.1:
+ resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-plain-object: 2.0.4
+ dev: true
+
+ /is-extglob/1.0.0:
+ resolution: {integrity: sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /is-extglob/2.1.1:
+ resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+ optional: true
+
+ /is-fullwidth-code-point/1.0.0:
+ resolution: {integrity: sha1-754xOG8DGn8NZDr4L95QxFfvAMs=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ number-is-nan: 1.0.1
+ dev: true
+
+ /is-fullwidth-code-point/2.0.0:
+ resolution: {integrity: sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=}
+ engines: {node: '>=4'}
+ dev: true
+
+ /is-glob/2.0.1:
+ resolution: {integrity: sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-extglob: 1.0.0
+ dev: true
+
+ /is-glob/4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-extglob: 2.1.1
+ dev: true
+ optional: true
+
+ /is-my-ip-valid/1.0.1:
+ resolution: {integrity: sha512-jxc8cBcOWbNK2i2aTkCZP6i7wkHF1bqKFrwEHuN5Jtg5BSaZHUZQ/JTOJwoV41YvHnOaRyWWh72T/KvfNz9DJg==}
+ dev: true
+
+ /is-my-json-valid/2.20.6:
+ resolution: {integrity: sha512-1JQwulVNjx8UqkPE/bqDaxtH4PXCe/2VRh/y3p99heOV87HG4Id5/VfDswd+YiAfHcRTfDlWgISycnHuhZq1aw==}
+ dependencies:
+ generate-function: 2.3.1
+ generate-object-property: 1.2.0
+ is-my-ip-valid: 1.0.1
+ jsonpointer: 5.0.0
+ xtend: 4.0.2
+ dev: true
+
+ /is-number/2.1.0:
+ resolution: {integrity: sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ kind-of: 3.2.2
+ dev: true
+
+ /is-number/3.0.0:
+ resolution: {integrity: sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ kind-of: 3.2.2
+ dev: true
+
+ /is-number/4.0.0:
+ resolution: {integrity: sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /is-number/7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+ dev: true
+ optional: true
+
+ /is-plain-object/2.0.4:
+ resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ isobject: 3.0.1
+ dev: true
+
+ /is-posix-bracket/0.1.1:
+ resolution: {integrity: sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /is-primitive/2.0.0:
+ resolution: {integrity: sha1-IHurkWOEmcB7Kt8kCkGochADRXU=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /is-property/1.0.2:
+ resolution: {integrity: sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=}
+ dev: true
+
+ /is-resolvable/1.1.0:
+ resolution: {integrity: sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==}
+ dev: true
+
+ /is-windows/1.0.2:
+ resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /isarray/1.0.0:
+ resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=}
+ dev: true
+
+ /isobject/2.1.0:
+ resolution: {integrity: sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ isarray: 1.0.0
+ dev: true
+
+ /isobject/3.0.1:
+ resolution: {integrity: sha1-TkMekrEalzFjaqH5yNHMvP2reN8=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /js-tokens/3.0.2:
+ resolution: {integrity: sha1-mGbfOVECEw449/mWvOtlRDIJwls=}
+ dev: true
+
+ /js-tokens/4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+ dev: true
+
+ /js-yaml/3.14.1:
+ resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
+ hasBin: true
+ dependencies:
+ argparse: 1.0.10
+ esprima: 4.0.1
+ dev: true
+
+ /jsesc/0.5.0:
+ resolution: {integrity: sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=}
+ hasBin: true
+ dev: true
+
+ /jsesc/2.5.2:
+ resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
+ engines: {node: '>=4'}
+ hasBin: true
+ dev: true
+
+ /json-stable-stringify/1.0.1:
+ resolution: {integrity: sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=}
+ dependencies:
+ jsonify: 0.0.0
+ dev: true
+
+ /json3/3.3.2:
+ resolution: {integrity: sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=}
+ deprecated: Please use the native JSON object instead of JSON 3
+ dev: true
+
+ /json5/2.2.0:
+ resolution: {integrity: sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==}
+ engines: {node: '>=6'}
+ hasBin: true
+ dependencies:
+ minimist: 1.2.5
+ dev: true
+
+ /jsonify/0.0.0:
+ resolution: {integrity: sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=}
+ dev: true
+
+ /jsonpointer/5.0.0:
+ resolution: {integrity: sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /kind-of/3.2.2:
+ resolution: {integrity: sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-buffer: 1.1.6
+ dev: true
+
+ /kind-of/4.0.0:
+ resolution: {integrity: sha1-IIE989cSkosgc3hpGkUGb65y3Vc=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-buffer: 1.1.6
+ dev: true
+
+ /kind-of/5.1.0:
+ resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /kind-of/6.0.3:
+ resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /lcid/1.0.0:
+ resolution: {integrity: sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ invert-kv: 1.0.0
+ dev: true
+
+ /levn/0.3.0:
+ resolution: {integrity: sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ prelude-ls: 1.1.2
+ type-check: 0.3.2
+ dev: true
+
+ /lodash._baseassign/3.2.0:
+ resolution: {integrity: sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=}
+ dependencies:
+ lodash._basecopy: 3.0.1
+ lodash.keys: 3.1.2
+ dev: true
+
+ /lodash._basecopy/3.0.1:
+ resolution: {integrity: sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=}
+ dev: true
+
+ /lodash._basecreate/3.0.3:
+ resolution: {integrity: sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=}
+ dev: true
+
+ /lodash._getnative/3.9.1:
+ resolution: {integrity: sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=}
+ dev: true
+
+ /lodash._isiterateecall/3.0.9:
+ resolution: {integrity: sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=}
+ dev: true
+
+ /lodash.create/3.1.1:
+ resolution: {integrity: sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=}
+ dependencies:
+ lodash._baseassign: 3.2.0
+ lodash._basecreate: 3.0.3
+ lodash._isiterateecall: 3.0.9
+ dev: true
+
+ /lodash.debounce/4.0.8:
+ resolution: {integrity: sha1-gteb/zCmfEAF/9XiUVMArZyk168=}
+ dev: true
+
+ /lodash.isarguments/3.1.0:
+ resolution: {integrity: sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=}
+ dev: true
+
+ /lodash.isarray/3.0.4:
+ resolution: {integrity: sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=}
+ dev: true
+
+ /lodash.keys/3.1.2:
+ resolution: {integrity: sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=}
+ dependencies:
+ lodash._getnative: 3.9.1
+ lodash.isarguments: 3.1.0
+ lodash.isarray: 3.0.4
+ dev: true
+
+ /lodash/3.10.1:
+ resolution: {integrity: sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=}
+ dev: true
+
+ /lodash/4.17.21:
+ resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+ dev: true
+
+ /make-dir/2.1.0:
+ resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==}
+ engines: {node: '>=6'}
+ dependencies:
+ pify: 4.0.1
+ semver: 5.7.1
+ dev: true
+
+ /make-error/1.3.6:
+ resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
+ dev: true
+
+ /map-cache/0.2.2:
+ resolution: {integrity: sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /map-visit/1.0.0:
+ resolution: {integrity: sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ object-visit: 1.0.1
+ dev: true
+
+ /math-random/1.0.4:
+ resolution: {integrity: sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==}
+ dev: true
+
+ /micromatch/2.3.11:
+ resolution: {integrity: sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ arr-diff: 2.0.0
+ array-unique: 0.2.1
+ braces: 1.8.5
+ expand-brackets: 0.1.5
+ extglob: 0.3.2
+ filename-regex: 2.0.1
+ is-extglob: 1.0.0
+ is-glob: 2.0.1
+ kind-of: 3.2.2
+ normalize-path: 2.1.1
+ object.omit: 2.0.1
+ parse-glob: 3.0.4
+ regex-cache: 0.4.4
+ dev: true
+
+ /micromatch/3.1.10:
+ resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ arr-diff: 4.0.0
+ array-unique: 0.3.2
+ braces: 2.3.2
+ define-property: 2.0.2
+ extend-shallow: 3.0.2
+ extglob: 2.0.4
+ fragment-cache: 0.2.1
+ kind-of: 6.0.3
+ nanomatch: 1.2.13
+ object.pick: 1.3.0
+ regex-not: 1.0.2
+ snapdragon: 0.8.2
+ to-regex: 3.0.2
+ dev: true
+
+ /minimatch/3.1.2:
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+ dependencies:
+ brace-expansion: 1.1.11
+ dev: true
+
+ /minimist/0.0.8:
+ resolution: {integrity: sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=}
+ dev: true
+
+ /minimist/1.2.5:
+ resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==}
+ dev: true
+
+ /mixin-deep/1.3.2:
+ resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ for-in: 1.0.2
+ is-extendable: 1.0.1
+ dev: true
+
+ /mkdirp/0.5.1:
+ resolution: {integrity: sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=}
+ deprecated: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
+ hasBin: true
+ dependencies:
+ minimist: 0.0.8
+ dev: true
+
+ /mkdirp/0.5.5:
+ resolution: {integrity: sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==}
+ hasBin: true
+ dependencies:
+ minimist: 1.2.5
+ dev: true
+
+ /mocha/3.1.2:
+ resolution: {integrity: sha1-Ufk7Qyv34bF1/8Iog8zQvjLbprU=}
+ engines: {node: '>= 0.10.x', npm: '>= 1.4.x'}
+ hasBin: true
+ dependencies:
+ browser-stdout: 1.3.0
+ commander: 2.9.0
+ debug: 2.2.0
+ diff: 1.4.0
+ escape-string-regexp: 1.0.5
+ glob: 7.0.5
+ growl: 1.9.2
+ json3: 3.3.2
+ lodash.create: 3.1.1
+ mkdirp: 0.5.1
+ supports-color: 3.1.2
+ dev: true
+
+ /ms/0.7.1:
+ resolution: {integrity: sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=}
+ dev: true
+
+ /ms/2.0.0:
+ resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=}
+ dev: true
+
+ /ms/2.1.2:
+ resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
+ dev: true
+
+ /mute-stream/0.0.5:
+ resolution: {integrity: sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=}
+ dev: true
+
+ /nan/2.15.0:
+ resolution: {integrity: sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==}
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /nanoid/3.3.1:
+ resolution: {integrity: sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+ dev: false
+
+ /nanomatch/1.2.13:
+ resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ arr-diff: 4.0.0
+ array-unique: 0.3.2
+ define-property: 2.0.2
+ extend-shallow: 3.0.2
+ fragment-cache: 0.2.1
+ is-windows: 1.0.2
+ kind-of: 6.0.3
+ object.pick: 1.3.0
+ regex-not: 1.0.2
+ snapdragon: 0.8.2
+ to-regex: 3.0.2
+ dev: true
+
+ /natural-compare/1.4.0:
+ resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=}
+ dev: true
+
+ /next-tick/1.1.0:
+ resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==}
+ dev: true
+
+ /node-releases/2.0.2:
+ resolution: {integrity: sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==}
+ dev: true
+
+ /normalize-path/2.1.1:
+ resolution: {integrity: sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ remove-trailing-separator: 1.1.0
+ dev: true
+
+ /normalize-path/3.0.0:
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+ optional: true
+
+ /number-is-nan/1.0.1:
+ resolution: {integrity: sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /object-assign/4.1.1:
+ resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /object-copy/0.1.0:
+ resolution: {integrity: sha1-fn2Fi3gb18mRpBupde04EnVOmYw=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ copy-descriptor: 0.1.1
+ define-property: 0.2.5
+ kind-of: 3.2.2
+ dev: true
+
+ /object-keys/1.1.1:
+ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /object-visit/1.0.1:
+ resolution: {integrity: sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ isobject: 3.0.1
+ dev: true
+
+ /object.assign/4.1.2:
+ resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.3
+ has-symbols: 1.0.3
+ object-keys: 1.1.1
+ dev: true
+
+ /object.omit/2.0.1:
+ resolution: {integrity: sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ for-own: 0.1.5
+ is-extendable: 0.1.1
+ dev: true
+
+ /object.pick/1.3.0:
+ resolution: {integrity: sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ isobject: 3.0.1
+ dev: true
+
+ /once/1.4.0:
+ resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=}
+ dependencies:
+ wrappy: 1.0.2
+ dev: true
+
+ /onetime/1.1.0:
+ resolution: {integrity: sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /optionator/0.8.3:
+ resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ deep-is: 0.1.4
+ fast-levenshtein: 2.0.6
+ levn: 0.3.0
+ prelude-ls: 1.1.2
+ type-check: 0.3.2
+ word-wrap: 1.2.3
+ dev: true
+
+ /os-homedir/1.0.2:
+ resolution: {integrity: sha1-/7xJiDNuDoM94MFox+8VISGqf7M=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /os-locale/1.4.0:
+ resolution: {integrity: sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ lcid: 1.0.0
+ dev: true
+
+ /parse-glob/3.0.4:
+ resolution: {integrity: sha1-ssN2z7EfNVE7rdFz7wu246OIORw=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ glob-base: 0.3.0
+ is-dotfile: 1.0.3
+ is-extglob: 1.0.0
+ is-glob: 2.0.1
+ dev: true
+
+ /pascalcase/0.1.1:
+ resolution: {integrity: sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /path-is-absolute/1.0.1:
+ resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /path-is-inside/1.0.2:
+ resolution: {integrity: sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=}
+ dev: true
+
+ /path-parse/1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+ dev: true
+
+ /picocolors/1.0.0:
+ resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
+
+ /picomatch/2.3.1:
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+ engines: {node: '>=8.6'}
+ dev: true
+ optional: true
+
+ /pify/4.0.1:
+ resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /pluralize/1.2.1:
+ resolution: {integrity: sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=}
+ dev: true
+
+ /posix-character-classes/0.1.1:
+ resolution: {integrity: sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /postcss-modules-extract-imports/3.0.0_postcss@8.4.12:
+ resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==}
+ engines: {node: ^10 || ^12 || >= 14}
+ peerDependencies:
+ postcss: ^8.1.0
+ dependencies:
+ postcss: 8.4.12
+ dev: false
+
+ /postcss-modules-local-by-default/4.0.0_postcss@8.4.12:
+ resolution: {integrity: sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==}
+ engines: {node: ^10 || ^12 || >= 14}
+ peerDependencies:
+ postcss: ^8.1.0
+ dependencies:
+ icss-utils: 5.1.0_postcss@8.4.12
+ postcss: 8.4.12
+ postcss-selector-parser: 6.0.9
+ postcss-value-parser: 4.2.0
+ dev: false
+
+ /postcss-modules-scope/3.0.0_postcss@8.4.12:
+ resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==}
+ engines: {node: ^10 || ^12 || >= 14}
+ peerDependencies:
+ postcss: ^8.1.0
+ dependencies:
+ postcss: 8.4.12
+ postcss-selector-parser: 6.0.9
+ dev: false
+
+ /postcss-modules-values/4.0.0_postcss@8.4.12:
+ resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==}
+ engines: {node: ^10 || ^12 || >= 14}
+ peerDependencies:
+ postcss: ^8.1.0
+ dependencies:
+ icss-utils: 5.1.0_postcss@8.4.12
+ postcss: 8.4.12
+ dev: false
+
+ /postcss-selector-parser/6.0.9:
+ resolution: {integrity: sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==}
+ engines: {node: '>=4'}
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+ dev: false
+
+ /postcss-value-parser/4.2.0:
+ resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
+ dev: false
+
+ /postcss/8.4.12:
+ resolution: {integrity: sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==}
+ engines: {node: ^10 || ^12 || >=14}
+ dependencies:
+ nanoid: 3.3.1
+ picocolors: 1.0.0
+ source-map-js: 1.0.2
+ dev: false
+
+ /prelude-ls/1.1.2:
+ resolution: {integrity: sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=}
+ engines: {node: '>= 0.8.0'}
+ dev: true
+
+ /preserve/0.2.0:
+ resolution: {integrity: sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /process-nextick-args/2.0.1:
+ resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
+ dev: true
+
+ /progress/1.1.8:
+ resolution: {integrity: sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=}
+ engines: {node: '>=0.4.0'}
+ dev: true
+
+ /randomatic/3.1.1:
+ resolution: {integrity: sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==}
+ engines: {node: '>= 0.10.0'}
+ dependencies:
+ is-number: 4.0.0
+ kind-of: 6.0.3
+ math-random: 1.0.4
+ dev: true
+
+ /readable-stream/2.3.7:
+ resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==}
+ dependencies:
+ core-util-is: 1.0.3
+ inherits: 2.0.4
+ isarray: 1.0.0
+ process-nextick-args: 2.0.1
+ safe-buffer: 5.1.2
+ string_decoder: 1.1.1
+ util-deprecate: 1.0.2
+ dev: true
+
+ /readdirp/2.2.1:
+ resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==}
+ engines: {node: '>=0.10'}
+ dependencies:
+ graceful-fs: 4.2.9
+ micromatch: 3.1.10
+ readable-stream: 2.3.7
+ dev: true
+
+ /readdirp/3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+ dependencies:
+ picomatch: 2.3.1
+ dev: true
+ optional: true
+
+ /readline2/1.0.1:
+ resolution: {integrity: sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=}
+ dependencies:
+ code-point-at: 1.1.0
+ is-fullwidth-code-point: 1.0.0
+ mute-stream: 0.0.5
+ dev: true
+
+ /rechoir/0.6.2:
+ resolution: {integrity: sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=}
+ engines: {node: '>= 0.10'}
+ dependencies:
+ resolve: 1.22.0
+ dev: true
+
+ /regenerate-unicode-properties/10.0.1:
+ resolution: {integrity: sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==}
+ engines: {node: '>=4'}
+ dependencies:
+ regenerate: 1.4.2
+ dev: true
+
+ /regenerate/1.4.2:
+ resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
+ dev: true
+
+ /regenerator-runtime/0.13.9:
+ resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==}
+ dev: true
+
+ /regenerator-transform/0.14.5:
+ resolution: {integrity: sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==}
+ dependencies:
+ '@babel/runtime': 7.17.8
+ dev: true
+
+ /regex-cache/0.4.4:
+ resolution: {integrity: sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-equal-shallow: 0.1.3
+ dev: true
+
+ /regex-not/1.0.2:
+ resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ extend-shallow: 3.0.2
+ safe-regex: 1.1.0
+ dev: true
+
+ /regexpu-core/5.0.1:
+ resolution: {integrity: sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==}
+ engines: {node: '>=4'}
+ dependencies:
+ regenerate: 1.4.2
+ regenerate-unicode-properties: 10.0.1
+ regjsgen: 0.6.0
+ regjsparser: 0.8.4
+ unicode-match-property-ecmascript: 2.0.0
+ unicode-match-property-value-ecmascript: 2.0.0
+ dev: true
+
+ /regjsgen/0.6.0:
+ resolution: {integrity: sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==}
+ dev: true
+
+ /regjsparser/0.8.4:
+ resolution: {integrity: sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==}
+ hasBin: true
+ dependencies:
+ jsesc: 0.5.0
+ dev: true
+
+ /remove-trailing-separator/1.1.0:
+ resolution: {integrity: sha1-wkvOKig62tW8P1jg1IJJuSN52O8=}
+ dev: true
+
+ /repeat-element/1.1.4:
+ resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /repeat-string/1.6.1:
+ resolution: {integrity: sha1-jcrkcOHIirwtYA//Sndihtp15jc=}
+ engines: {node: '>=0.10'}
+ dev: true
+
+ /require-uncached/1.0.3:
+ resolution: {integrity: sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ caller-path: 0.1.0
+ resolve-from: 1.0.1
+ dev: true
+
+ /resolve-from/1.0.1:
+ resolution: {integrity: sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /resolve-url/0.2.1:
+ resolution: {integrity: sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=}
+ deprecated: https://github.com/lydell/resolve-url#deprecated
+ dev: true
+
+ /resolve/1.22.0:
+ resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==}
+ hasBin: true
+ dependencies:
+ is-core-module: 2.8.1
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+ dev: true
+
+ /restore-cursor/1.0.1:
+ resolution: {integrity: sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ exit-hook: 1.1.1
+ onetime: 1.1.0
+ dev: true
+
+ /ret/0.1.15:
+ resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==}
+ engines: {node: '>=0.12'}
+ dev: true
+
+ /rimraf/2.6.3:
+ resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==}
+ hasBin: true
+ dependencies:
+ glob: 7.2.0
+ dev: true
+
+ /run-async/0.1.0:
+ resolution: {integrity: sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=}
+ dependencies:
+ once: 1.4.0
+ dev: true
+
+ /rx-lite/3.1.2:
+ resolution: {integrity: sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=}
+ dev: true
+
+ /safe-buffer/5.1.2:
+ resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
+ dev: true
+
+ /safe-regex/1.1.0:
+ resolution: {integrity: sha1-QKNmnzsHfR6UPURinhV91IAjvy4=}
+ dependencies:
+ ret: 0.1.15
+ dev: true
+
+ /semver/5.7.1:
+ resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
+ hasBin: true
+ dev: true
+
+ /semver/6.3.0:
+ resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
+ hasBin: true
+ dev: true
+
+ /semver/7.0.0:
+ resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==}
+ hasBin: true
+ dev: true
+
+ /set-value/2.0.1:
+ resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ extend-shallow: 2.0.1
+ is-extendable: 0.1.1
+ is-plain-object: 2.0.4
+ split-string: 3.1.0
+ dev: true
+
+ /shell-quote/1.7.3:
+ resolution: {integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==}
+ dev: true
+
+ /shelljs/0.7.8:
+ resolution: {integrity: sha1-3svPh0sNHl+3LhSxZKloMEjprLM=}
+ engines: {node: '>=0.11.0'}
+ hasBin: true
+ dependencies:
+ glob: 7.2.0
+ interpret: 1.4.0
+ rechoir: 0.6.2
+ dev: true
+
+ /slash/2.0.0:
+ resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /slice-ansi/0.0.4:
+ resolution: {integrity: sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /snapdragon-node/2.1.1:
+ resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ define-property: 1.0.0
+ isobject: 3.0.1
+ snapdragon-util: 3.0.1
+ dev: true
+
+ /snapdragon-util/3.0.1:
+ resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ kind-of: 3.2.2
+ dev: true
+
+ /snapdragon/0.8.2:
+ resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ base: 0.11.2
+ debug: 2.6.9
+ define-property: 0.2.5
+ extend-shallow: 2.0.1
+ map-cache: 0.2.2
+ source-map: 0.5.7
+ source-map-resolve: 0.5.3
+ use: 3.1.1
+ dev: true
+
+ /source-map-js/1.0.2:
+ resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /source-map-resolve/0.5.3:
+ resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==}
+ deprecated: See https://github.com/lydell/source-map-resolve#deprecated
+ dependencies:
+ atob: 2.1.2
+ decode-uri-component: 0.2.0
+ resolve-url: 0.2.1
+ source-map-url: 0.4.1
+ urix: 0.1.0
+ dev: true
+
+ /source-map-url/0.4.1:
+ resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
+ deprecated: See https://github.com/lydell/source-map-url#deprecated
+ dev: true
+
+ /source-map/0.5.7:
+ resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /split-string/3.1.0:
+ resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ extend-shallow: 3.0.2
+ dev: true
+
+ /sprintf-js/1.0.3:
+ resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=}
+ dev: true
+
+ /static-extend/0.1.2:
+ resolution: {integrity: sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ define-property: 0.2.5
+ object-copy: 0.1.0
+ dev: true
+
+ /string-width/1.0.2:
+ resolution: {integrity: sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ code-point-at: 1.1.0
+ is-fullwidth-code-point: 1.0.0
+ strip-ansi: 3.0.1
+ dev: true
+
+ /string-width/2.1.1:
+ resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==}
+ engines: {node: '>=4'}
+ dependencies:
+ is-fullwidth-code-point: 2.0.0
+ strip-ansi: 4.0.0
+ dev: true
+
+ /string_decoder/1.1.1:
+ resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
+ dependencies:
+ safe-buffer: 5.1.2
+ dev: true
+
+ /strip-ansi/3.0.1:
+ resolution: {integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ ansi-regex: 2.1.1
+ dev: true
+
+ /strip-ansi/4.0.0:
+ resolution: {integrity: sha1-qEeQIusaw2iocTibY1JixQXuNo8=}
+ engines: {node: '>=4'}
+ dependencies:
+ ansi-regex: 3.0.0
+ dev: true
+
+ /strip-bom/3.0.0:
+ resolution: {integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=}
+ engines: {node: '>=4'}
+ dev: true
+
+ /strip-json-comments/1.0.4:
+ resolution: {integrity: sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=}
+ engines: {node: '>=0.8.0'}
+ hasBin: true
+ dev: true
+
+ /supports-color/2.0.0:
+ resolution: {integrity: sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=}
+ engines: {node: '>=0.8.0'}
+ dev: true
+
+ /supports-color/3.1.2:
+ resolution: {integrity: sha1-cqJiiU2dQIuVbKBf83su2KbiotU=}
+ engines: {node: '>=0.8.0'}
+ dependencies:
+ has-flag: 1.0.0
+ dev: true
+
+ /supports-color/5.5.0:
+ resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
+ engines: {node: '>=4'}
+ dependencies:
+ has-flag: 3.0.0
+ dev: true
+
+ /supports-preserve-symlinks-flag/1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /table/3.8.3:
+ resolution: {integrity: sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=}
+ dependencies:
+ ajv: 4.11.8
+ ajv-keywords: 1.5.1_ajv@4.11.8
+ chalk: 1.1.3
+ lodash: 4.17.21
+ slice-ansi: 0.0.4
+ string-width: 2.1.1
+ dev: true
+
+ /text-table/0.2.0:
+ resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=}
+ dev: true
+
+ /through/2.3.8:
+ resolution: {integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=}
+ dev: true
+
+ /to-fast-properties/2.0.0:
+ resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=}
+ engines: {node: '>=4'}
+ dev: true
+
+ /to-object-path/0.3.0:
+ resolution: {integrity: sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ kind-of: 3.2.2
+ dev: true
+
+ /to-regex-range/2.1.1:
+ resolution: {integrity: sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-number: 3.0.0
+ repeat-string: 1.6.1
+ dev: true
+
+ /to-regex-range/5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+ dependencies:
+ is-number: 7.0.0
+ dev: true
+ optional: true
+
+ /to-regex/3.0.2:
+ resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ define-property: 2.0.2
+ extend-shallow: 3.0.2
+ regex-not: 1.0.2
+ safe-regex: 1.1.0
+ dev: true
+
+ /ts-node/10.7.0_e79e62fe450383fd2d418267dc75e645:
+ resolution: {integrity: sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==}
+ hasBin: true
+ peerDependencies:
+ '@swc/core': '>=1.2.50'
+ '@swc/wasm': '>=1.2.50'
+ '@types/node': '*'
+ typescript: '>=2.7'
+ peerDependenciesMeta:
+ '@swc/core':
+ optional: true
+ '@swc/wasm':
+ optional: true
+ dependencies:
+ '@cspotcode/source-map-support': 0.7.0
+ '@tsconfig/node10': 1.0.8
+ '@tsconfig/node12': 1.0.9
+ '@tsconfig/node14': 1.0.1
+ '@tsconfig/node16': 1.0.2
+ '@types/node': 17.0.21
+ acorn: 8.7.0
+ acorn-walk: 8.2.0
+ arg: 4.1.3
+ create-require: 1.1.1
+ diff: 4.0.2
+ make-error: 1.3.6
+ typescript: 4.6.2
+ v8-compile-cache-lib: 3.0.0
+ yn: 3.1.1
+ dev: true
+
+ /type-check/0.3.2:
+ resolution: {integrity: sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ prelude-ls: 1.1.2
+ dev: true
+
+ /type/1.2.0:
+ resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==}
+ dev: true
+
+ /type/2.6.0:
+ resolution: {integrity: sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==}
+ dev: true
+
+ /typedarray/0.0.6:
+ resolution: {integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=}
+ dev: true
+
+ /typescript/4.6.2:
+ resolution: {integrity: sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==}
+ engines: {node: '>=4.2.0'}
+ hasBin: true
+ dev: true
+
+ /unicode-canonical-property-names-ecmascript/2.0.0:
+ resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /unicode-match-property-ecmascript/2.0.0:
+ resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
+ engines: {node: '>=4'}
+ dependencies:
+ unicode-canonical-property-names-ecmascript: 2.0.0
+ unicode-property-aliases-ecmascript: 2.0.0
+ dev: true
+
+ /unicode-match-property-value-ecmascript/2.0.0:
+ resolution: {integrity: sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /unicode-property-aliases-ecmascript/2.0.0:
+ resolution: {integrity: sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /union-value/1.0.1:
+ resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ arr-union: 3.1.0
+ get-value: 2.0.6
+ is-extendable: 0.1.1
+ set-value: 2.0.1
+ dev: true
+
+ /unset-value/1.0.0:
+ resolution: {integrity: sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ has-value: 0.3.1
+ isobject: 3.0.1
+ dev: true
+
+ /urix/0.1.0:
+ resolution: {integrity: sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=}
+ deprecated: Please see https://github.com/lydell/urix#deprecated
+ dev: true
+
+ /use/3.1.1:
+ resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /user-home/2.0.0:
+ resolution: {integrity: sha1-nHC/2Babwdy/SGBODwS4tJzenp8=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ os-homedir: 1.0.2
+ dev: true
+
+ /util-deprecate/1.0.2:
+ resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=}
+
+ /v8-compile-cache-lib/3.0.0:
+ resolution: {integrity: sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==}
+ dev: true
+
+ /window-size/0.1.4:
+ resolution: {integrity: sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=}
+ engines: {node: '>= 0.10.0'}
+ hasBin: true
+ dev: true
+
+ /word-wrap/1.2.3:
+ resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /wrap-ansi/2.1.0:
+ resolution: {integrity: sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ string-width: 1.0.2
+ strip-ansi: 3.0.1
+ dev: true
+
+ /wrappy/1.0.2:
+ resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=}
+ dev: true
+
+ /write/0.2.1:
+ resolution: {integrity: sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ mkdirp: 0.5.5
+ dev: true
+
+ /xtend/4.0.2:
+ resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
+ engines: {node: '>=0.4'}
+ dev: true
+
+ /y18n/3.2.2:
+ resolution: {integrity: sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==}
+ dev: true
+
+ /yargs/3.32.0:
+ resolution: {integrity: sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=}
+ dependencies:
+ camelcase: 2.1.1
+ cliui: 3.2.0
+ decamelize: 1.2.0
+ os-locale: 1.4.0
+ string-width: 1.0.2
+ window-size: 0.1.4
+ y18n: 3.2.2
+ dev: true
+
+ /yn/3.1.1:
+ resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
+ engines: {node: '>=6'}
+ dev: true
diff --git a/src/core-loader.ts b/src/core-loader.ts
new file mode 100644
index 0000000..bc2b0a6
--- /dev/null
+++ b/src/core-loader.ts
@@ -0,0 +1,42 @@
+import postcss, { AcceptedPlugin } from 'postcss'
+
+import Parser, { PathFetcher, ExportTokens } from './parser';
+import { defaultPlugins, values, localByDefault, extractImports, scope } from './plugins';
+
+export interface CoreResult {
+ injectableSource: string,
+ exportTokens: ExportTokens,
+}
+
+export default class CoreLoader {
+ static defaultPlugins = defaultPlugins;
+ static values = values;
+ static localByDefault = localByDefault;
+ static extractImports = extractImports;
+ static scope = scope;
+ static defaultPathFetcher: PathFetcher = () => Promise.resolve({});
+
+ plugins: AcceptedPlugin[];
+
+ constructor(plugins?: AcceptedPlugin[]) {
+ this.plugins = plugins || CoreLoader.defaultPlugins;
+ }
+
+ load(
+ sourceString: string,
+ sourcePath: string = '',
+ trace: string = '',
+ pathFetcher: PathFetcher = CoreLoader.defaultPathFetcher
+ ): Promise {
+ let parser = new Parser(pathFetcher, trace)
+
+ return postcss(this.plugins.concat([parser.plugin]))
+ .process(sourceString, { from: '/' + sourcePath || '' })
+ .then(result => {
+ return {
+ injectableSource: result.css,
+ exportTokens: parser.exportTokens
+ };
+ })
+ }
+}
diff --git a/src/file-system-loader.js b/src/file-system-loader.js
deleted file mode 100644
index e26c2c0..0000000
--- a/src/file-system-loader.js
+++ /dev/null
@@ -1,77 +0,0 @@
-import Core from './index.js'
-import fs from 'fs'
-import path from 'path'
-
-// Sorts dependencies in the following way:
-// AAA comes before AA and A
-// AB comes after AA and before A
-// All Bs come after all As
-// This ensures that the files are always returned in the following order:
-// - In the order they were required, except
-// - After all their dependencies
-const traceKeySorter = ( a, b ) => {
- if ( a.length < b.length ) {
- return a < b.substring( 0, a.length ) ? -1 : 1
- } else if ( a.length > b.length ) {
- return a.substring( 0, b.length ) <= b ? -1 : 1
- } else {
- return a < b ? -1 : 1
- }
-};
-
-export default class FileSystemLoader {
- constructor( root, plugins ) {
- this.root = root
- this.sources = {}
- this.traces = {}
- this.importNr = 0
- this.core = new Core(plugins)
- this.tokensByFile = {};
- }
-
- fetch( _newPath, relativeTo, _trace ) {
- let newPath = _newPath.replace( /^["']|["']$/g, "" ),
- trace = _trace || String.fromCharCode( this.importNr++ )
- return new Promise( ( resolve, reject ) => {
- let relativeDir = path.dirname( relativeTo ),
- rootRelativePath = path.resolve( relativeDir, newPath ),
- fileRelativePath = path.resolve( path.join( this.root, relativeDir ), newPath )
-
- // if the path is not relative or absolute, try to resolve it in node_modules
- if (newPath[0] !== '.' && newPath[0] !== '/') {
- try {
- fileRelativePath = require.resolve(newPath);
- }
- catch (e) {}
- }
-
- const tokens = this.tokensByFile[fileRelativePath]
- if (tokens) { return resolve(tokens) }
-
- fs.readFile( fileRelativePath, "utf-8", ( err, source ) => {
- if ( err ) reject( err )
- this.core.load( source, rootRelativePath, trace, this.fetch.bind( this ) )
- .then( ( { injectableSource, exportTokens } ) => {
- this.sources[fileRelativePath] = injectableSource
- this.traces[trace] = fileRelativePath
- this.tokensByFile[fileRelativePath] = exportTokens
- resolve( exportTokens )
- }, reject )
- } )
- } )
- }
-
- get finalSource() {
- const traces = this.traces
- const sources = this.sources
- let written = new Set()
-
- return Object.keys( traces ).sort( traceKeySorter ).map(key => {
- const filename = traces[key]
- if (written.has(filename)) { return null }
- written.add(filename)
-
- return sources[filename];
- }).join( "" )
- }
-}
diff --git a/src/file-system-loader.ts b/src/file-system-loader.ts
new file mode 100644
index 0000000..38d930b
--- /dev/null
+++ b/src/file-system-loader.ts
@@ -0,0 +1,101 @@
+import fs from 'fs';
+import path from 'path';
+import { AcceptedPlugin } from 'postcss';
+
+import CoreLoader, { CoreResult } from './core-loader';
+import { ExportTokens } from './parser';
+
+export default class FileSystemLoader {
+ static defaultPlugins = CoreLoader.defaultPlugins;
+ static values = CoreLoader.values;
+ static localByDefault = CoreLoader.localByDefault;
+ static extractImports = CoreLoader.extractImports;
+ static scope = CoreLoader.scope;
+
+ coreLoader: CoreLoader;
+ root: string;
+
+ sources: ExportTokens = {};
+ traces: ExportTokens = {};
+ tokensByFile: { [file: string]: ExportTokens } = {};
+ importNr: number = 0;
+
+ constructor(rootAbsolutePath: string, plugins?: AcceptedPlugin[]) {
+ this.root = rootAbsolutePath;
+ this.coreLoader = new CoreLoader(plugins);
+ }
+
+ static NormalizePath(path?: string) {
+ let parts = (path || '').split(/[\\\/]+/);
+ parts[0] = '';
+ return parts.join('/').replace(/\.[a-z0-9]+$/, '');
+ }
+
+ static TraceKeySorter(a: string, b: string) {
+ if (a.length < b.length) {
+ return a < b.substring(0, a.length) ? -1 : 1
+ } else if (a.length > b.length) {
+ return a.substring(0, b.length) <= b ? -1 : 1
+ } else {
+ return a < b ? -1 : 1
+ }
+ };
+
+ load(file: string, relativeTo?: string, depTrace?: string): Promise {
+ return this.pathFetcher(file, relativeTo, depTrace)
+ .then(exportTokens => {
+ let written = new Set(),
+ injectableSources: string[] = [];
+
+ Object.keys(this.traces)
+ .sort(FileSystemLoader.TraceKeySorter)
+ .map(key => {
+ const filename = this.traces[key]
+ if (written.has(filename)) return;
+ written.add(filename);
+
+ injectableSources.push(this.sources[filename]);
+ });
+
+ return {
+ exportTokens,
+ injectableSource: injectableSources.join(''),
+ }
+ });
+ }
+
+ pathFetcher(file: string, relativeTo?: string, depTrace?: string): Promise {
+ let newPath = file.replace(/^["']|["']$/g, ''),
+ trace = depTrace || String.fromCharCode(this.importNr++);
+ relativeTo = FileSystemLoader.NormalizePath(relativeTo);
+ return new Promise((resolve, reject) => {
+ let relativeDir = path.dirname(relativeTo),
+ rootRelativePath = FileSystemLoader.NormalizePath(path.resolve(relativeDir, newPath)),
+ fileRelativePath = path.resolve(path.join(this.root, relativeDir), newPath);
+
+ if (newPath[0] !== '.' && newPath[0] !== '/') {
+ try {
+ fileRelativePath = require.resolve(newPath);
+ }
+ catch (e) { }
+ }
+
+ const tokens = this.tokensByFile[fileRelativePath];
+ if (tokens) { return resolve(tokens) };
+
+ try {
+ let source = fs.readFileSync(fileRelativePath, 'utf-8');
+ this.coreLoader.load(source, rootRelativePath, trace, this.pathFetcher.bind(this))
+ .then(({ injectableSource, exportTokens }) => {
+ this.sources[fileRelativePath] = injectableSource;
+ this.traces[trace] = fileRelativePath;
+ this.tokensByFile[fileRelativePath] = exportTokens;
+ resolve(exportTokens);
+ }, reject)
+
+ } catch (err) {
+ reject(err);
+ }
+ })
+ }
+}
\ No newline at end of file
diff --git a/src/index.js b/src/index.js
deleted file mode 100644
index 92795bd..0000000
--- a/src/index.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import postcss from 'postcss'
-import localByDefault from 'postcss-modules-local-by-default'
-import extractImports from 'postcss-modules-extract-imports'
-import scope from 'postcss-modules-scope'
-import values from 'postcss-modules-values'
-
-import Parser from './parser'
-
-export default class Core {
- constructor( plugins ) {
- this.plugins = plugins || Core.defaultPlugins
- }
-
- load( sourceString, sourcePath, trace, pathFetcher ) {
- let parser = new Parser( pathFetcher, trace )
-
- return postcss( this.plugins.concat( [parser.plugin] ) )
- .process( sourceString, { from: "/" + sourcePath } )
- .then( result => {
- return { injectableSource: result.css, exportTokens: parser.exportTokens }
- } )
- }
-}
-
-// These four plugins are aliased under this package for simplicity.
-Core.values = values
-Core.localByDefault = localByDefault
-Core.extractImports = extractImports
-Core.scope = scope
-
-Core.defaultPlugins = [values, localByDefault, extractImports, scope]
diff --git a/src/index.ts b/src/index.ts
new file mode 100644
index 0000000..a7242ad
--- /dev/null
+++ b/src/index.ts
@@ -0,0 +1,3 @@
+export { default as default, CoreResult } from './core-loader';
+export { default as FileSystemLoader } from './file-system-loader';
+export { ExportTokens, PathFetcher } from './parser';
diff --git a/src/parser.js b/src/parser.js
deleted file mode 100644
index 8dfb1dc..0000000
--- a/src/parser.js
+++ /dev/null
@@ -1,63 +0,0 @@
-const importRegexp = /^:import\((.+)\)$/
-import replaceSymbols from 'icss-replace-symbols'
-
-export default class Parser {
- constructor( pathFetcher, trace ) {
- this.pathFetcher = pathFetcher
- this.plugin = this.plugin.bind( this )
- this.exportTokens = {}
- this.translations = {}
- this.trace = trace
- }
-
- plugin( css, result ) {
- return Promise.all( this.fetchAllImports( css ) )
- .then( _ => this.linkImportedSymbols( css ) )
- .then( _ => this.extractExports( css ) )
- }
-
- fetchAllImports( css ) {
- let imports = []
- css.each( node => {
- if ( node.type == "rule" && node.selector.match( importRegexp ) ) {
- imports.push( this.fetchImport( node, css.source.input.from, imports.length ) )
- }
- } )
- return imports
- }
-
- linkImportedSymbols( css ) {
- replaceSymbols(css, this.translations)
- }
-
- extractExports( css ) {
- css.each( node => {
- if ( node.type == "rule" && node.selector == ":export" ) this.handleExport( node )
- } )
- }
-
- handleExport( exportNode ) {
- exportNode.each( decl => {
- if ( decl.type == 'decl' ) {
- Object.keys(this.translations).forEach( translation => {
- decl.value = decl.value.replace(translation, this.translations[translation])
- } )
- this.exportTokens[decl.prop] = decl.value
- }
- } )
- exportNode.remove()
- }
-
- fetchImport( importNode, relativeTo, depNr ) {
- let file = importNode.selector.match( importRegexp )[1],
- depTrace = this.trace + String.fromCharCode(depNr)
- return this.pathFetcher( file, relativeTo, depTrace ).then( exports => {
- importNode.each( decl => {
- if ( decl.type == 'decl' ) {
- this.translations[decl.prop] = exports[decl.value]
- }
- } )
- importNode.remove()
- }, err => console.log( err ) )
- }
-}
diff --git a/src/parser.ts b/src/parser.ts
new file mode 100644
index 0000000..2126ba5
--- /dev/null
+++ b/src/parser.ts
@@ -0,0 +1,85 @@
+const importRegexp = /^:import\((.+)\)$/;
+import replaceSymbols from 'icss-replace-symbols';
+import { Declaration, Result, Root, Rule } from 'postcss';
+
+export interface ExportTokens {
+ [index: string]: string;
+}
+
+export type PathFetcher = (file: string, relativeTo?: string, depTrace?: string) => Promise;
+
+export default class Parser {
+ pathFetcher: PathFetcher;
+ exportTokens: ExportTokens;
+ translations: ExportTokens;
+ trace: string;
+
+
+ constructor(pathFetcher: PathFetcher, trace?: string) {
+ this.pathFetcher = pathFetcher;
+ this.plugin = this.plugin.bind(this);
+ this.exportTokens = {};
+ this.translations = {};
+ this.trace = trace || '';
+ }
+
+ plugin(css: Root, result: Result) {
+ return Promise.all(this.fetchAllImports(css))
+ .then(_ => this.linkImportedSymbols(css))
+ .then(_ => this.extractExports(css));
+ }
+
+ fetchAllImports(css: Root) {
+ let imports = [];
+ css.each(node => {
+ if (node.type == "rule") {
+ let rule = node as Rule;
+ if (rule.selector.match(importRegexp)) {
+ imports.push(this.fetchImport(rule, css.source.input.from, imports.length));
+ }
+ }
+ });
+ return imports;
+ }
+
+ linkImportedSymbols(css: Root) {
+ replaceSymbols(css, this.translations);
+ }
+
+ extractExports(css: Root) {
+ css.each(node => {
+ if (node.type == "rule") {
+ let rule = node as Rule;
+ if (rule.selector == ":export") this.handleExport(rule);
+ }
+ });
+ }
+
+ handleExport(exportNode: Rule) {
+ exportNode.each(node => {
+ if (node.type == 'decl') {
+ let decl = node as Declaration;
+ Object.keys(this.translations).forEach(translation => {
+ decl.value = decl.value.replace(translation, this.translations[translation]);
+ })
+ this.exportTokens[decl.prop] = decl.value;
+ }
+ });
+ exportNode.remove();
+ }
+
+ fetchImport(importNode: Rule, relativeTo: string, depNr: number) {
+ let file = importNode.selector.match(importRegexp)[1],
+ depTrace = this.trace + String.fromCharCode(depNr);
+ return this.pathFetcher(file, relativeTo, depTrace)
+ .then(exports => {
+ importNode.each(node => {
+ if (node.type == 'decl') {
+ let decl = node as Declaration;
+ this.translations[decl.prop] = exports[decl.value];
+ }
+ });
+ importNode.remove();
+ }, err => console.log(err));
+ }
+}
diff --git a/src/plugins.ts b/src/plugins.ts
new file mode 100644
index 0000000..34f5ef9
--- /dev/null
+++ b/src/plugins.ts
@@ -0,0 +1,17 @@
+import { AcceptedPlugin } from 'postcss'
+import LocalByDefault from 'postcss-modules-local-by-default'
+import ExtractImports from 'postcss-modules-extract-imports';
+import Scope from 'postcss-modules-scope';
+import Values from 'postcss-modules-values';
+
+export const localByDefault: AcceptedPlugin = LocalByDefault;
+export const extractImports: AcceptedPlugin = ExtractImports;
+export const scope: AcceptedPlugin = Scope;
+export const values: AcceptedPlugin = Values;
+
+export const defaultPlugins = [
+ values,
+ localByDefault,
+ extractImports,
+ scope
+];
diff --git a/test/test-cases.js b/test/test-cases.js
deleted file mode 100644
index c6adcff..0000000
--- a/test/test-cases.js
+++ /dev/null
@@ -1,55 +0,0 @@
-"use strict";
-
-import assert from "assert"
-import fs from "fs"
-import path from "path"
-import FileSystemLoader from "../src/file-system-loader"
-
-let normalize = ( str ) => {
- return str.replace( /\r\n?/g, "\n" );
-}
-
-const pipelines = {
- "test-cases": undefined,
- "cssi": []
-}
-
-Object.keys( pipelines ).forEach( dirname => {
- describe( dirname, () => {
- let testDir = path.join( __dirname, dirname )
- fs.readdirSync( testDir ).forEach( testCase => {
- if ( fs.existsSync( path.join( testDir, testCase, "source.css" ) ) ) {
- it( "should " + testCase.replace( /-/g, " " ), done => {
- let expected = normalize( fs.readFileSync( path.join( testDir, testCase, "expected.css" ), "utf-8" ) )
- let loader = new FileSystemLoader( testDir, pipelines[dirname] )
- let expectedTokens = JSON.parse( fs.readFileSync( path.join( testDir, testCase, "expected.json" ), "utf-8" ) )
- loader.fetch( `${testCase}/source.css`, "/" ).then( tokens => {
- assert.equal( loader.finalSource, expected )
- assert.equal( JSON.stringify( tokens ), JSON.stringify( expectedTokens ) )
- } ).then( done, done )
- } );
- }
- } );
- } );
-} )
-
-// special case for testing multiple sources
-describe( 'multiple sources', () => {
- let testDir = path.join( __dirname, 'test-cases' )
- let testCase = 'multiple-sources';
- let dirname = 'test-cases';
- if ( fs.existsSync( path.join( testDir, testCase, "source1.css" ) ) ) {
- it( "should " + testCase.replace( /-/g, " " ), done => {
- let expected = normalize( fs.readFileSync( path.join( testDir, testCase, "expected.css" ), "utf-8" ) )
- let loader = new FileSystemLoader( testDir, pipelines[dirname] )
- let expectedTokens = JSON.parse( fs.readFileSync( path.join( testDir, testCase, "expected.json" ), "utf-8" ) )
- loader.fetch( `${testCase}/source1.css`, "/" ).then( tokens1 => {
- loader.fetch( `${testCase}/source2.css`, "/" ).then( tokens2 => {
- assert.equal( loader.finalSource, expected )
- const tokens = Object.assign({}, tokens1, tokens2);
- assert.equal( JSON.stringify( tokens ), JSON.stringify( expectedTokens ) )
- } ).then( done, done )
- })
- } );
- }
-} );
diff --git a/test/test-cases.ts b/test/test-cases.ts
new file mode 100644
index 0000000..c4b502e
--- /dev/null
+++ b/test/test-cases.ts
@@ -0,0 +1,40 @@
+import assert from 'assert';
+import { existsSync, readdirSync, readFileSync } from 'fs';
+import { join } from 'path';
+
+import { FileSystemLoader } from '../src';
+
+const pipelines: {
+ [dir: string]: ConstructorParameters[1];
+} = {
+ 'test-cases': undefined,
+ 'cssi': [],
+}
+
+const normalize = (str: string) => {
+ return str.split(/[\r\n]+/g).filter(v => v.trim()).join('\n');
+}
+
+Object.keys(pipelines).forEach((dirname, i) => {
+ describe(dirname, () => {
+ let testDir = join(__dirname, dirname);
+ readdirSync(testDir)
+ .forEach((testCase, i) => {
+ const buildPath = (file: string = '') => join(testDir, testCase, file);
+
+ if (existsSync(buildPath('source.css'))) {
+ it(`should ${testCase.replace(/-/g, ' ')}`, done => {
+ const expected = readFileSync(buildPath('expected.css'), 'utf-8');
+ const loader = new FileSystemLoader(testDir, pipelines[dirname]);
+ const expectedTokens = readFileSync(buildPath('expected.json'), 'utf-8');
+ loader.load(`${testCase}/source.css`, '/')
+ .then(({ exportTokens, injectableSource }) => {
+ assert.equal(normalize(injectableSource), normalize(expected));
+ assert.equal(JSON.stringify(exportTokens), JSON.stringify(JSON.parse(expectedTokens)));
+ })
+ .then(done, done);
+ });
+ }
+ });
+ });
+});
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..77da20f
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,11 @@
+{
+ "compilerOptions": {
+ "declaration": true,
+ "declarationDir": "lib",
+ "emitDeclarationOnly": true,
+ "esModuleInterop": true
+ },
+ "include": [
+ "src/**/*"
+ ]
+}
\ No newline at end of file
From 16957ea6998f4cd5d91a8b05cb4436b1955bf120 Mon Sep 17 00:00:00 2001
From: DemChing <62481633+DemChing@users.noreply.github.com>
Date: Sun, 20 Mar 2022 04:53:44 +0800
Subject: [PATCH 2/5] 2.0.0
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index 859f8ee..d231476 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@demching113/css-modules-loader-core",
- "version": "1.1.0",
+ "version": "2.0.0",
"description": "A loader-agnostic CSS Modules implementation, based on PostCSS@8.x",
"main": "lib/index.js",
"directories": {
From 5e8d91203f52cbaf082991e388f88f24a8ed679a Mon Sep 17 00:00:00 2001
From: DemChing <62481633+DemChing@users.noreply.github.com>
Date: Sun, 20 Mar 2022 05:03:28 +0800
Subject: [PATCH 3/5] Create FUNDING.yml
---
.github/FUNDING.yml | 13 +++++++++++++
1 file changed, 13 insertions(+)
create mode 100644 .github/FUNDING.yml
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 0000000..d1a3aeb
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1,13 @@
+# These are supported funding model platforms
+
+github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
+patreon: # Replace with a single Patreon username
+open_collective: # Replace with a single Open Collective username
+ko_fi: # Replace with a single Ko-fi username
+tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
+community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
+liberapay: # Replace with a single Liberapay username
+issuehunt: # Replace with a single IssueHunt username
+otechie: # Replace with a single Otechie username
+lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
+custom: ['https://www.buymeacoffee.com/demching'] # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
From 0e5f554100af9c2ed43570b4ab356fbedc49ad1e Mon Sep 17 00:00:00 2001
From: DemChing <62481633+DemChing@users.noreply.github.com>
Date: Sun, 20 Mar 2022 05:43:15 +0800
Subject: [PATCH 4/5] fix typings
---
src/core-loader.ts | 4 ++--
src/file-system-loader.ts | 5 +++--
src/index.ts | 3 ++-
src/plugins.ts | 4 ++++
4 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/src/core-loader.ts b/src/core-loader.ts
index bc2b0a6..52638f0 100644
--- a/src/core-loader.ts
+++ b/src/core-loader.ts
@@ -1,7 +1,7 @@
import postcss, { AcceptedPlugin } from 'postcss'
import Parser, { PathFetcher, ExportTokens } from './parser';
-import { defaultPlugins, values, localByDefault, extractImports, scope } from './plugins';
+import { defaultPlugins, values, localByDefault, extractImports, scope, Source } from './plugins';
export interface CoreResult {
injectableSource: string,
@@ -23,7 +23,7 @@ export default class CoreLoader {
}
load(
- sourceString: string,
+ sourceString: Source,
sourcePath: string = '',
trace: string = '',
pathFetcher: PathFetcher = CoreLoader.defaultPathFetcher
diff --git a/src/file-system-loader.ts b/src/file-system-loader.ts
index 38d930b..74390a4 100644
--- a/src/file-system-loader.ts
+++ b/src/file-system-loader.ts
@@ -4,6 +4,7 @@ import { AcceptedPlugin } from 'postcss';
import CoreLoader, { CoreResult } from './core-loader';
import { ExportTokens } from './parser';
+import { Source } from './plugins';
export default class FileSystemLoader {
static defaultPlugins = CoreLoader.defaultPlugins;
@@ -41,8 +42,8 @@ export default class FileSystemLoader {
}
};
- load(file: string, relativeTo?: string, depTrace?: string): Promise {
- return this.pathFetcher(file, relativeTo, depTrace)
+ load(sourceString: Source, relativeTo?: string, depTrace?: string): Promise {
+ return this.pathFetcher(sourceString.toString(), relativeTo, depTrace)
.then(exportTokens => {
let written = new Set(),
injectableSources: string[] = [];
diff --git a/src/index.ts b/src/index.ts
index a7242ad..480867d 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,3 +1,4 @@
-export { default as default, CoreResult } from './core-loader';
+export { default as default, CoreResult as Result } from './core-loader';
export { default as FileSystemLoader } from './file-system-loader';
export { ExportTokens, PathFetcher } from './parser';
+export { Source } from './plugins';
diff --git a/src/plugins.ts b/src/plugins.ts
index 34f5ef9..7d8825f 100644
--- a/src/plugins.ts
+++ b/src/plugins.ts
@@ -9,6 +9,10 @@ export const extractImports: AcceptedPlugin = ExtractImports;
export const scope: AcceptedPlugin = Scope;
export const values: AcceptedPlugin = Values;
+export type Source = string | {
+ toString(): string;
+};
+
export const defaultPlugins = [
values,
localByDefault,
From bb1092376cd5191a58af5b5d47d611320aa7f896 Mon Sep 17 00:00:00 2001
From: DemChing <62481633+DemChing@users.noreply.github.com>
Date: Sun, 20 Mar 2022 05:53:26 +0800
Subject: [PATCH 5/5] 2.0.1
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index d231476..ac584a6 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@demching113/css-modules-loader-core",
- "version": "2.0.0",
+ "version": "2.0.1",
"description": "A loader-agnostic CSS Modules implementation, based on PostCSS@8.x",
"main": "lib/index.js",
"directories": {