├── .eslintrc.js
├── .github
└── workflows
│ ├── ci.yml
│ └── npm-publish.yml
├── .gitignore
├── CHANGELOG.md
├── LICENSE
├── README.md
├── js-to-json-logic.d.ts
├── lib
└── index.js
├── package-lock.json
├── package.json
└── test
└── index.js
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | env: {
3 | commonjs: true,
4 | es6: true,
5 | node: true,
6 | mocha: true
7 | },
8 | extends: [
9 | 'standard'
10 | ],
11 | globals: {
12 | Atomics: 'readonly',
13 | SharedArrayBuffer: 'readonly'
14 | },
15 | parserOptions: {
16 | ecmaVersion: 2018
17 | },
18 | rules: {
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/.github/workflows/ci.yml:
--------------------------------------------------------------------------------
1 | name: build
2 |
3 | on: [push]
4 |
5 | jobs:
6 | build:
7 | runs-on: ubuntu-latest
8 | strategy:
9 | matrix:
10 | node: [12, 13]
11 | steps:
12 | - name: Clone Repo
13 | uses: actions/checkout@v1
14 |
15 | - name: Setup Node.js ${{ matrix.node }}
16 | uses: actions/setup-node@v1
17 | with:
18 | node-version: ${{ matrix.node }}
19 |
20 | - name: List Versions
21 | run: |
22 | node --version
23 | npm --version
24 |
25 | - name: Install Dependencies
26 | run: npm ci
27 |
28 | - name: Run Tests & Lint
29 | run: |
30 | npm run test
31 | npm run lint
32 |
--------------------------------------------------------------------------------
/.github/workflows/npm-publish.yml:
--------------------------------------------------------------------------------
1 | name: publish
2 |
3 | on:
4 | release:
5 | types: [created]
6 |
7 | jobs:
8 | build:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - uses: actions/checkout@v2
12 | - uses: actions/setup-node@v1
13 | with:
14 | node-version: 12
15 | - run: npm ci
16 | - run: npm test
17 |
18 | publish-npm:
19 | needs: build
20 | runs-on: ubuntu-latest
21 | steps:
22 | - uses: actions/checkout@v2
23 | - uses: actions/setup-node@v1
24 | with:
25 | node-version: 12
26 | registry-url: https://registry.npmjs.org/
27 | - run: npm ci
28 | - run: npm publish
29 | env:
30 | NODE_AUTH_TOKEN: ${{secrets.NPM_AUTH_TOKEN}}
31 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | lerna-debug.log*
8 |
9 | # Diagnostic reports (https://nodejs.org/api/report.html)
10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
11 |
12 | # Runtime data
13 | pids
14 | *.pid
15 | *.seed
16 | *.pid.lock
17 |
18 | # Directory for instrumented libs generated by jscoverage/JSCover
19 | lib-cov
20 |
21 | # Coverage directory used by tools like istanbul
22 | coverage
23 | *.lcov
24 |
25 | # nyc test coverage
26 | .nyc_output
27 |
28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
29 | .grunt
30 |
31 | # Bower dependency directory (https://bower.io/)
32 | bower_components
33 |
34 | # node-waf configuration
35 | .lock-wscript
36 |
37 | # Compiled binary addons (https://nodejs.org/api/addons.html)
38 | build/Release
39 |
40 | # Dependency directories
41 | node_modules/
42 | jspm_packages/
43 |
44 | # TypeScript v1 declaration files
45 | typings/
46 |
47 | # TypeScript cache
48 | *.tsbuildinfo
49 |
50 | # Optional npm cache directory
51 | .npm
52 |
53 | # Optional eslint cache
54 | .eslintcache
55 |
56 | # Microbundle cache
57 | .rpt2_cache/
58 | .rts2_cache_cjs/
59 | .rts2_cache_es/
60 | .rts2_cache_umd/
61 |
62 | # Optional REPL history
63 | .node_repl_history
64 |
65 | # Output of 'npm pack'
66 | *.tgz
67 |
68 | # Yarn Integrity file
69 | .yarn-integrity
70 |
71 | # dotenv environment variables file
72 | .env
73 | .env.test
74 |
75 | # parcel-bundler cache (https://parceljs.org/)
76 | .cache
77 |
78 | # Next.js build output
79 | .next
80 |
81 | # Nuxt.js build / generate output
82 | .nuxt
83 | dist
84 |
85 | # Gatsby files
86 | .cache/
87 | # Comment in the public line in if your project uses Gatsby and not Next.js
88 | # https://nextjs.org/blog/next-9-1#public-directory-support
89 | # public
90 |
91 | # vuepress build output
92 | .vuepress/dist
93 |
94 | # Serverless directories
95 | .serverless/
96 |
97 | # FuseBox cache
98 | .fusebox/
99 |
100 | # DynamoDB Local files
101 | .dynamodb/
102 |
103 | # TernJS port file
104 | .tern-port
105 |
106 | # Stores VSCode versions used for testing VSCode extensions
107 | .vscode-test
108 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 | All notable changes to this library will be documented in this file.
4 |
5 | ## 0.1.1 - 2020-07-02
6 |
7 | ### 🚨 Breaking Changes
8 |
9 | - Throw errors instead of returning `{ parse_error: ... }` objects
10 | - Migrate from `@babel/parser` to `meriyah` (all error messages changed slightly)
11 | - Return `null` when input is empty script
12 | - Ignore `'use strict'` and other directives
13 |
14 | ## 0.0.1 to 0.0.5 - 2002-01-12
15 |
16 | - Early Releases
17 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Kristian Muñiz
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # JS to JSONLogic
2 |
3 | [](https://npm.im/js-to-json-logic) [](http://opensource.org/licenses/MIT) [](https://github.com/krismuniz/js-to-json-logic/actions?query=workflow%3Abuild)  [](https://npm.runkit.com/js-to-json-logic)
4 |
5 | Transform JavaScript expressions into [JSONLogic](http://jsonlogic.com) objects. For Node.js.
6 |
7 | > NOTICE: This module is still in beta!
8 |
9 | ### Installing
10 |
11 | ```shell
12 | npm install --save js-to-json-logic
13 | ```
14 |
15 | ### Usage
16 |
17 | ```js
18 | const transformJS = require("js-to-json-logic");
19 |
20 | transformJS('temp < 110 && pie.filling === "apple"');
21 | ```
22 |
23 | The `transformJS` function returns a JavaScript object, which can be stringified as a JSON and look like this:
24 |
25 | ```json
26 | {
27 | "and": [
28 | {
29 | "<": [
30 | {
31 | "var": "temp"
32 | },
33 | 110
34 | ]
35 | },
36 | {
37 | "===": [
38 | {
39 | "var": "pie.filling"
40 | },
41 | "apple"
42 | ]
43 | }
44 | ]
45 | }
46 | ```
47 |
48 | ### How it Works
49 |
50 | To parse input code, this module uses `@babel/parser` to parse JavaScript code into an [Abstract Syntax Tree (AST)](https://en.wikipedia.org/wiki/Abstract_syntax_tree). The tree is then transformed into a JSONLogic object.
51 |
52 | Said object is can then be used with the [`json-logic-js`](https://npmjs.com/package/json-logic-js) module to apply the interpreted rules to any type of data. [Learn More](http://jsonlogic.com)
53 |
54 | ### Supported JavaScript Syntax
55 |
56 | | expression | support | examples |
57 | | ------------------------------ | ------- | -------------------------------------------------------- |
58 | | Boolean Literals | full | `true`, `false` |
59 | | String Literals | full | `"banana"`, `"hello world"` |
60 | | Template Literals | full | \`hello, \${first_name}\`
|
61 | | Numeric Literals | full | `1`, `2.04`, `-10292.64`, `0b01011010`, `0xFF00FF`, etc. |
62 | | Object Expressions / Literals | full | `({ a: [1, false, 'string'], b: false, d: 'hello' })` |
63 | | Array Expressions | full | `[1, 2, 3]` |
64 | | Spread Operator in Arrays | full | `[1, 2, ...myArr]` |
65 | | Null Literals | full | `null` |
66 | | Identifiers (variables) | full | `myVar`, `deep.property` |
67 | | Comparison Expressions | full | `a > b`, `a < b`, `a <= b`, `a === b`, `a !== b`, etc. |
68 | | Arithmetic Operators | full | `a + b`, `a * b`, `a - b`, `a / b`, `a % b` |
69 | | Call Expressions | full | `myFunction(a, b, c)` |
70 | | Unary Expressions | full | `!cond`, `!!cond`, `-var`, `+var` |
71 | | Conditional (Ternary) Operator | full | `condition ? a : b` |
72 | | Regex Literal | limited | `/[^@]+@[^\.]+\..+/gi` |
73 | | If Statements | limited | `if (condA) { a } else if (condB) { b } else { c }` |
74 | | Call Expressions with Callback | limited | `map(arr, x => x + 1)` |
75 | | Arrow Functions | limited | `x => x + 1`, `(a, b) => a + b` |
76 |
77 | Notes:
78 |
79 | - Regex Literals: are not supported by the JSON spec. To account for this, they are converted into an array of strings. The first element of the array is the pattern, the second one contains the flags. Example: `[ "\d\d\d\d", "gi" ]`
80 |
81 | - If Statements: Multi-line consequentials (block statements in if statements) are not supported. Also, implicit return will always apply.
82 |
83 | - Call Expressions with Callback: Only arrow functions are allowed as callbacks in call expressions.
84 |
85 | - Arrow Functions: arrow functions can only be single-line expressions or have a one-line block statement
86 |
87 | - If a specific syntactic JS feature is not specified in the table above, it's likely that it isn't supported. If you have an idea on how to support said feature, feel free to file a GitHub Issue.
88 |
89 | ### In Plans to Support
90 |
91 | - Optional Chaining
92 | - Nullish Coalescing
93 |
94 | ### Unsupported Syntax
95 |
96 | The following syntactic features are not supported by this module.
97 |
98 | - Class Declarations
99 | - Private name expressions `#myPrivateProperty`
100 | - Update Expressions (`i++`, `i--`, etc.)
101 | - Assignment Expressions
102 | - Tagged Template Expressions
103 | - Function Declaration
104 | - While Loops
105 | - For Loops
106 | - Multi-Line Block Statements
107 | - `new` operator
108 | - Destructuring assignment
109 | - Rest operator
110 | - Spread operator (although it works within array expressions)
111 |
112 | ### Contributing
113 |
114 | #### Bug Reports & Feature Requests
115 |
116 | Something does not work as expected or perhaps you think this project _needs_ a feature? Please open an issue using GitHub [issue tracker](https://github.com/krismuniz/js-to-json-logic/issues/new).
117 |
118 | Make sure that an issue pointing out your specific problem does not exist already. Please be as specific and straightforward as possible.
119 |
120 | #### Pull Requests
121 |
122 | Pull Requests (PRs) are welcome! You should follow the [same basic stylistic conventions](http://standardjs.com/rules.html) as the original code.
123 |
124 | Make sure that a pull request solving your specific problem does not exist already. Your changes must be concise and focus on solving a discrete problem.
125 |
126 | ### License
127 |
128 | [The MIT License (MIT)](/LICENSE)
129 |
130 | Copyright (c) 2020 [Kristian Muñiz](https://www.krismuniz.com)
131 |
--------------------------------------------------------------------------------
/js-to-json-logic.d.ts:
--------------------------------------------------------------------------------
1 | export default function transformJS (code: string): any
2 |
--------------------------------------------------------------------------------
/lib/index.js:
--------------------------------------------------------------------------------
1 | const { parseScript: parse } = require('meriyah')
2 |
3 | const processOp = (operator) => {
4 | switch (operator) {
5 | case '||':
6 | return 'or'
7 | case '&&':
8 | return 'and'
9 | default:
10 | return operator
11 | }
12 | }
13 |
14 | const replaceVariable = (name) => (rule) => {
15 | const entries = Object.entries(rule)
16 |
17 | if (!entries.length) return rule
18 |
19 | for (const [key, value] of Object.entries(rule)) {
20 | if (key === 'var') return value === name ? { var: '' } : { [key]: value }
21 |
22 | if (Array.isArray(value)) {
23 | return { [key]: value.map(replaceVariable(name)) }
24 | } else {
25 | return rule
26 | }
27 | }
28 | }
29 |
30 | function processError ({ loc, at }, message) {
31 | const error = new Error(message)
32 | error.at = at || loc
33 | throw error
34 | }
35 |
36 | function processNode (node, valueOnly = false) {
37 | if (!node) return null
38 |
39 | switch (node.type) {
40 | case 'Program': {
41 | return node.body.length > 1
42 | ? processError(node, 'Only one expression statement allowed.')
43 | : processNode(node.body[0])
44 | }
45 |
46 | case 'TemplateLiteral': {
47 | const nodes = []
48 | const expressions = node.expressions
49 |
50 | let index = 0
51 | for (const elem of (node.quasis)) {
52 | if (elem.value.cooked) {
53 | nodes.push(elem.value.cooked)
54 | }
55 |
56 | if (index < expressions.length) {
57 | const expr = expressions[index++]
58 | nodes.push(processNode(expr))
59 | }
60 | }
61 |
62 | if (nodes.length === 1) return nodes[0]
63 |
64 | return {
65 | cat: nodes
66 | }
67 | }
68 |
69 | case 'Literal': {
70 | if (node.value instanceof RegExp) {
71 | return [node.value.source, node.value.flags]
72 | }
73 |
74 | return node.value
75 | }
76 |
77 | case 'SpreadElement': {
78 | return processNode(node.argument)
79 | }
80 |
81 | case 'ArrayExpression': {
82 | // handle spread operators [1, 2, ...myArray]
83 | if (node.elements.some((node) => node.type === 'SpreadElement')) {
84 | return {
85 | merge: [
86 | ...node.elements.map((node) => processNode(node))
87 | ]
88 | }
89 | }
90 |
91 | return node.elements.map((node) => processNode(node))
92 | }
93 |
94 | case 'ObjectExpression': {
95 | const result = {}
96 | for (const prop of node.properties) {
97 | if (prop.type === 'SpreadElement') continue
98 | result[processNode(prop.key, true)] = processNode(prop.value)
99 | }
100 | return result
101 | }
102 |
103 | case 'Identifier': {
104 | return node.name === 'undefined'
105 | ? null
106 | : (valueOnly ? node.name : { var: node.name })
107 | }
108 |
109 | case 'ExpressionStatement': {
110 | return processNode(node.expression)
111 | }
112 |
113 | case 'BlockStatement': {
114 | return node.body.length > 1
115 | ? processError(node, 'Block statements can only have one expression statement.')
116 | : processNode(node.body[0])
117 | }
118 |
119 | case 'CallExpression': {
120 | const key = node.callee.type !== 'Identifier' ? processNode(node.callee, true) : node.callee.name
121 |
122 | return {
123 | [key]: node.arguments.map((node) => processNode(node))
124 | }
125 | }
126 |
127 | case 'LogicalExpression':
128 | case 'BinaryExpression': {
129 | return {
130 | [processOp(node.operator)]: [processNode(node.left), processNode(node.right)]
131 | }
132 | }
133 |
134 | case 'UnaryExpression': {
135 | if (node.operator === '!' && node.argument.operator === '!') {
136 | return {
137 | '!!': [processNode(node.argument.argument)]
138 | }
139 | }
140 |
141 | if (node.operator === '-' && typeof node.argument.value === 'number') {
142 | return node.argument.value * -1
143 | }
144 |
145 | return {
146 | [node.operator]: [processNode(node.argument)]
147 | }
148 | }
149 |
150 | case 'ConditionalExpression': {
151 | return {
152 | if: [
153 | processNode(node.test),
154 | processNode(node.consequent),
155 | processNode(node.alternate)
156 | ]
157 | }
158 | }
159 | case 'MemberExpression': {
160 | const object = node.object.type !== 'Identifier' ? processNode(node.object, true) : node.object.name
161 | const property = node.property.type !== 'Identifier'
162 | ? processNode(node.property, true)
163 | : node.property.name
164 |
165 | const value = `${object}.${property}`
166 |
167 | return valueOnly ? value : { var: value }
168 | }
169 |
170 | case 'IfStatement': {
171 | return {
172 | if: [
173 | processNode(node.test),
174 | processNode(node.consequent),
175 | node.alternate
176 | ? processNode(node.alternate)
177 | : undefined
178 | ].filter(Boolean)
179 | }
180 | }
181 |
182 | case 'ArrowFunctionExpression': {
183 | if (node.body.type === 'BlockStatement' && node.body.body.length > 1) {
184 | return processError(node, 'Only one-line arrow functions with implicit return are supported.')
185 | }
186 |
187 | const params = node.params.map((node) => processNode(node))
188 | const body = processNode(node.body)
189 |
190 | return !params.length || params.length > 1
191 | ? body
192 | : replaceVariable(params[0].var)(body)
193 | }
194 |
195 | case 'ReturnStatement': {
196 | return processNode(node.argument)
197 | }
198 |
199 | /** unsuported features */
200 | case 'UpdateExpression': {
201 | return processError(node, 'Update expressions (x++, ++x, x--, --x, etc.) are not supported.')
202 | }
203 | case 'TaggedTemplateExpression': {
204 | return processError(node, 'Tagged template expressions are not supported.')
205 | }
206 | case 'NewExpression': {
207 | return processError(node, 'Expressions that use the `new` keyword are not supported.')
208 | }
209 | case 'ClassDeclaration': {
210 | return processError(node, 'Classes are not supported.')
211 | }
212 | case 'FunctionDeclaration': {
213 | return processError(node, 'Function declarations are not supported.')
214 | }
215 | case 'WhileStatement': {
216 | return processError(node, 'While-loops are not supported.')
217 | }
218 | case 'ForStatement': {
219 | return processError(node, 'For-loops are not supported.')
220 | }
221 | case 'SwitchStatement': {
222 | return processError(node, 'Switch statements are not supported.')
223 | }
224 | case 'VariableDeclaration': {
225 | return processError(node, 'Variable (var, let, const) declarations are not supported.')
226 | }
227 | case 'AssignmentExpression': {
228 | return processError(node, 'Assignments not supported.')
229 | }
230 | case 'PrivateName': {
231 | return processError(node, 'Private names are not supported. Unexpected character \'#\'')
232 | }
233 | /** catch other unsupported features */
234 | default: {
235 | return processError(node, `Invalid node '${node.type}'. Not supported.`)
236 | }
237 | }
238 | }
239 |
240 | const transformJS = (code) => {
241 | try {
242 | return processNode(
243 | parse(code, {
244 | loc: true,
245 | next: true,
246 | module: false,
247 | impliedStrict: true,
248 | directives: false
249 | })
250 | )
251 | } catch (e) {
252 | return processError({
253 | at: e.loc
254 | ? ({
255 | start: {
256 | line: e.loc.line,
257 | column: e.loc.column
258 | },
259 | end: {
260 | line: e.loc.line,
261 | column: e.loc.column
262 | }
263 | })
264 | : e.at
265 | }, `Could not parse code. ${e.message}`)
266 | }
267 | }
268 |
269 | module.exports = transformJS
270 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "js-to-json-logic",
3 | "version": "0.1.3",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@babel/code-frame": {
8 | "version": "7.10.4",
9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
10 | "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
11 | "dev": true,
12 | "requires": {
13 | "@babel/highlight": "^7.10.4"
14 | }
15 | },
16 | "@babel/core": {
17 | "version": "7.10.4",
18 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.10.4.tgz",
19 | "integrity": "sha512-3A0tS0HWpy4XujGc7QtOIHTeNwUgWaZc/WuS5YQrfhU67jnVmsD6OGPc1AKHH0LJHQICGncy3+YUjIhVlfDdcA==",
20 | "dev": true,
21 | "requires": {
22 | "@babel/code-frame": "^7.10.4",
23 | "@babel/generator": "^7.10.4",
24 | "@babel/helper-module-transforms": "^7.10.4",
25 | "@babel/helpers": "^7.10.4",
26 | "@babel/parser": "^7.10.4",
27 | "@babel/template": "^7.10.4",
28 | "@babel/traverse": "^7.10.4",
29 | "@babel/types": "^7.10.4",
30 | "convert-source-map": "^1.7.0",
31 | "debug": "^4.1.0",
32 | "gensync": "^1.0.0-beta.1",
33 | "json5": "^2.1.2",
34 | "lodash": "^4.17.13",
35 | "resolve": "^1.3.2",
36 | "semver": "^5.4.1",
37 | "source-map": "^0.5.0"
38 | }
39 | },
40 | "@babel/generator": {
41 | "version": "7.10.4",
42 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.4.tgz",
43 | "integrity": "sha512-toLIHUIAgcQygFZRAQcsLQV3CBuX6yOIru1kJk/qqqvcRmZrYe6WavZTSG+bB8MxhnL9YPf+pKQfuiP161q7ng==",
44 | "dev": true,
45 | "requires": {
46 | "@babel/types": "^7.10.4",
47 | "jsesc": "^2.5.1",
48 | "lodash": "^4.17.13",
49 | "source-map": "^0.5.0"
50 | }
51 | },
52 | "@babel/helper-function-name": {
53 | "version": "7.10.4",
54 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
55 | "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
56 | "dev": true,
57 | "requires": {
58 | "@babel/helper-get-function-arity": "^7.10.4",
59 | "@babel/template": "^7.10.4",
60 | "@babel/types": "^7.10.4"
61 | }
62 | },
63 | "@babel/helper-get-function-arity": {
64 | "version": "7.10.4",
65 | "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
66 | "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
67 | "dev": true,
68 | "requires": {
69 | "@babel/types": "^7.10.4"
70 | }
71 | },
72 | "@babel/helper-member-expression-to-functions": {
73 | "version": "7.10.4",
74 | "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.4.tgz",
75 | "integrity": "sha512-m5j85pK/KZhuSdM/8cHUABQTAslV47OjfIB9Cc7P+PvlAoBzdb79BGNfw8RhT5Mq3p+xGd0ZfAKixbrUZx0C7A==",
76 | "dev": true,
77 | "requires": {
78 | "@babel/types": "^7.10.4"
79 | }
80 | },
81 | "@babel/helper-module-imports": {
82 | "version": "7.10.4",
83 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz",
84 | "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==",
85 | "dev": true,
86 | "requires": {
87 | "@babel/types": "^7.10.4"
88 | }
89 | },
90 | "@babel/helper-module-transforms": {
91 | "version": "7.10.4",
92 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.4.tgz",
93 | "integrity": "sha512-Er2FQX0oa3nV7eM1o0tNCTx7izmQtwAQsIiaLRWtavAAEcskb0XJ5OjJbVrYXWOTr8om921Scabn4/tzlx7j1Q==",
94 | "dev": true,
95 | "requires": {
96 | "@babel/helper-module-imports": "^7.10.4",
97 | "@babel/helper-replace-supers": "^7.10.4",
98 | "@babel/helper-simple-access": "^7.10.4",
99 | "@babel/helper-split-export-declaration": "^7.10.4",
100 | "@babel/template": "^7.10.4",
101 | "@babel/types": "^7.10.4",
102 | "lodash": "^4.17.13"
103 | }
104 | },
105 | "@babel/helper-optimise-call-expression": {
106 | "version": "7.10.4",
107 | "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz",
108 | "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==",
109 | "dev": true,
110 | "requires": {
111 | "@babel/types": "^7.10.4"
112 | }
113 | },
114 | "@babel/helper-replace-supers": {
115 | "version": "7.10.4",
116 | "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz",
117 | "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==",
118 | "dev": true,
119 | "requires": {
120 | "@babel/helper-member-expression-to-functions": "^7.10.4",
121 | "@babel/helper-optimise-call-expression": "^7.10.4",
122 | "@babel/traverse": "^7.10.4",
123 | "@babel/types": "^7.10.4"
124 | }
125 | },
126 | "@babel/helper-simple-access": {
127 | "version": "7.10.4",
128 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz",
129 | "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==",
130 | "dev": true,
131 | "requires": {
132 | "@babel/template": "^7.10.4",
133 | "@babel/types": "^7.10.4"
134 | }
135 | },
136 | "@babel/helper-split-export-declaration": {
137 | "version": "7.10.4",
138 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz",
139 | "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==",
140 | "dev": true,
141 | "requires": {
142 | "@babel/types": "^7.10.4"
143 | }
144 | },
145 | "@babel/helper-validator-identifier": {
146 | "version": "7.10.4",
147 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
148 | "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
149 | "dev": true
150 | },
151 | "@babel/helpers": {
152 | "version": "7.10.4",
153 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz",
154 | "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==",
155 | "dev": true,
156 | "requires": {
157 | "@babel/template": "^7.10.4",
158 | "@babel/traverse": "^7.10.4",
159 | "@babel/types": "^7.10.4"
160 | }
161 | },
162 | "@babel/highlight": {
163 | "version": "7.10.4",
164 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
165 | "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
166 | "dev": true,
167 | "requires": {
168 | "@babel/helper-validator-identifier": "^7.10.4",
169 | "chalk": "^2.0.0",
170 | "js-tokens": "^4.0.0"
171 | },
172 | "dependencies": {
173 | "chalk": {
174 | "version": "2.4.2",
175 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
176 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
177 | "dev": true,
178 | "requires": {
179 | "ansi-styles": "^3.2.1",
180 | "escape-string-regexp": "^1.0.5",
181 | "supports-color": "^5.3.0"
182 | }
183 | }
184 | }
185 | },
186 | "@babel/parser": {
187 | "version": "7.10.4",
188 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.4.tgz",
189 | "integrity": "sha512-8jHII4hf+YVDsskTF6WuMB3X4Eh+PsUkC2ljq22so5rHvH+T8BzyL94VOdyFLNR8tBSVXOTbNHOKpR4TfRxVtA==",
190 | "dev": true
191 | },
192 | "@babel/runtime-corejs3": {
193 | "version": "7.10.4",
194 | "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.10.4.tgz",
195 | "integrity": "sha512-BFlgP2SoLO9HJX9WBwN67gHWMBhDX/eDz64Jajd6mR/UAUzqrNMm99d4qHnVaKscAElZoFiPv+JpR/Siud5lXw==",
196 | "dev": true,
197 | "requires": {
198 | "core-js-pure": "^3.0.0",
199 | "regenerator-runtime": "^0.13.4"
200 | }
201 | },
202 | "@babel/template": {
203 | "version": "7.10.4",
204 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
205 | "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
206 | "dev": true,
207 | "requires": {
208 | "@babel/code-frame": "^7.10.4",
209 | "@babel/parser": "^7.10.4",
210 | "@babel/types": "^7.10.4"
211 | }
212 | },
213 | "@babel/traverse": {
214 | "version": "7.10.4",
215 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.4.tgz",
216 | "integrity": "sha512-aSy7p5THgSYm4YyxNGz6jZpXf+Ok40QF3aA2LyIONkDHpAcJzDUqlCKXv6peqYUs2gmic849C/t2HKw2a2K20Q==",
217 | "dev": true,
218 | "requires": {
219 | "@babel/code-frame": "^7.10.4",
220 | "@babel/generator": "^7.10.4",
221 | "@babel/helper-function-name": "^7.10.4",
222 | "@babel/helper-split-export-declaration": "^7.10.4",
223 | "@babel/parser": "^7.10.4",
224 | "@babel/types": "^7.10.4",
225 | "debug": "^4.1.0",
226 | "globals": "^11.1.0",
227 | "lodash": "^4.17.13"
228 | },
229 | "dependencies": {
230 | "globals": {
231 | "version": "11.12.0",
232 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
233 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
234 | "dev": true
235 | }
236 | }
237 | },
238 | "@babel/types": {
239 | "version": "7.10.4",
240 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz",
241 | "integrity": "sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==",
242 | "dev": true,
243 | "requires": {
244 | "@babel/helper-validator-identifier": "^7.10.4",
245 | "lodash": "^4.17.13",
246 | "to-fast-properties": "^2.0.0"
247 | }
248 | },
249 | "@istanbuljs/load-nyc-config": {
250 | "version": "1.1.0",
251 | "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
252 | "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
253 | "dev": true,
254 | "requires": {
255 | "camelcase": "^5.3.1",
256 | "find-up": "^4.1.0",
257 | "get-package-type": "^0.1.0",
258 | "js-yaml": "^3.13.1",
259 | "resolve-from": "^5.0.0"
260 | },
261 | "dependencies": {
262 | "resolve-from": {
263 | "version": "5.0.0",
264 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
265 | "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
266 | "dev": true
267 | }
268 | }
269 | },
270 | "@istanbuljs/schema": {
271 | "version": "0.1.2",
272 | "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz",
273 | "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==",
274 | "dev": true
275 | },
276 | "@types/color-name": {
277 | "version": "1.1.1",
278 | "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
279 | "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
280 | "dev": true
281 | },
282 | "@types/json5": {
283 | "version": "0.0.29",
284 | "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
285 | "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=",
286 | "dev": true
287 | },
288 | "@types/parse-json": {
289 | "version": "4.0.0",
290 | "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
291 | "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
292 | "dev": true
293 | },
294 | "acorn": {
295 | "version": "7.3.1",
296 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz",
297 | "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==",
298 | "dev": true
299 | },
300 | "acorn-jsx": {
301 | "version": "5.2.0",
302 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz",
303 | "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==",
304 | "dev": true
305 | },
306 | "aggregate-error": {
307 | "version": "3.0.1",
308 | "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz",
309 | "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==",
310 | "dev": true,
311 | "requires": {
312 | "clean-stack": "^2.0.0",
313 | "indent-string": "^4.0.0"
314 | }
315 | },
316 | "ajv": {
317 | "version": "6.12.2",
318 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
319 | "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
320 | "dev": true,
321 | "requires": {
322 | "fast-deep-equal": "^3.1.1",
323 | "fast-json-stable-stringify": "^2.0.0",
324 | "json-schema-traverse": "^0.4.1",
325 | "uri-js": "^4.2.2"
326 | }
327 | },
328 | "ansi-colors": {
329 | "version": "4.1.1",
330 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
331 | "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
332 | "dev": true
333 | },
334 | "ansi-regex": {
335 | "version": "5.0.0",
336 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
337 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
338 | "dev": true
339 | },
340 | "ansi-styles": {
341 | "version": "3.2.1",
342 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
343 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
344 | "dev": true,
345 | "requires": {
346 | "color-convert": "^1.9.0"
347 | }
348 | },
349 | "anymatch": {
350 | "version": "3.1.1",
351 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
352 | "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
353 | "dev": true,
354 | "requires": {
355 | "normalize-path": "^3.0.0",
356 | "picomatch": "^2.0.4"
357 | }
358 | },
359 | "append-transform": {
360 | "version": "2.0.0",
361 | "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz",
362 | "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==",
363 | "dev": true,
364 | "requires": {
365 | "default-require-extensions": "^3.0.0"
366 | }
367 | },
368 | "archy": {
369 | "version": "1.0.0",
370 | "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
371 | "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=",
372 | "dev": true
373 | },
374 | "argparse": {
375 | "version": "1.0.10",
376 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
377 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
378 | "dev": true,
379 | "requires": {
380 | "sprintf-js": "~1.0.2"
381 | }
382 | },
383 | "array-includes": {
384 | "version": "3.1.1",
385 | "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz",
386 | "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==",
387 | "dev": true,
388 | "requires": {
389 | "define-properties": "^1.1.3",
390 | "es-abstract": "^1.17.0",
391 | "is-string": "^1.0.5"
392 | }
393 | },
394 | "array.prototype.flat": {
395 | "version": "1.2.3",
396 | "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz",
397 | "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==",
398 | "dev": true,
399 | "requires": {
400 | "define-properties": "^1.1.3",
401 | "es-abstract": "^1.17.0-next.1"
402 | }
403 | },
404 | "array.prototype.map": {
405 | "version": "1.0.2",
406 | "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.2.tgz",
407 | "integrity": "sha512-Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw==",
408 | "dev": true,
409 | "requires": {
410 | "define-properties": "^1.1.3",
411 | "es-abstract": "^1.17.0-next.1",
412 | "es-array-method-boxes-properly": "^1.0.0",
413 | "is-string": "^1.0.4"
414 | }
415 | },
416 | "assertion-error": {
417 | "version": "1.1.0",
418 | "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
419 | "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
420 | "dev": true
421 | },
422 | "astral-regex": {
423 | "version": "1.0.0",
424 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
425 | "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
426 | "dev": true
427 | },
428 | "balanced-match": {
429 | "version": "1.0.0",
430 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
431 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
432 | "dev": true
433 | },
434 | "binary-extensions": {
435 | "version": "2.1.0",
436 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
437 | "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==",
438 | "dev": true
439 | },
440 | "brace-expansion": {
441 | "version": "1.1.11",
442 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
443 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
444 | "dev": true,
445 | "requires": {
446 | "balanced-match": "^1.0.0",
447 | "concat-map": "0.0.1"
448 | }
449 | },
450 | "braces": {
451 | "version": "3.0.2",
452 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
453 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
454 | "dev": true,
455 | "requires": {
456 | "fill-range": "^7.0.1"
457 | }
458 | },
459 | "browser-stdout": {
460 | "version": "1.3.1",
461 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
462 | "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
463 | "dev": true
464 | },
465 | "caching-transform": {
466 | "version": "4.0.0",
467 | "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz",
468 | "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==",
469 | "dev": true,
470 | "requires": {
471 | "hasha": "^5.0.0",
472 | "make-dir": "^3.0.0",
473 | "package-hash": "^4.0.0",
474 | "write-file-atomic": "^3.0.0"
475 | }
476 | },
477 | "callsites": {
478 | "version": "3.1.0",
479 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
480 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
481 | "dev": true
482 | },
483 | "camelcase": {
484 | "version": "5.3.1",
485 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
486 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
487 | "dev": true
488 | },
489 | "chai": {
490 | "version": "4.2.0",
491 | "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz",
492 | "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==",
493 | "dev": true,
494 | "requires": {
495 | "assertion-error": "^1.1.0",
496 | "check-error": "^1.0.2",
497 | "deep-eql": "^3.0.1",
498 | "get-func-name": "^2.0.0",
499 | "pathval": "^1.1.0",
500 | "type-detect": "^4.0.5"
501 | }
502 | },
503 | "chalk": {
504 | "version": "4.1.0",
505 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
506 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
507 | "dev": true,
508 | "requires": {
509 | "ansi-styles": "^4.1.0",
510 | "supports-color": "^7.1.0"
511 | },
512 | "dependencies": {
513 | "ansi-styles": {
514 | "version": "4.2.1",
515 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
516 | "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
517 | "dev": true,
518 | "requires": {
519 | "@types/color-name": "^1.1.1",
520 | "color-convert": "^2.0.1"
521 | }
522 | },
523 | "color-convert": {
524 | "version": "2.0.1",
525 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
526 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
527 | "dev": true,
528 | "requires": {
529 | "color-name": "~1.1.4"
530 | }
531 | },
532 | "color-name": {
533 | "version": "1.1.4",
534 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
535 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
536 | "dev": true
537 | },
538 | "has-flag": {
539 | "version": "4.0.0",
540 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
541 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
542 | "dev": true
543 | },
544 | "supports-color": {
545 | "version": "7.1.0",
546 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
547 | "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
548 | "dev": true,
549 | "requires": {
550 | "has-flag": "^4.0.0"
551 | }
552 | }
553 | }
554 | },
555 | "check-error": {
556 | "version": "1.0.2",
557 | "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
558 | "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
559 | "dev": true
560 | },
561 | "chokidar": {
562 | "version": "3.3.1",
563 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz",
564 | "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==",
565 | "dev": true,
566 | "requires": {
567 | "anymatch": "~3.1.1",
568 | "braces": "~3.0.2",
569 | "fsevents": "~2.1.2",
570 | "glob-parent": "~5.1.0",
571 | "is-binary-path": "~2.1.0",
572 | "is-glob": "~4.0.1",
573 | "normalize-path": "~3.0.0",
574 | "readdirp": "~3.3.0"
575 | }
576 | },
577 | "ci-info": {
578 | "version": "2.0.0",
579 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
580 | "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
581 | "dev": true
582 | },
583 | "clean-stack": {
584 | "version": "2.2.0",
585 | "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
586 | "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
587 | "dev": true
588 | },
589 | "cliui": {
590 | "version": "5.0.0",
591 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
592 | "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
593 | "dev": true,
594 | "requires": {
595 | "string-width": "^3.1.0",
596 | "strip-ansi": "^5.2.0",
597 | "wrap-ansi": "^5.1.0"
598 | },
599 | "dependencies": {
600 | "ansi-regex": {
601 | "version": "4.1.0",
602 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
603 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
604 | "dev": true
605 | },
606 | "strip-ansi": {
607 | "version": "5.2.0",
608 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
609 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
610 | "dev": true,
611 | "requires": {
612 | "ansi-regex": "^4.1.0"
613 | }
614 | }
615 | }
616 | },
617 | "color-convert": {
618 | "version": "1.9.3",
619 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
620 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
621 | "dev": true,
622 | "requires": {
623 | "color-name": "1.1.3"
624 | }
625 | },
626 | "color-name": {
627 | "version": "1.1.3",
628 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
629 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
630 | "dev": true
631 | },
632 | "commondir": {
633 | "version": "1.0.1",
634 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
635 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
636 | "dev": true
637 | },
638 | "compare-versions": {
639 | "version": "3.6.0",
640 | "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz",
641 | "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==",
642 | "dev": true
643 | },
644 | "concat-map": {
645 | "version": "0.0.1",
646 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
647 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
648 | "dev": true
649 | },
650 | "contains-path": {
651 | "version": "0.1.0",
652 | "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz",
653 | "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=",
654 | "dev": true
655 | },
656 | "convert-source-map": {
657 | "version": "1.7.0",
658 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
659 | "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
660 | "dev": true,
661 | "requires": {
662 | "safe-buffer": "~5.1.1"
663 | }
664 | },
665 | "core-js-pure": {
666 | "version": "3.6.5",
667 | "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz",
668 | "integrity": "sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==",
669 | "dev": true
670 | },
671 | "cosmiconfig": {
672 | "version": "6.0.0",
673 | "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
674 | "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
675 | "dev": true,
676 | "requires": {
677 | "@types/parse-json": "^4.0.0",
678 | "import-fresh": "^3.1.0",
679 | "parse-json": "^5.0.0",
680 | "path-type": "^4.0.0",
681 | "yaml": "^1.7.2"
682 | },
683 | "dependencies": {
684 | "parse-json": {
685 | "version": "5.0.0",
686 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz",
687 | "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==",
688 | "dev": true,
689 | "requires": {
690 | "@babel/code-frame": "^7.0.0",
691 | "error-ex": "^1.3.1",
692 | "json-parse-better-errors": "^1.0.1",
693 | "lines-and-columns": "^1.1.6"
694 | }
695 | },
696 | "path-type": {
697 | "version": "4.0.0",
698 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
699 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
700 | "dev": true
701 | }
702 | }
703 | },
704 | "cross-spawn": {
705 | "version": "7.0.3",
706 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
707 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
708 | "dev": true,
709 | "requires": {
710 | "path-key": "^3.1.0",
711 | "shebang-command": "^2.0.0",
712 | "which": "^2.0.1"
713 | }
714 | },
715 | "debug": {
716 | "version": "4.1.1",
717 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
718 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
719 | "dev": true,
720 | "requires": {
721 | "ms": "^2.1.1"
722 | }
723 | },
724 | "decamelize": {
725 | "version": "1.2.0",
726 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
727 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
728 | "dev": true
729 | },
730 | "deep-eql": {
731 | "version": "3.0.1",
732 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
733 | "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
734 | "dev": true,
735 | "requires": {
736 | "type-detect": "^4.0.0"
737 | }
738 | },
739 | "deep-is": {
740 | "version": "0.1.3",
741 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
742 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
743 | "dev": true
744 | },
745 | "default-require-extensions": {
746 | "version": "3.0.0",
747 | "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz",
748 | "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==",
749 | "dev": true,
750 | "requires": {
751 | "strip-bom": "^4.0.0"
752 | }
753 | },
754 | "define-properties": {
755 | "version": "1.1.3",
756 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
757 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
758 | "dev": true,
759 | "requires": {
760 | "object-keys": "^1.0.12"
761 | }
762 | },
763 | "diff": {
764 | "version": "4.0.2",
765 | "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
766 | "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
767 | "dev": true
768 | },
769 | "doctrine": {
770 | "version": "3.0.0",
771 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
772 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
773 | "dev": true,
774 | "requires": {
775 | "esutils": "^2.0.2"
776 | }
777 | },
778 | "emoji-regex": {
779 | "version": "7.0.3",
780 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
781 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
782 | "dev": true
783 | },
784 | "enquirer": {
785 | "version": "2.3.6",
786 | "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
787 | "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
788 | "dev": true,
789 | "requires": {
790 | "ansi-colors": "^4.1.1"
791 | }
792 | },
793 | "error-ex": {
794 | "version": "1.3.2",
795 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
796 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
797 | "dev": true,
798 | "requires": {
799 | "is-arrayish": "^0.2.1"
800 | }
801 | },
802 | "es-abstract": {
803 | "version": "1.17.0",
804 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0.tgz",
805 | "integrity": "sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug==",
806 | "dev": true,
807 | "requires": {
808 | "es-to-primitive": "^1.2.1",
809 | "function-bind": "^1.1.1",
810 | "has": "^1.0.3",
811 | "has-symbols": "^1.0.1",
812 | "is-callable": "^1.1.5",
813 | "is-regex": "^1.0.5",
814 | "object-inspect": "^1.7.0",
815 | "object-keys": "^1.1.1",
816 | "object.assign": "^4.1.0",
817 | "string.prototype.trimleft": "^2.1.1",
818 | "string.prototype.trimright": "^2.1.1"
819 | }
820 | },
821 | "es-array-method-boxes-properly": {
822 | "version": "1.0.0",
823 | "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
824 | "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==",
825 | "dev": true
826 | },
827 | "es-get-iterator": {
828 | "version": "1.1.0",
829 | "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.0.tgz",
830 | "integrity": "sha512-UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ==",
831 | "dev": true,
832 | "requires": {
833 | "es-abstract": "^1.17.4",
834 | "has-symbols": "^1.0.1",
835 | "is-arguments": "^1.0.4",
836 | "is-map": "^2.0.1",
837 | "is-set": "^2.0.1",
838 | "is-string": "^1.0.5",
839 | "isarray": "^2.0.5"
840 | },
841 | "dependencies": {
842 | "es-abstract": {
843 | "version": "1.17.6",
844 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz",
845 | "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==",
846 | "dev": true,
847 | "requires": {
848 | "es-to-primitive": "^1.2.1",
849 | "function-bind": "^1.1.1",
850 | "has": "^1.0.3",
851 | "has-symbols": "^1.0.1",
852 | "is-callable": "^1.2.0",
853 | "is-regex": "^1.1.0",
854 | "object-inspect": "^1.7.0",
855 | "object-keys": "^1.1.1",
856 | "object.assign": "^4.1.0",
857 | "string.prototype.trimend": "^1.0.1",
858 | "string.prototype.trimstart": "^1.0.1"
859 | }
860 | },
861 | "is-callable": {
862 | "version": "1.2.0",
863 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz",
864 | "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==",
865 | "dev": true
866 | },
867 | "is-regex": {
868 | "version": "1.1.0",
869 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz",
870 | "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==",
871 | "dev": true,
872 | "requires": {
873 | "has-symbols": "^1.0.1"
874 | }
875 | },
876 | "isarray": {
877 | "version": "2.0.5",
878 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
879 | "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
880 | "dev": true
881 | }
882 | }
883 | },
884 | "es-to-primitive": {
885 | "version": "1.2.1",
886 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
887 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
888 | "dev": true,
889 | "requires": {
890 | "is-callable": "^1.1.4",
891 | "is-date-object": "^1.0.1",
892 | "is-symbol": "^1.0.2"
893 | }
894 | },
895 | "es6-error": {
896 | "version": "4.1.1",
897 | "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
898 | "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
899 | "dev": true
900 | },
901 | "escape-string-regexp": {
902 | "version": "1.0.5",
903 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
904 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
905 | "dev": true
906 | },
907 | "eslint": {
908 | "version": "7.3.1",
909 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.3.1.tgz",
910 | "integrity": "sha512-cQC/xj9bhWUcyi/RuMbRtC3I0eW8MH0jhRELSvpKYkWep3C6YZ2OkvcvJVUeO6gcunABmzptbXBuDoXsjHmfTA==",
911 | "dev": true,
912 | "requires": {
913 | "@babel/code-frame": "^7.0.0",
914 | "ajv": "^6.10.0",
915 | "chalk": "^4.0.0",
916 | "cross-spawn": "^7.0.2",
917 | "debug": "^4.0.1",
918 | "doctrine": "^3.0.0",
919 | "enquirer": "^2.3.5",
920 | "eslint-scope": "^5.1.0",
921 | "eslint-utils": "^2.0.0",
922 | "eslint-visitor-keys": "^1.2.0",
923 | "espree": "^7.1.0",
924 | "esquery": "^1.2.0",
925 | "esutils": "^2.0.2",
926 | "file-entry-cache": "^5.0.1",
927 | "functional-red-black-tree": "^1.0.1",
928 | "glob-parent": "^5.0.0",
929 | "globals": "^12.1.0",
930 | "ignore": "^4.0.6",
931 | "import-fresh": "^3.0.0",
932 | "imurmurhash": "^0.1.4",
933 | "is-glob": "^4.0.0",
934 | "js-yaml": "^3.13.1",
935 | "json-stable-stringify-without-jsonify": "^1.0.1",
936 | "levn": "^0.4.1",
937 | "lodash": "^4.17.14",
938 | "minimatch": "^3.0.4",
939 | "natural-compare": "^1.4.0",
940 | "optionator": "^0.9.1",
941 | "progress": "^2.0.0",
942 | "regexpp": "^3.1.0",
943 | "semver": "^7.2.1",
944 | "strip-ansi": "^6.0.0",
945 | "strip-json-comments": "^3.1.0",
946 | "table": "^5.2.3",
947 | "text-table": "^0.2.0",
948 | "v8-compile-cache": "^2.0.3"
949 | },
950 | "dependencies": {
951 | "eslint-visitor-keys": {
952 | "version": "1.3.0",
953 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
954 | "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
955 | "dev": true
956 | },
957 | "semver": {
958 | "version": "7.3.2",
959 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
960 | "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
961 | "dev": true
962 | }
963 | }
964 | },
965 | "eslint-config-standard": {
966 | "version": "14.1.0",
967 | "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-14.1.0.tgz",
968 | "integrity": "sha512-EF6XkrrGVbvv8hL/kYa/m6vnvmUT+K82pJJc4JJVMM6+Qgqh0pnwprSxdduDLB9p/7bIxD+YV5O0wfb8lmcPbA==",
969 | "dev": true
970 | },
971 | "eslint-import-resolver-node": {
972 | "version": "0.3.4",
973 | "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz",
974 | "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==",
975 | "dev": true,
976 | "requires": {
977 | "debug": "^2.6.9",
978 | "resolve": "^1.13.1"
979 | },
980 | "dependencies": {
981 | "debug": {
982 | "version": "2.6.9",
983 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
984 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
985 | "dev": true,
986 | "requires": {
987 | "ms": "2.0.0"
988 | }
989 | },
990 | "ms": {
991 | "version": "2.0.0",
992 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
993 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
994 | "dev": true
995 | }
996 | }
997 | },
998 | "eslint-module-utils": {
999 | "version": "2.6.0",
1000 | "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz",
1001 | "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==",
1002 | "dev": true,
1003 | "requires": {
1004 | "debug": "^2.6.9",
1005 | "pkg-dir": "^2.0.0"
1006 | },
1007 | "dependencies": {
1008 | "debug": {
1009 | "version": "2.6.9",
1010 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1011 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1012 | "dev": true,
1013 | "requires": {
1014 | "ms": "2.0.0"
1015 | }
1016 | },
1017 | "find-up": {
1018 | "version": "2.1.0",
1019 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
1020 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
1021 | "dev": true,
1022 | "requires": {
1023 | "locate-path": "^2.0.0"
1024 | }
1025 | },
1026 | "locate-path": {
1027 | "version": "2.0.0",
1028 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
1029 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
1030 | "dev": true,
1031 | "requires": {
1032 | "p-locate": "^2.0.0",
1033 | "path-exists": "^3.0.0"
1034 | }
1035 | },
1036 | "ms": {
1037 | "version": "2.0.0",
1038 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1039 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
1040 | "dev": true
1041 | },
1042 | "p-limit": {
1043 | "version": "1.3.0",
1044 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
1045 | "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
1046 | "dev": true,
1047 | "requires": {
1048 | "p-try": "^1.0.0"
1049 | }
1050 | },
1051 | "p-locate": {
1052 | "version": "2.0.0",
1053 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
1054 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
1055 | "dev": true,
1056 | "requires": {
1057 | "p-limit": "^1.1.0"
1058 | }
1059 | },
1060 | "p-try": {
1061 | "version": "1.0.0",
1062 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
1063 | "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
1064 | "dev": true
1065 | },
1066 | "pkg-dir": {
1067 | "version": "2.0.0",
1068 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
1069 | "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
1070 | "dev": true,
1071 | "requires": {
1072 | "find-up": "^2.1.0"
1073 | }
1074 | }
1075 | }
1076 | },
1077 | "eslint-plugin-es": {
1078 | "version": "3.0.0",
1079 | "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.0.tgz",
1080 | "integrity": "sha512-6/Jb/J/ZvSebydwbBJO1R9E5ky7YeElfK56Veh7e4QGFHCXoIXGH9HhVz+ibJLM3XJ1XjP+T7rKBLUa/Y7eIng==",
1081 | "dev": true,
1082 | "requires": {
1083 | "eslint-utils": "^2.0.0",
1084 | "regexpp": "^3.0.0"
1085 | },
1086 | "dependencies": {
1087 | "eslint-utils": {
1088 | "version": "2.0.0",
1089 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz",
1090 | "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==",
1091 | "dev": true,
1092 | "requires": {
1093 | "eslint-visitor-keys": "^1.1.0"
1094 | }
1095 | },
1096 | "regexpp": {
1097 | "version": "3.0.0",
1098 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.0.0.tgz",
1099 | "integrity": "sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g==",
1100 | "dev": true
1101 | }
1102 | }
1103 | },
1104 | "eslint-plugin-import": {
1105 | "version": "2.22.0",
1106 | "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz",
1107 | "integrity": "sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg==",
1108 | "dev": true,
1109 | "requires": {
1110 | "array-includes": "^3.1.1",
1111 | "array.prototype.flat": "^1.2.3",
1112 | "contains-path": "^0.1.0",
1113 | "debug": "^2.6.9",
1114 | "doctrine": "1.5.0",
1115 | "eslint-import-resolver-node": "^0.3.3",
1116 | "eslint-module-utils": "^2.6.0",
1117 | "has": "^1.0.3",
1118 | "minimatch": "^3.0.4",
1119 | "object.values": "^1.1.1",
1120 | "read-pkg-up": "^2.0.0",
1121 | "resolve": "^1.17.0",
1122 | "tsconfig-paths": "^3.9.0"
1123 | },
1124 | "dependencies": {
1125 | "debug": {
1126 | "version": "2.6.9",
1127 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1128 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1129 | "dev": true,
1130 | "requires": {
1131 | "ms": "2.0.0"
1132 | }
1133 | },
1134 | "doctrine": {
1135 | "version": "1.5.0",
1136 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
1137 | "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
1138 | "dev": true,
1139 | "requires": {
1140 | "esutils": "^2.0.2",
1141 | "isarray": "^1.0.0"
1142 | }
1143 | },
1144 | "ms": {
1145 | "version": "2.0.0",
1146 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1147 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
1148 | "dev": true
1149 | },
1150 | "resolve": {
1151 | "version": "1.17.0",
1152 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
1153 | "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
1154 | "dev": true,
1155 | "requires": {
1156 | "path-parse": "^1.0.6"
1157 | }
1158 | }
1159 | }
1160 | },
1161 | "eslint-plugin-node": {
1162 | "version": "11.0.0",
1163 | "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.0.0.tgz",
1164 | "integrity": "sha512-chUs/NVID+sknFiJzxoN9lM7uKSOEta8GC8365hw1nDfwIPIjjpRSwwPvQanWv8dt/pDe9EV4anmVSwdiSndNg==",
1165 | "dev": true,
1166 | "requires": {
1167 | "eslint-plugin-es": "^3.0.0",
1168 | "eslint-utils": "^2.0.0",
1169 | "ignore": "^5.1.1",
1170 | "minimatch": "^3.0.4",
1171 | "resolve": "^1.10.1",
1172 | "semver": "^6.1.0"
1173 | },
1174 | "dependencies": {
1175 | "eslint-utils": {
1176 | "version": "2.0.0",
1177 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz",
1178 | "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==",
1179 | "dev": true,
1180 | "requires": {
1181 | "eslint-visitor-keys": "^1.1.0"
1182 | }
1183 | },
1184 | "ignore": {
1185 | "version": "5.1.4",
1186 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz",
1187 | "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==",
1188 | "dev": true
1189 | },
1190 | "semver": {
1191 | "version": "6.3.0",
1192 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1193 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1194 | "dev": true
1195 | }
1196 | }
1197 | },
1198 | "eslint-plugin-promise": {
1199 | "version": "4.2.1",
1200 | "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz",
1201 | "integrity": "sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==",
1202 | "dev": true
1203 | },
1204 | "eslint-plugin-standard": {
1205 | "version": "4.0.1",
1206 | "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.0.1.tgz",
1207 | "integrity": "sha512-v/KBnfyaOMPmZc/dmc6ozOdWqekGp7bBGq4jLAecEfPGmfKiWS4sA8sC0LqiV9w5qmXAtXVn4M3p1jSyhY85SQ==",
1208 | "dev": true
1209 | },
1210 | "eslint-scope": {
1211 | "version": "5.1.0",
1212 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz",
1213 | "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==",
1214 | "dev": true,
1215 | "requires": {
1216 | "esrecurse": "^4.1.0",
1217 | "estraverse": "^4.1.1"
1218 | }
1219 | },
1220 | "eslint-utils": {
1221 | "version": "2.1.0",
1222 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
1223 | "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
1224 | "dev": true,
1225 | "requires": {
1226 | "eslint-visitor-keys": "^1.1.0"
1227 | }
1228 | },
1229 | "eslint-visitor-keys": {
1230 | "version": "1.1.0",
1231 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz",
1232 | "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==",
1233 | "dev": true
1234 | },
1235 | "espree": {
1236 | "version": "7.1.0",
1237 | "resolved": "https://registry.npmjs.org/espree/-/espree-7.1.0.tgz",
1238 | "integrity": "sha512-dcorZSyfmm4WTuTnE5Y7MEN1DyoPYy1ZR783QW1FJoenn7RailyWFsq/UL6ZAAA7uXurN9FIpYyUs3OfiIW+Qw==",
1239 | "dev": true,
1240 | "requires": {
1241 | "acorn": "^7.2.0",
1242 | "acorn-jsx": "^5.2.0",
1243 | "eslint-visitor-keys": "^1.2.0"
1244 | },
1245 | "dependencies": {
1246 | "eslint-visitor-keys": {
1247 | "version": "1.3.0",
1248 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
1249 | "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
1250 | "dev": true
1251 | }
1252 | }
1253 | },
1254 | "esprima": {
1255 | "version": "4.0.1",
1256 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
1257 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
1258 | "dev": true
1259 | },
1260 | "esquery": {
1261 | "version": "1.3.1",
1262 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz",
1263 | "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==",
1264 | "dev": true,
1265 | "requires": {
1266 | "estraverse": "^5.1.0"
1267 | },
1268 | "dependencies": {
1269 | "estraverse": {
1270 | "version": "5.1.0",
1271 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz",
1272 | "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==",
1273 | "dev": true
1274 | }
1275 | }
1276 | },
1277 | "esrecurse": {
1278 | "version": "4.2.1",
1279 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
1280 | "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
1281 | "dev": true,
1282 | "requires": {
1283 | "estraverse": "^4.1.0"
1284 | }
1285 | },
1286 | "estraverse": {
1287 | "version": "4.3.0",
1288 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
1289 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
1290 | "dev": true
1291 | },
1292 | "esutils": {
1293 | "version": "2.0.3",
1294 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
1295 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
1296 | "dev": true
1297 | },
1298 | "fast-deep-equal": {
1299 | "version": "3.1.3",
1300 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
1301 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
1302 | "dev": true
1303 | },
1304 | "fast-json-stable-stringify": {
1305 | "version": "2.1.0",
1306 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
1307 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
1308 | "dev": true
1309 | },
1310 | "fast-levenshtein": {
1311 | "version": "2.0.6",
1312 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
1313 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
1314 | "dev": true
1315 | },
1316 | "file-entry-cache": {
1317 | "version": "5.0.1",
1318 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
1319 | "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
1320 | "dev": true,
1321 | "requires": {
1322 | "flat-cache": "^2.0.1"
1323 | }
1324 | },
1325 | "fill-range": {
1326 | "version": "7.0.1",
1327 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
1328 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
1329 | "dev": true,
1330 | "requires": {
1331 | "to-regex-range": "^5.0.1"
1332 | }
1333 | },
1334 | "find-cache-dir": {
1335 | "version": "3.3.1",
1336 | "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz",
1337 | "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==",
1338 | "dev": true,
1339 | "requires": {
1340 | "commondir": "^1.0.1",
1341 | "make-dir": "^3.0.2",
1342 | "pkg-dir": "^4.1.0"
1343 | }
1344 | },
1345 | "find-up": {
1346 | "version": "4.1.0",
1347 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
1348 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
1349 | "dev": true,
1350 | "requires": {
1351 | "locate-path": "^5.0.0",
1352 | "path-exists": "^4.0.0"
1353 | },
1354 | "dependencies": {
1355 | "path-exists": {
1356 | "version": "4.0.0",
1357 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
1358 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
1359 | "dev": true
1360 | }
1361 | }
1362 | },
1363 | "find-versions": {
1364 | "version": "3.2.0",
1365 | "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz",
1366 | "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==",
1367 | "dev": true,
1368 | "requires": {
1369 | "semver-regex": "^2.0.0"
1370 | }
1371 | },
1372 | "flat": {
1373 | "version": "4.1.0",
1374 | "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz",
1375 | "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==",
1376 | "dev": true,
1377 | "requires": {
1378 | "is-buffer": "~2.0.3"
1379 | }
1380 | },
1381 | "flat-cache": {
1382 | "version": "2.0.1",
1383 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
1384 | "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
1385 | "dev": true,
1386 | "requires": {
1387 | "flatted": "^2.0.0",
1388 | "rimraf": "2.6.3",
1389 | "write": "1.0.3"
1390 | }
1391 | },
1392 | "flatted": {
1393 | "version": "2.0.2",
1394 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
1395 | "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
1396 | "dev": true
1397 | },
1398 | "foreground-child": {
1399 | "version": "2.0.0",
1400 | "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz",
1401 | "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==",
1402 | "dev": true,
1403 | "requires": {
1404 | "cross-spawn": "^7.0.0",
1405 | "signal-exit": "^3.0.2"
1406 | }
1407 | },
1408 | "fromentries": {
1409 | "version": "1.2.0",
1410 | "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.2.0.tgz",
1411 | "integrity": "sha512-33X7H/wdfO99GdRLLgkjUrD4geAFdq/Uv0kl3HD4da6HDixd2GUg8Mw7dahLCV9r/EARkmtYBB6Tch4EEokFTQ==",
1412 | "dev": true
1413 | },
1414 | "fs.realpath": {
1415 | "version": "1.0.0",
1416 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1417 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
1418 | "dev": true
1419 | },
1420 | "fsevents": {
1421 | "version": "2.1.3",
1422 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
1423 | "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
1424 | "dev": true,
1425 | "optional": true
1426 | },
1427 | "function-bind": {
1428 | "version": "1.1.1",
1429 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1430 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
1431 | "dev": true
1432 | },
1433 | "functional-red-black-tree": {
1434 | "version": "1.0.1",
1435 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
1436 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
1437 | "dev": true
1438 | },
1439 | "gensync": {
1440 | "version": "1.0.0-beta.1",
1441 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz",
1442 | "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==",
1443 | "dev": true
1444 | },
1445 | "get-caller-file": {
1446 | "version": "2.0.5",
1447 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
1448 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
1449 | "dev": true
1450 | },
1451 | "get-func-name": {
1452 | "version": "2.0.0",
1453 | "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
1454 | "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
1455 | "dev": true
1456 | },
1457 | "get-package-type": {
1458 | "version": "0.1.0",
1459 | "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
1460 | "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
1461 | "dev": true
1462 | },
1463 | "glob": {
1464 | "version": "7.1.6",
1465 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
1466 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
1467 | "dev": true,
1468 | "requires": {
1469 | "fs.realpath": "^1.0.0",
1470 | "inflight": "^1.0.4",
1471 | "inherits": "2",
1472 | "minimatch": "^3.0.4",
1473 | "once": "^1.3.0",
1474 | "path-is-absolute": "^1.0.0"
1475 | }
1476 | },
1477 | "glob-parent": {
1478 | "version": "5.1.1",
1479 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
1480 | "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
1481 | "dev": true,
1482 | "requires": {
1483 | "is-glob": "^4.0.1"
1484 | }
1485 | },
1486 | "globals": {
1487 | "version": "12.4.0",
1488 | "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
1489 | "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
1490 | "dev": true,
1491 | "requires": {
1492 | "type-fest": "^0.8.1"
1493 | }
1494 | },
1495 | "graceful-fs": {
1496 | "version": "4.2.3",
1497 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
1498 | "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
1499 | "dev": true
1500 | },
1501 | "growl": {
1502 | "version": "1.10.5",
1503 | "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
1504 | "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
1505 | "dev": true
1506 | },
1507 | "has": {
1508 | "version": "1.0.3",
1509 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1510 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1511 | "dev": true,
1512 | "requires": {
1513 | "function-bind": "^1.1.1"
1514 | }
1515 | },
1516 | "has-flag": {
1517 | "version": "3.0.0",
1518 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1519 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
1520 | "dev": true
1521 | },
1522 | "has-symbols": {
1523 | "version": "1.0.1",
1524 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
1525 | "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
1526 | "dev": true
1527 | },
1528 | "hasha": {
1529 | "version": "5.2.0",
1530 | "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.0.tgz",
1531 | "integrity": "sha512-2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw==",
1532 | "dev": true,
1533 | "requires": {
1534 | "is-stream": "^2.0.0",
1535 | "type-fest": "^0.8.0"
1536 | }
1537 | },
1538 | "he": {
1539 | "version": "1.2.0",
1540 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
1541 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
1542 | "dev": true
1543 | },
1544 | "hosted-git-info": {
1545 | "version": "2.8.8",
1546 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz",
1547 | "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==",
1548 | "dev": true
1549 | },
1550 | "html-escaper": {
1551 | "version": "2.0.2",
1552 | "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
1553 | "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
1554 | "dev": true
1555 | },
1556 | "husky": {
1557 | "version": "4.2.5",
1558 | "resolved": "https://registry.npmjs.org/husky/-/husky-4.2.5.tgz",
1559 | "integrity": "sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ==",
1560 | "dev": true,
1561 | "requires": {
1562 | "chalk": "^4.0.0",
1563 | "ci-info": "^2.0.0",
1564 | "compare-versions": "^3.6.0",
1565 | "cosmiconfig": "^6.0.0",
1566 | "find-versions": "^3.2.0",
1567 | "opencollective-postinstall": "^2.0.2",
1568 | "pkg-dir": "^4.2.0",
1569 | "please-upgrade-node": "^3.2.0",
1570 | "slash": "^3.0.0",
1571 | "which-pm-runs": "^1.0.0"
1572 | }
1573 | },
1574 | "ignore": {
1575 | "version": "4.0.6",
1576 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
1577 | "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
1578 | "dev": true
1579 | },
1580 | "import-fresh": {
1581 | "version": "3.2.1",
1582 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz",
1583 | "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==",
1584 | "dev": true,
1585 | "requires": {
1586 | "parent-module": "^1.0.0",
1587 | "resolve-from": "^4.0.0"
1588 | }
1589 | },
1590 | "imurmurhash": {
1591 | "version": "0.1.4",
1592 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
1593 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
1594 | "dev": true
1595 | },
1596 | "indent-string": {
1597 | "version": "4.0.0",
1598 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
1599 | "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
1600 | "dev": true
1601 | },
1602 | "inflight": {
1603 | "version": "1.0.6",
1604 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1605 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
1606 | "dev": true,
1607 | "requires": {
1608 | "once": "^1.3.0",
1609 | "wrappy": "1"
1610 | }
1611 | },
1612 | "inherits": {
1613 | "version": "2.0.4",
1614 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1615 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
1616 | "dev": true
1617 | },
1618 | "is-arguments": {
1619 | "version": "1.0.4",
1620 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz",
1621 | "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==",
1622 | "dev": true
1623 | },
1624 | "is-arrayish": {
1625 | "version": "0.2.1",
1626 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
1627 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
1628 | "dev": true
1629 | },
1630 | "is-binary-path": {
1631 | "version": "2.1.0",
1632 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
1633 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
1634 | "dev": true,
1635 | "requires": {
1636 | "binary-extensions": "^2.0.0"
1637 | }
1638 | },
1639 | "is-buffer": {
1640 | "version": "2.0.4",
1641 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
1642 | "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==",
1643 | "dev": true
1644 | },
1645 | "is-callable": {
1646 | "version": "1.1.5",
1647 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
1648 | "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
1649 | "dev": true
1650 | },
1651 | "is-date-object": {
1652 | "version": "1.0.2",
1653 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
1654 | "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==",
1655 | "dev": true
1656 | },
1657 | "is-extglob": {
1658 | "version": "2.1.1",
1659 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1660 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
1661 | "dev": true
1662 | },
1663 | "is-fullwidth-code-point": {
1664 | "version": "2.0.0",
1665 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
1666 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
1667 | "dev": true
1668 | },
1669 | "is-glob": {
1670 | "version": "4.0.1",
1671 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
1672 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
1673 | "dev": true,
1674 | "requires": {
1675 | "is-extglob": "^2.1.1"
1676 | }
1677 | },
1678 | "is-map": {
1679 | "version": "2.0.1",
1680 | "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz",
1681 | "integrity": "sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==",
1682 | "dev": true
1683 | },
1684 | "is-number": {
1685 | "version": "7.0.0",
1686 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
1687 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
1688 | "dev": true
1689 | },
1690 | "is-regex": {
1691 | "version": "1.0.5",
1692 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
1693 | "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
1694 | "dev": true,
1695 | "requires": {
1696 | "has": "^1.0.3"
1697 | }
1698 | },
1699 | "is-set": {
1700 | "version": "2.0.1",
1701 | "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.1.tgz",
1702 | "integrity": "sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==",
1703 | "dev": true
1704 | },
1705 | "is-stream": {
1706 | "version": "2.0.0",
1707 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
1708 | "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==",
1709 | "dev": true
1710 | },
1711 | "is-string": {
1712 | "version": "1.0.5",
1713 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz",
1714 | "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==",
1715 | "dev": true
1716 | },
1717 | "is-symbol": {
1718 | "version": "1.0.3",
1719 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
1720 | "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
1721 | "dev": true,
1722 | "requires": {
1723 | "has-symbols": "^1.0.1"
1724 | }
1725 | },
1726 | "is-typedarray": {
1727 | "version": "1.0.0",
1728 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
1729 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
1730 | "dev": true
1731 | },
1732 | "is-windows": {
1733 | "version": "1.0.2",
1734 | "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
1735 | "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
1736 | "dev": true
1737 | },
1738 | "isarray": {
1739 | "version": "1.0.0",
1740 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1741 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
1742 | "dev": true
1743 | },
1744 | "isexe": {
1745 | "version": "2.0.0",
1746 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1747 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
1748 | "dev": true
1749 | },
1750 | "istanbul-lib-coverage": {
1751 | "version": "3.0.0",
1752 | "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz",
1753 | "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==",
1754 | "dev": true
1755 | },
1756 | "istanbul-lib-hook": {
1757 | "version": "3.0.0",
1758 | "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz",
1759 | "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==",
1760 | "dev": true,
1761 | "requires": {
1762 | "append-transform": "^2.0.0"
1763 | }
1764 | },
1765 | "istanbul-lib-instrument": {
1766 | "version": "4.0.3",
1767 | "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz",
1768 | "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==",
1769 | "dev": true,
1770 | "requires": {
1771 | "@babel/core": "^7.7.5",
1772 | "@istanbuljs/schema": "^0.1.2",
1773 | "istanbul-lib-coverage": "^3.0.0",
1774 | "semver": "^6.3.0"
1775 | },
1776 | "dependencies": {
1777 | "semver": {
1778 | "version": "6.3.0",
1779 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1780 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1781 | "dev": true
1782 | }
1783 | }
1784 | },
1785 | "istanbul-lib-processinfo": {
1786 | "version": "2.0.2",
1787 | "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz",
1788 | "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==",
1789 | "dev": true,
1790 | "requires": {
1791 | "archy": "^1.0.0",
1792 | "cross-spawn": "^7.0.0",
1793 | "istanbul-lib-coverage": "^3.0.0-alpha.1",
1794 | "make-dir": "^3.0.0",
1795 | "p-map": "^3.0.0",
1796 | "rimraf": "^3.0.0",
1797 | "uuid": "^3.3.3"
1798 | },
1799 | "dependencies": {
1800 | "rimraf": {
1801 | "version": "3.0.2",
1802 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
1803 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
1804 | "dev": true,
1805 | "requires": {
1806 | "glob": "^7.1.3"
1807 | }
1808 | }
1809 | }
1810 | },
1811 | "istanbul-lib-report": {
1812 | "version": "3.0.0",
1813 | "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
1814 | "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
1815 | "dev": true,
1816 | "requires": {
1817 | "istanbul-lib-coverage": "^3.0.0",
1818 | "make-dir": "^3.0.0",
1819 | "supports-color": "^7.1.0"
1820 | },
1821 | "dependencies": {
1822 | "has-flag": {
1823 | "version": "4.0.0",
1824 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1825 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
1826 | "dev": true
1827 | },
1828 | "supports-color": {
1829 | "version": "7.1.0",
1830 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
1831 | "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
1832 | "dev": true,
1833 | "requires": {
1834 | "has-flag": "^4.0.0"
1835 | }
1836 | }
1837 | }
1838 | },
1839 | "istanbul-lib-source-maps": {
1840 | "version": "4.0.0",
1841 | "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz",
1842 | "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==",
1843 | "dev": true,
1844 | "requires": {
1845 | "debug": "^4.1.1",
1846 | "istanbul-lib-coverage": "^3.0.0",
1847 | "source-map": "^0.6.1"
1848 | },
1849 | "dependencies": {
1850 | "source-map": {
1851 | "version": "0.6.1",
1852 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1853 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
1854 | "dev": true
1855 | }
1856 | }
1857 | },
1858 | "istanbul-reports": {
1859 | "version": "3.0.2",
1860 | "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz",
1861 | "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==",
1862 | "dev": true,
1863 | "requires": {
1864 | "html-escaper": "^2.0.0",
1865 | "istanbul-lib-report": "^3.0.0"
1866 | }
1867 | },
1868 | "iterate-iterator": {
1869 | "version": "1.0.1",
1870 | "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz",
1871 | "integrity": "sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw==",
1872 | "dev": true
1873 | },
1874 | "iterate-value": {
1875 | "version": "1.0.2",
1876 | "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz",
1877 | "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==",
1878 | "dev": true,
1879 | "requires": {
1880 | "es-get-iterator": "^1.0.2",
1881 | "iterate-iterator": "^1.0.1"
1882 | }
1883 | },
1884 | "js-tokens": {
1885 | "version": "4.0.0",
1886 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1887 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
1888 | "dev": true
1889 | },
1890 | "js-yaml": {
1891 | "version": "3.14.0",
1892 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz",
1893 | "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==",
1894 | "dev": true,
1895 | "requires": {
1896 | "argparse": "^1.0.7",
1897 | "esprima": "^4.0.0"
1898 | }
1899 | },
1900 | "jsesc": {
1901 | "version": "2.5.2",
1902 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
1903 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
1904 | "dev": true
1905 | },
1906 | "json-parse-better-errors": {
1907 | "version": "1.0.2",
1908 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
1909 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
1910 | "dev": true
1911 | },
1912 | "json-schema-traverse": {
1913 | "version": "0.4.1",
1914 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
1915 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
1916 | "dev": true
1917 | },
1918 | "json-stable-stringify-without-jsonify": {
1919 | "version": "1.0.1",
1920 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
1921 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
1922 | "dev": true
1923 | },
1924 | "json5": {
1925 | "version": "2.1.3",
1926 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz",
1927 | "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==",
1928 | "dev": true,
1929 | "requires": {
1930 | "minimist": "^1.2.5"
1931 | }
1932 | },
1933 | "levn": {
1934 | "version": "0.4.1",
1935 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
1936 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
1937 | "dev": true,
1938 | "requires": {
1939 | "prelude-ls": "^1.2.1",
1940 | "type-check": "~0.4.0"
1941 | }
1942 | },
1943 | "lines-and-columns": {
1944 | "version": "1.1.6",
1945 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
1946 | "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=",
1947 | "dev": true
1948 | },
1949 | "load-json-file": {
1950 | "version": "2.0.0",
1951 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
1952 | "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
1953 | "dev": true,
1954 | "requires": {
1955 | "graceful-fs": "^4.1.2",
1956 | "parse-json": "^2.2.0",
1957 | "pify": "^2.0.0",
1958 | "strip-bom": "^3.0.0"
1959 | },
1960 | "dependencies": {
1961 | "strip-bom": {
1962 | "version": "3.0.0",
1963 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
1964 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
1965 | "dev": true
1966 | }
1967 | }
1968 | },
1969 | "locate-path": {
1970 | "version": "5.0.0",
1971 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
1972 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
1973 | "dev": true,
1974 | "requires": {
1975 | "p-locate": "^4.1.0"
1976 | }
1977 | },
1978 | "lodash": {
1979 | "version": "4.17.15",
1980 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
1981 | "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
1982 | "dev": true
1983 | },
1984 | "lodash.flattendeep": {
1985 | "version": "4.4.0",
1986 | "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
1987 | "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=",
1988 | "dev": true
1989 | },
1990 | "log-symbols": {
1991 | "version": "3.0.0",
1992 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz",
1993 | "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==",
1994 | "dev": true,
1995 | "requires": {
1996 | "chalk": "^2.4.2"
1997 | },
1998 | "dependencies": {
1999 | "chalk": {
2000 | "version": "2.4.2",
2001 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
2002 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
2003 | "dev": true,
2004 | "requires": {
2005 | "ansi-styles": "^3.2.1",
2006 | "escape-string-regexp": "^1.0.5",
2007 | "supports-color": "^5.3.0"
2008 | }
2009 | }
2010 | }
2011 | },
2012 | "make-dir": {
2013 | "version": "3.1.0",
2014 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
2015 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
2016 | "dev": true,
2017 | "requires": {
2018 | "semver": "^6.0.0"
2019 | },
2020 | "dependencies": {
2021 | "semver": {
2022 | "version": "6.3.0",
2023 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
2024 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
2025 | "dev": true
2026 | }
2027 | }
2028 | },
2029 | "meriyah": {
2030 | "version": "1.9.15",
2031 | "resolved": "https://registry.npmjs.org/meriyah/-/meriyah-1.9.15.tgz",
2032 | "integrity": "sha512-D4rT6XIYGqZab0EI/xbihUpwh0WbNRVQ35l2J/5QC2atxaI8h3KvA55DEJLBB/FRdaji7JwkNehfCRjCyjCjqw=="
2033 | },
2034 | "minimatch": {
2035 | "version": "3.0.4",
2036 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
2037 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
2038 | "dev": true,
2039 | "requires": {
2040 | "brace-expansion": "^1.1.7"
2041 | }
2042 | },
2043 | "minimist": {
2044 | "version": "1.2.5",
2045 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
2046 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
2047 | "dev": true
2048 | },
2049 | "mkdirp": {
2050 | "version": "0.5.5",
2051 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
2052 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
2053 | "dev": true,
2054 | "requires": {
2055 | "minimist": "^1.2.5"
2056 | }
2057 | },
2058 | "mocha": {
2059 | "version": "8.0.1",
2060 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.0.1.tgz",
2061 | "integrity": "sha512-vefaXfdYI8+Yo8nPZQQi0QO2o+5q9UIMX1jZ1XMmK3+4+CQjc7+B0hPdUeglXiTlr8IHMVRo63IhO9Mzt6fxOg==",
2062 | "dev": true,
2063 | "requires": {
2064 | "ansi-colors": "4.1.1",
2065 | "browser-stdout": "1.3.1",
2066 | "chokidar": "3.3.1",
2067 | "debug": "3.2.6",
2068 | "diff": "4.0.2",
2069 | "escape-string-regexp": "1.0.5",
2070 | "find-up": "4.1.0",
2071 | "glob": "7.1.6",
2072 | "growl": "1.10.5",
2073 | "he": "1.2.0",
2074 | "js-yaml": "3.13.1",
2075 | "log-symbols": "3.0.0",
2076 | "minimatch": "3.0.4",
2077 | "ms": "2.1.2",
2078 | "object.assign": "4.1.0",
2079 | "promise.allsettled": "1.0.2",
2080 | "serialize-javascript": "3.0.0",
2081 | "strip-json-comments": "3.0.1",
2082 | "supports-color": "7.1.0",
2083 | "which": "2.0.2",
2084 | "wide-align": "1.1.3",
2085 | "workerpool": "6.0.0",
2086 | "yargs": "13.3.2",
2087 | "yargs-parser": "13.1.2",
2088 | "yargs-unparser": "1.6.0"
2089 | },
2090 | "dependencies": {
2091 | "debug": {
2092 | "version": "3.2.6",
2093 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
2094 | "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
2095 | "dev": true,
2096 | "requires": {
2097 | "ms": "^2.1.1"
2098 | }
2099 | },
2100 | "has-flag": {
2101 | "version": "4.0.0",
2102 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
2103 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
2104 | "dev": true
2105 | },
2106 | "js-yaml": {
2107 | "version": "3.13.1",
2108 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
2109 | "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
2110 | "dev": true,
2111 | "requires": {
2112 | "argparse": "^1.0.7",
2113 | "esprima": "^4.0.0"
2114 | }
2115 | },
2116 | "strip-json-comments": {
2117 | "version": "3.0.1",
2118 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz",
2119 | "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==",
2120 | "dev": true
2121 | },
2122 | "supports-color": {
2123 | "version": "7.1.0",
2124 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
2125 | "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
2126 | "dev": true,
2127 | "requires": {
2128 | "has-flag": "^4.0.0"
2129 | }
2130 | }
2131 | }
2132 | },
2133 | "ms": {
2134 | "version": "2.1.2",
2135 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
2136 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
2137 | "dev": true
2138 | },
2139 | "natural-compare": {
2140 | "version": "1.4.0",
2141 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
2142 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
2143 | "dev": true
2144 | },
2145 | "node-preload": {
2146 | "version": "0.2.1",
2147 | "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz",
2148 | "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==",
2149 | "dev": true,
2150 | "requires": {
2151 | "process-on-spawn": "^1.0.0"
2152 | }
2153 | },
2154 | "normalize-package-data": {
2155 | "version": "2.5.0",
2156 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
2157 | "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
2158 | "dev": true,
2159 | "requires": {
2160 | "hosted-git-info": "^2.1.4",
2161 | "resolve": "^1.10.0",
2162 | "semver": "2 || 3 || 4 || 5",
2163 | "validate-npm-package-license": "^3.0.1"
2164 | }
2165 | },
2166 | "normalize-path": {
2167 | "version": "3.0.0",
2168 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
2169 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
2170 | "dev": true
2171 | },
2172 | "nyc": {
2173 | "version": "15.1.0",
2174 | "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz",
2175 | "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==",
2176 | "dev": true,
2177 | "requires": {
2178 | "@istanbuljs/load-nyc-config": "^1.0.0",
2179 | "@istanbuljs/schema": "^0.1.2",
2180 | "caching-transform": "^4.0.0",
2181 | "convert-source-map": "^1.7.0",
2182 | "decamelize": "^1.2.0",
2183 | "find-cache-dir": "^3.2.0",
2184 | "find-up": "^4.1.0",
2185 | "foreground-child": "^2.0.0",
2186 | "get-package-type": "^0.1.0",
2187 | "glob": "^7.1.6",
2188 | "istanbul-lib-coverage": "^3.0.0",
2189 | "istanbul-lib-hook": "^3.0.0",
2190 | "istanbul-lib-instrument": "^4.0.0",
2191 | "istanbul-lib-processinfo": "^2.0.2",
2192 | "istanbul-lib-report": "^3.0.0",
2193 | "istanbul-lib-source-maps": "^4.0.0",
2194 | "istanbul-reports": "^3.0.2",
2195 | "make-dir": "^3.0.0",
2196 | "node-preload": "^0.2.1",
2197 | "p-map": "^3.0.0",
2198 | "process-on-spawn": "^1.0.0",
2199 | "resolve-from": "^5.0.0",
2200 | "rimraf": "^3.0.0",
2201 | "signal-exit": "^3.0.2",
2202 | "spawn-wrap": "^2.0.0",
2203 | "test-exclude": "^6.0.0",
2204 | "yargs": "^15.0.2"
2205 | },
2206 | "dependencies": {
2207 | "ansi-styles": {
2208 | "version": "4.2.1",
2209 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
2210 | "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
2211 | "dev": true,
2212 | "requires": {
2213 | "@types/color-name": "^1.1.1",
2214 | "color-convert": "^2.0.1"
2215 | }
2216 | },
2217 | "cliui": {
2218 | "version": "6.0.0",
2219 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
2220 | "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
2221 | "dev": true,
2222 | "requires": {
2223 | "string-width": "^4.2.0",
2224 | "strip-ansi": "^6.0.0",
2225 | "wrap-ansi": "^6.2.0"
2226 | }
2227 | },
2228 | "color-convert": {
2229 | "version": "2.0.1",
2230 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
2231 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
2232 | "dev": true,
2233 | "requires": {
2234 | "color-name": "~1.1.4"
2235 | }
2236 | },
2237 | "color-name": {
2238 | "version": "1.1.4",
2239 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
2240 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
2241 | "dev": true
2242 | },
2243 | "emoji-regex": {
2244 | "version": "8.0.0",
2245 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
2246 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
2247 | "dev": true
2248 | },
2249 | "is-fullwidth-code-point": {
2250 | "version": "3.0.0",
2251 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
2252 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
2253 | "dev": true
2254 | },
2255 | "resolve-from": {
2256 | "version": "5.0.0",
2257 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
2258 | "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
2259 | "dev": true
2260 | },
2261 | "rimraf": {
2262 | "version": "3.0.2",
2263 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
2264 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
2265 | "dev": true,
2266 | "requires": {
2267 | "glob": "^7.1.3"
2268 | }
2269 | },
2270 | "string-width": {
2271 | "version": "4.2.0",
2272 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
2273 | "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
2274 | "dev": true,
2275 | "requires": {
2276 | "emoji-regex": "^8.0.0",
2277 | "is-fullwidth-code-point": "^3.0.0",
2278 | "strip-ansi": "^6.0.0"
2279 | }
2280 | },
2281 | "wrap-ansi": {
2282 | "version": "6.2.0",
2283 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
2284 | "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
2285 | "dev": true,
2286 | "requires": {
2287 | "ansi-styles": "^4.0.0",
2288 | "string-width": "^4.1.0",
2289 | "strip-ansi": "^6.0.0"
2290 | }
2291 | },
2292 | "yargs": {
2293 | "version": "15.4.0",
2294 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.0.tgz",
2295 | "integrity": "sha512-D3fRFnZwLWp8jVAAhPZBsmeIHY8tTsb8ItV9KaAaopmC6wde2u6Yw29JBIZHXw14kgkRnYmDgmQU4FVMDlIsWw==",
2296 | "dev": true,
2297 | "requires": {
2298 | "cliui": "^6.0.0",
2299 | "decamelize": "^3.2.0",
2300 | "find-up": "^4.1.0",
2301 | "get-caller-file": "^2.0.1",
2302 | "require-directory": "^2.1.1",
2303 | "require-main-filename": "^2.0.0",
2304 | "set-blocking": "^2.0.0",
2305 | "string-width": "^4.2.0",
2306 | "which-module": "^2.0.0",
2307 | "y18n": "^4.0.0",
2308 | "yargs-parser": "^18.1.2"
2309 | },
2310 | "dependencies": {
2311 | "decamelize": {
2312 | "version": "3.2.0",
2313 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-3.2.0.tgz",
2314 | "integrity": "sha512-4TgkVUsmmu7oCSyGBm5FvfMoACuoh9EOidm7V5/J2X2djAwwt57qb3F2KMP2ITqODTCSwb+YRV+0Zqrv18k/hw==",
2315 | "dev": true,
2316 | "requires": {
2317 | "xregexp": "^4.2.4"
2318 | }
2319 | }
2320 | }
2321 | },
2322 | "yargs-parser": {
2323 | "version": "18.1.3",
2324 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
2325 | "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
2326 | "dev": true,
2327 | "requires": {
2328 | "camelcase": "^5.0.0",
2329 | "decamelize": "^1.2.0"
2330 | }
2331 | }
2332 | }
2333 | },
2334 | "object-inspect": {
2335 | "version": "1.7.0",
2336 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
2337 | "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
2338 | "dev": true
2339 | },
2340 | "object-keys": {
2341 | "version": "1.1.1",
2342 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
2343 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
2344 | "dev": true
2345 | },
2346 | "object.assign": {
2347 | "version": "4.1.0",
2348 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
2349 | "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
2350 | "dev": true,
2351 | "requires": {
2352 | "define-properties": "^1.1.2",
2353 | "function-bind": "^1.1.1",
2354 | "has-symbols": "^1.0.0",
2355 | "object-keys": "^1.0.11"
2356 | }
2357 | },
2358 | "object.values": {
2359 | "version": "1.1.1",
2360 | "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz",
2361 | "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==",
2362 | "dev": true,
2363 | "requires": {
2364 | "define-properties": "^1.1.3",
2365 | "es-abstract": "^1.17.0-next.1",
2366 | "function-bind": "^1.1.1",
2367 | "has": "^1.0.3"
2368 | }
2369 | },
2370 | "once": {
2371 | "version": "1.4.0",
2372 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2373 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
2374 | "dev": true,
2375 | "requires": {
2376 | "wrappy": "1"
2377 | }
2378 | },
2379 | "opencollective-postinstall": {
2380 | "version": "2.0.3",
2381 | "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz",
2382 | "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==",
2383 | "dev": true
2384 | },
2385 | "optionator": {
2386 | "version": "0.9.1",
2387 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
2388 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
2389 | "dev": true,
2390 | "requires": {
2391 | "deep-is": "^0.1.3",
2392 | "fast-levenshtein": "^2.0.6",
2393 | "levn": "^0.4.1",
2394 | "prelude-ls": "^1.2.1",
2395 | "type-check": "^0.4.0",
2396 | "word-wrap": "^1.2.3"
2397 | }
2398 | },
2399 | "p-limit": {
2400 | "version": "2.3.0",
2401 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
2402 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
2403 | "dev": true,
2404 | "requires": {
2405 | "p-try": "^2.0.0"
2406 | }
2407 | },
2408 | "p-locate": {
2409 | "version": "4.1.0",
2410 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
2411 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
2412 | "dev": true,
2413 | "requires": {
2414 | "p-limit": "^2.2.0"
2415 | }
2416 | },
2417 | "p-map": {
2418 | "version": "3.0.0",
2419 | "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
2420 | "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
2421 | "dev": true,
2422 | "requires": {
2423 | "aggregate-error": "^3.0.0"
2424 | }
2425 | },
2426 | "p-try": {
2427 | "version": "2.2.0",
2428 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
2429 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
2430 | "dev": true
2431 | },
2432 | "package-hash": {
2433 | "version": "4.0.0",
2434 | "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz",
2435 | "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==",
2436 | "dev": true,
2437 | "requires": {
2438 | "graceful-fs": "^4.1.15",
2439 | "hasha": "^5.0.0",
2440 | "lodash.flattendeep": "^4.4.0",
2441 | "release-zalgo": "^1.0.0"
2442 | }
2443 | },
2444 | "parent-module": {
2445 | "version": "1.0.1",
2446 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
2447 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
2448 | "dev": true,
2449 | "requires": {
2450 | "callsites": "^3.0.0"
2451 | }
2452 | },
2453 | "parse-json": {
2454 | "version": "2.2.0",
2455 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
2456 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
2457 | "dev": true,
2458 | "requires": {
2459 | "error-ex": "^1.2.0"
2460 | }
2461 | },
2462 | "path-exists": {
2463 | "version": "3.0.0",
2464 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
2465 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
2466 | "dev": true
2467 | },
2468 | "path-is-absolute": {
2469 | "version": "1.0.1",
2470 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
2471 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
2472 | "dev": true
2473 | },
2474 | "path-key": {
2475 | "version": "3.1.1",
2476 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
2477 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
2478 | "dev": true
2479 | },
2480 | "path-parse": {
2481 | "version": "1.0.6",
2482 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
2483 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
2484 | "dev": true
2485 | },
2486 | "path-type": {
2487 | "version": "2.0.0",
2488 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
2489 | "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
2490 | "dev": true,
2491 | "requires": {
2492 | "pify": "^2.0.0"
2493 | }
2494 | },
2495 | "pathval": {
2496 | "version": "1.1.0",
2497 | "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz",
2498 | "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=",
2499 | "dev": true
2500 | },
2501 | "picomatch": {
2502 | "version": "2.2.2",
2503 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
2504 | "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
2505 | "dev": true
2506 | },
2507 | "pify": {
2508 | "version": "2.3.0",
2509 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
2510 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
2511 | "dev": true
2512 | },
2513 | "pkg-dir": {
2514 | "version": "4.2.0",
2515 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
2516 | "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
2517 | "dev": true,
2518 | "requires": {
2519 | "find-up": "^4.0.0"
2520 | }
2521 | },
2522 | "please-upgrade-node": {
2523 | "version": "3.2.0",
2524 | "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz",
2525 | "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==",
2526 | "dev": true,
2527 | "requires": {
2528 | "semver-compare": "^1.0.0"
2529 | }
2530 | },
2531 | "prelude-ls": {
2532 | "version": "1.2.1",
2533 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
2534 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
2535 | "dev": true
2536 | },
2537 | "process-on-spawn": {
2538 | "version": "1.0.0",
2539 | "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz",
2540 | "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==",
2541 | "dev": true,
2542 | "requires": {
2543 | "fromentries": "^1.2.0"
2544 | }
2545 | },
2546 | "progress": {
2547 | "version": "2.0.3",
2548 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
2549 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
2550 | "dev": true
2551 | },
2552 | "promise.allsettled": {
2553 | "version": "1.0.2",
2554 | "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.2.tgz",
2555 | "integrity": "sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg==",
2556 | "dev": true,
2557 | "requires": {
2558 | "array.prototype.map": "^1.0.1",
2559 | "define-properties": "^1.1.3",
2560 | "es-abstract": "^1.17.0-next.1",
2561 | "function-bind": "^1.1.1",
2562 | "iterate-value": "^1.0.0"
2563 | }
2564 | },
2565 | "punycode": {
2566 | "version": "2.1.1",
2567 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
2568 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
2569 | "dev": true
2570 | },
2571 | "read-pkg": {
2572 | "version": "2.0.0",
2573 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
2574 | "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
2575 | "dev": true,
2576 | "requires": {
2577 | "load-json-file": "^2.0.0",
2578 | "normalize-package-data": "^2.3.2",
2579 | "path-type": "^2.0.0"
2580 | }
2581 | },
2582 | "read-pkg-up": {
2583 | "version": "2.0.0",
2584 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
2585 | "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
2586 | "dev": true,
2587 | "requires": {
2588 | "find-up": "^2.0.0",
2589 | "read-pkg": "^2.0.0"
2590 | },
2591 | "dependencies": {
2592 | "find-up": {
2593 | "version": "2.1.0",
2594 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
2595 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
2596 | "dev": true,
2597 | "requires": {
2598 | "locate-path": "^2.0.0"
2599 | }
2600 | },
2601 | "locate-path": {
2602 | "version": "2.0.0",
2603 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
2604 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
2605 | "dev": true,
2606 | "requires": {
2607 | "p-locate": "^2.0.0",
2608 | "path-exists": "^3.0.0"
2609 | }
2610 | },
2611 | "p-limit": {
2612 | "version": "1.3.0",
2613 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
2614 | "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
2615 | "dev": true,
2616 | "requires": {
2617 | "p-try": "^1.0.0"
2618 | }
2619 | },
2620 | "p-locate": {
2621 | "version": "2.0.0",
2622 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
2623 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
2624 | "dev": true,
2625 | "requires": {
2626 | "p-limit": "^1.1.0"
2627 | }
2628 | },
2629 | "p-try": {
2630 | "version": "1.0.0",
2631 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
2632 | "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
2633 | "dev": true
2634 | }
2635 | }
2636 | },
2637 | "readdirp": {
2638 | "version": "3.3.0",
2639 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz",
2640 | "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==",
2641 | "dev": true,
2642 | "requires": {
2643 | "picomatch": "^2.0.7"
2644 | }
2645 | },
2646 | "regenerator-runtime": {
2647 | "version": "0.13.5",
2648 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
2649 | "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==",
2650 | "dev": true
2651 | },
2652 | "regexpp": {
2653 | "version": "3.1.0",
2654 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz",
2655 | "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==",
2656 | "dev": true
2657 | },
2658 | "release-zalgo": {
2659 | "version": "1.0.0",
2660 | "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz",
2661 | "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=",
2662 | "dev": true,
2663 | "requires": {
2664 | "es6-error": "^4.0.1"
2665 | }
2666 | },
2667 | "require-directory": {
2668 | "version": "2.1.1",
2669 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
2670 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
2671 | "dev": true
2672 | },
2673 | "require-main-filename": {
2674 | "version": "2.0.0",
2675 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
2676 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
2677 | "dev": true
2678 | },
2679 | "resolve": {
2680 | "version": "1.14.2",
2681 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.2.tgz",
2682 | "integrity": "sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ==",
2683 | "dev": true,
2684 | "requires": {
2685 | "path-parse": "^1.0.6"
2686 | }
2687 | },
2688 | "resolve-from": {
2689 | "version": "4.0.0",
2690 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
2691 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
2692 | "dev": true
2693 | },
2694 | "rimraf": {
2695 | "version": "2.6.3",
2696 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
2697 | "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
2698 | "dev": true,
2699 | "requires": {
2700 | "glob": "^7.1.3"
2701 | }
2702 | },
2703 | "safe-buffer": {
2704 | "version": "5.1.2",
2705 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
2706 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
2707 | "dev": true
2708 | },
2709 | "semver": {
2710 | "version": "5.7.1",
2711 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
2712 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
2713 | "dev": true
2714 | },
2715 | "semver-compare": {
2716 | "version": "1.0.0",
2717 | "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
2718 | "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=",
2719 | "dev": true
2720 | },
2721 | "semver-regex": {
2722 | "version": "2.0.0",
2723 | "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz",
2724 | "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==",
2725 | "dev": true
2726 | },
2727 | "serialize-javascript": {
2728 | "version": "3.0.0",
2729 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.0.0.tgz",
2730 | "integrity": "sha512-skZcHYw2vEX4bw90nAr2iTTsz6x2SrHEnfxgKYmZlvJYBEZrvbKtobJWlQ20zczKb3bsHHXXTYt48zBA7ni9cw==",
2731 | "dev": true
2732 | },
2733 | "set-blocking": {
2734 | "version": "2.0.0",
2735 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
2736 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
2737 | "dev": true
2738 | },
2739 | "shebang-command": {
2740 | "version": "2.0.0",
2741 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
2742 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
2743 | "dev": true,
2744 | "requires": {
2745 | "shebang-regex": "^3.0.0"
2746 | }
2747 | },
2748 | "shebang-regex": {
2749 | "version": "3.0.0",
2750 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
2751 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
2752 | "dev": true
2753 | },
2754 | "signal-exit": {
2755 | "version": "3.0.3",
2756 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
2757 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
2758 | "dev": true
2759 | },
2760 | "slash": {
2761 | "version": "3.0.0",
2762 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
2763 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
2764 | "dev": true
2765 | },
2766 | "slice-ansi": {
2767 | "version": "2.1.0",
2768 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
2769 | "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
2770 | "dev": true,
2771 | "requires": {
2772 | "ansi-styles": "^3.2.0",
2773 | "astral-regex": "^1.0.0",
2774 | "is-fullwidth-code-point": "^2.0.0"
2775 | }
2776 | },
2777 | "source-map": {
2778 | "version": "0.5.7",
2779 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
2780 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
2781 | "dev": true
2782 | },
2783 | "spawn-wrap": {
2784 | "version": "2.0.0",
2785 | "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz",
2786 | "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==",
2787 | "dev": true,
2788 | "requires": {
2789 | "foreground-child": "^2.0.0",
2790 | "is-windows": "^1.0.2",
2791 | "make-dir": "^3.0.0",
2792 | "rimraf": "^3.0.0",
2793 | "signal-exit": "^3.0.2",
2794 | "which": "^2.0.1"
2795 | },
2796 | "dependencies": {
2797 | "rimraf": {
2798 | "version": "3.0.2",
2799 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
2800 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
2801 | "dev": true,
2802 | "requires": {
2803 | "glob": "^7.1.3"
2804 | }
2805 | }
2806 | }
2807 | },
2808 | "spdx-correct": {
2809 | "version": "3.1.1",
2810 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
2811 | "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
2812 | "dev": true,
2813 | "requires": {
2814 | "spdx-expression-parse": "^3.0.0",
2815 | "spdx-license-ids": "^3.0.0"
2816 | }
2817 | },
2818 | "spdx-exceptions": {
2819 | "version": "2.3.0",
2820 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
2821 | "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
2822 | "dev": true
2823 | },
2824 | "spdx-expression-parse": {
2825 | "version": "3.0.1",
2826 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
2827 | "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
2828 | "dev": true,
2829 | "requires": {
2830 | "spdx-exceptions": "^2.1.0",
2831 | "spdx-license-ids": "^3.0.0"
2832 | }
2833 | },
2834 | "spdx-license-ids": {
2835 | "version": "3.0.5",
2836 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
2837 | "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
2838 | "dev": true
2839 | },
2840 | "sprintf-js": {
2841 | "version": "1.0.3",
2842 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
2843 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
2844 | "dev": true
2845 | },
2846 | "string-width": {
2847 | "version": "3.1.0",
2848 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
2849 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
2850 | "dev": true,
2851 | "requires": {
2852 | "emoji-regex": "^7.0.1",
2853 | "is-fullwidth-code-point": "^2.0.0",
2854 | "strip-ansi": "^5.1.0"
2855 | },
2856 | "dependencies": {
2857 | "ansi-regex": {
2858 | "version": "4.1.0",
2859 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
2860 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
2861 | "dev": true
2862 | },
2863 | "strip-ansi": {
2864 | "version": "5.2.0",
2865 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
2866 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
2867 | "dev": true,
2868 | "requires": {
2869 | "ansi-regex": "^4.1.0"
2870 | }
2871 | }
2872 | }
2873 | },
2874 | "string.prototype.trimend": {
2875 | "version": "1.0.1",
2876 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz",
2877 | "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==",
2878 | "dev": true,
2879 | "requires": {
2880 | "define-properties": "^1.1.3",
2881 | "es-abstract": "^1.17.5"
2882 | },
2883 | "dependencies": {
2884 | "es-abstract": {
2885 | "version": "1.17.6",
2886 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz",
2887 | "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==",
2888 | "dev": true,
2889 | "requires": {
2890 | "es-to-primitive": "^1.2.1",
2891 | "function-bind": "^1.1.1",
2892 | "has": "^1.0.3",
2893 | "has-symbols": "^1.0.1",
2894 | "is-callable": "^1.2.0",
2895 | "is-regex": "^1.1.0",
2896 | "object-inspect": "^1.7.0",
2897 | "object-keys": "^1.1.1",
2898 | "object.assign": "^4.1.0",
2899 | "string.prototype.trimend": "^1.0.1",
2900 | "string.prototype.trimstart": "^1.0.1"
2901 | }
2902 | },
2903 | "is-callable": {
2904 | "version": "1.2.0",
2905 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz",
2906 | "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==",
2907 | "dev": true
2908 | },
2909 | "is-regex": {
2910 | "version": "1.1.0",
2911 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz",
2912 | "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==",
2913 | "dev": true,
2914 | "requires": {
2915 | "has-symbols": "^1.0.1"
2916 | }
2917 | }
2918 | }
2919 | },
2920 | "string.prototype.trimleft": {
2921 | "version": "2.1.1",
2922 | "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
2923 | "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
2924 | "dev": true,
2925 | "requires": {
2926 | "define-properties": "^1.1.3",
2927 | "function-bind": "^1.1.1"
2928 | }
2929 | },
2930 | "string.prototype.trimright": {
2931 | "version": "2.1.1",
2932 | "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
2933 | "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
2934 | "dev": true,
2935 | "requires": {
2936 | "define-properties": "^1.1.3",
2937 | "function-bind": "^1.1.1"
2938 | }
2939 | },
2940 | "string.prototype.trimstart": {
2941 | "version": "1.0.1",
2942 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz",
2943 | "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==",
2944 | "dev": true,
2945 | "requires": {
2946 | "define-properties": "^1.1.3",
2947 | "es-abstract": "^1.17.5"
2948 | },
2949 | "dependencies": {
2950 | "es-abstract": {
2951 | "version": "1.17.6",
2952 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz",
2953 | "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==",
2954 | "dev": true,
2955 | "requires": {
2956 | "es-to-primitive": "^1.2.1",
2957 | "function-bind": "^1.1.1",
2958 | "has": "^1.0.3",
2959 | "has-symbols": "^1.0.1",
2960 | "is-callable": "^1.2.0",
2961 | "is-regex": "^1.1.0",
2962 | "object-inspect": "^1.7.0",
2963 | "object-keys": "^1.1.1",
2964 | "object.assign": "^4.1.0",
2965 | "string.prototype.trimend": "^1.0.1",
2966 | "string.prototype.trimstart": "^1.0.1"
2967 | }
2968 | },
2969 | "is-callable": {
2970 | "version": "1.2.0",
2971 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz",
2972 | "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==",
2973 | "dev": true
2974 | },
2975 | "is-regex": {
2976 | "version": "1.1.0",
2977 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz",
2978 | "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==",
2979 | "dev": true,
2980 | "requires": {
2981 | "has-symbols": "^1.0.1"
2982 | }
2983 | }
2984 | }
2985 | },
2986 | "strip-ansi": {
2987 | "version": "6.0.0",
2988 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
2989 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
2990 | "dev": true,
2991 | "requires": {
2992 | "ansi-regex": "^5.0.0"
2993 | }
2994 | },
2995 | "strip-bom": {
2996 | "version": "4.0.0",
2997 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
2998 | "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
2999 | "dev": true
3000 | },
3001 | "strip-json-comments": {
3002 | "version": "3.1.0",
3003 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz",
3004 | "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==",
3005 | "dev": true
3006 | },
3007 | "supports-color": {
3008 | "version": "5.5.0",
3009 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
3010 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
3011 | "dev": true,
3012 | "requires": {
3013 | "has-flag": "^3.0.0"
3014 | }
3015 | },
3016 | "table": {
3017 | "version": "5.4.6",
3018 | "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
3019 | "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
3020 | "dev": true,
3021 | "requires": {
3022 | "ajv": "^6.10.2",
3023 | "lodash": "^4.17.14",
3024 | "slice-ansi": "^2.1.0",
3025 | "string-width": "^3.0.0"
3026 | }
3027 | },
3028 | "test-exclude": {
3029 | "version": "6.0.0",
3030 | "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
3031 | "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
3032 | "dev": true,
3033 | "requires": {
3034 | "@istanbuljs/schema": "^0.1.2",
3035 | "glob": "^7.1.4",
3036 | "minimatch": "^3.0.4"
3037 | }
3038 | },
3039 | "text-table": {
3040 | "version": "0.2.0",
3041 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
3042 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
3043 | "dev": true
3044 | },
3045 | "to-fast-properties": {
3046 | "version": "2.0.0",
3047 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
3048 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
3049 | "dev": true
3050 | },
3051 | "to-regex-range": {
3052 | "version": "5.0.1",
3053 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
3054 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
3055 | "dev": true,
3056 | "requires": {
3057 | "is-number": "^7.0.0"
3058 | }
3059 | },
3060 | "tsconfig-paths": {
3061 | "version": "3.9.0",
3062 | "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz",
3063 | "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==",
3064 | "dev": true,
3065 | "requires": {
3066 | "@types/json5": "^0.0.29",
3067 | "json5": "^1.0.1",
3068 | "minimist": "^1.2.0",
3069 | "strip-bom": "^3.0.0"
3070 | },
3071 | "dependencies": {
3072 | "json5": {
3073 | "version": "1.0.1",
3074 | "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
3075 | "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
3076 | "dev": true,
3077 | "requires": {
3078 | "minimist": "^1.2.0"
3079 | }
3080 | },
3081 | "strip-bom": {
3082 | "version": "3.0.0",
3083 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
3084 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
3085 | "dev": true
3086 | }
3087 | }
3088 | },
3089 | "type-check": {
3090 | "version": "0.4.0",
3091 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
3092 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
3093 | "dev": true,
3094 | "requires": {
3095 | "prelude-ls": "^1.2.1"
3096 | }
3097 | },
3098 | "type-detect": {
3099 | "version": "4.0.8",
3100 | "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
3101 | "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
3102 | "dev": true
3103 | },
3104 | "type-fest": {
3105 | "version": "0.8.1",
3106 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
3107 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
3108 | "dev": true
3109 | },
3110 | "typedarray-to-buffer": {
3111 | "version": "3.1.5",
3112 | "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
3113 | "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
3114 | "dev": true,
3115 | "requires": {
3116 | "is-typedarray": "^1.0.0"
3117 | }
3118 | },
3119 | "uri-js": {
3120 | "version": "4.2.2",
3121 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
3122 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
3123 | "dev": true,
3124 | "requires": {
3125 | "punycode": "^2.1.0"
3126 | }
3127 | },
3128 | "uuid": {
3129 | "version": "3.4.0",
3130 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
3131 | "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
3132 | "dev": true
3133 | },
3134 | "v8-compile-cache": {
3135 | "version": "2.1.1",
3136 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz",
3137 | "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==",
3138 | "dev": true
3139 | },
3140 | "validate-npm-package-license": {
3141 | "version": "3.0.4",
3142 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
3143 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
3144 | "dev": true,
3145 | "requires": {
3146 | "spdx-correct": "^3.0.0",
3147 | "spdx-expression-parse": "^3.0.0"
3148 | }
3149 | },
3150 | "which": {
3151 | "version": "2.0.2",
3152 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
3153 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
3154 | "dev": true,
3155 | "requires": {
3156 | "isexe": "^2.0.0"
3157 | }
3158 | },
3159 | "which-module": {
3160 | "version": "2.0.0",
3161 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
3162 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
3163 | "dev": true
3164 | },
3165 | "which-pm-runs": {
3166 | "version": "1.0.0",
3167 | "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz",
3168 | "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=",
3169 | "dev": true
3170 | },
3171 | "wide-align": {
3172 | "version": "1.1.3",
3173 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
3174 | "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
3175 | "dev": true,
3176 | "requires": {
3177 | "string-width": "^1.0.2 || 2"
3178 | },
3179 | "dependencies": {
3180 | "ansi-regex": {
3181 | "version": "3.0.0",
3182 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
3183 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
3184 | "dev": true
3185 | },
3186 | "string-width": {
3187 | "version": "2.1.1",
3188 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
3189 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
3190 | "dev": true,
3191 | "requires": {
3192 | "is-fullwidth-code-point": "^2.0.0",
3193 | "strip-ansi": "^4.0.0"
3194 | }
3195 | },
3196 | "strip-ansi": {
3197 | "version": "4.0.0",
3198 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
3199 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
3200 | "dev": true,
3201 | "requires": {
3202 | "ansi-regex": "^3.0.0"
3203 | }
3204 | }
3205 | }
3206 | },
3207 | "word-wrap": {
3208 | "version": "1.2.3",
3209 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
3210 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
3211 | "dev": true
3212 | },
3213 | "workerpool": {
3214 | "version": "6.0.0",
3215 | "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.0.tgz",
3216 | "integrity": "sha512-fU2OcNA/GVAJLLyKUoHkAgIhKb0JoCpSjLC/G2vYKxUjVmQwGbRVeoPJ1a8U4pnVofz4AQV5Y/NEw8oKqxEBtA==",
3217 | "dev": true
3218 | },
3219 | "wrap-ansi": {
3220 | "version": "5.1.0",
3221 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
3222 | "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
3223 | "dev": true,
3224 | "requires": {
3225 | "ansi-styles": "^3.2.0",
3226 | "string-width": "^3.0.0",
3227 | "strip-ansi": "^5.0.0"
3228 | },
3229 | "dependencies": {
3230 | "ansi-regex": {
3231 | "version": "4.1.0",
3232 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
3233 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
3234 | "dev": true
3235 | },
3236 | "strip-ansi": {
3237 | "version": "5.2.0",
3238 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
3239 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
3240 | "dev": true,
3241 | "requires": {
3242 | "ansi-regex": "^4.1.0"
3243 | }
3244 | }
3245 | }
3246 | },
3247 | "wrappy": {
3248 | "version": "1.0.2",
3249 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
3250 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
3251 | "dev": true
3252 | },
3253 | "write": {
3254 | "version": "1.0.3",
3255 | "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
3256 | "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
3257 | "dev": true,
3258 | "requires": {
3259 | "mkdirp": "^0.5.1"
3260 | }
3261 | },
3262 | "write-file-atomic": {
3263 | "version": "3.0.3",
3264 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
3265 | "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
3266 | "dev": true,
3267 | "requires": {
3268 | "imurmurhash": "^0.1.4",
3269 | "is-typedarray": "^1.0.0",
3270 | "signal-exit": "^3.0.2",
3271 | "typedarray-to-buffer": "^3.1.5"
3272 | }
3273 | },
3274 | "xregexp": {
3275 | "version": "4.3.0",
3276 | "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.3.0.tgz",
3277 | "integrity": "sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g==",
3278 | "dev": true,
3279 | "requires": {
3280 | "@babel/runtime-corejs3": "^7.8.3"
3281 | }
3282 | },
3283 | "y18n": {
3284 | "version": "4.0.0",
3285 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
3286 | "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
3287 | "dev": true
3288 | },
3289 | "yaml": {
3290 | "version": "1.10.0",
3291 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz",
3292 | "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==",
3293 | "dev": true
3294 | },
3295 | "yargs": {
3296 | "version": "13.3.2",
3297 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
3298 | "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
3299 | "dev": true,
3300 | "requires": {
3301 | "cliui": "^5.0.0",
3302 | "find-up": "^3.0.0",
3303 | "get-caller-file": "^2.0.1",
3304 | "require-directory": "^2.1.1",
3305 | "require-main-filename": "^2.0.0",
3306 | "set-blocking": "^2.0.0",
3307 | "string-width": "^3.0.0",
3308 | "which-module": "^2.0.0",
3309 | "y18n": "^4.0.0",
3310 | "yargs-parser": "^13.1.2"
3311 | },
3312 | "dependencies": {
3313 | "find-up": {
3314 | "version": "3.0.0",
3315 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
3316 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
3317 | "dev": true,
3318 | "requires": {
3319 | "locate-path": "^3.0.0"
3320 | }
3321 | },
3322 | "locate-path": {
3323 | "version": "3.0.0",
3324 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
3325 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
3326 | "dev": true,
3327 | "requires": {
3328 | "p-locate": "^3.0.0",
3329 | "path-exists": "^3.0.0"
3330 | }
3331 | },
3332 | "p-locate": {
3333 | "version": "3.0.0",
3334 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
3335 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
3336 | "dev": true,
3337 | "requires": {
3338 | "p-limit": "^2.0.0"
3339 | }
3340 | }
3341 | }
3342 | },
3343 | "yargs-parser": {
3344 | "version": "13.1.2",
3345 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
3346 | "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
3347 | "dev": true,
3348 | "requires": {
3349 | "camelcase": "^5.0.0",
3350 | "decamelize": "^1.2.0"
3351 | }
3352 | },
3353 | "yargs-unparser": {
3354 | "version": "1.6.0",
3355 | "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz",
3356 | "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==",
3357 | "dev": true,
3358 | "requires": {
3359 | "flat": "^4.1.0",
3360 | "lodash": "^4.17.15",
3361 | "yargs": "^13.3.0"
3362 | }
3363 | }
3364 | }
3365 | }
3366 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "js-to-json-logic",
3 | "version": "0.1.3",
4 | "description": "Generate JSON Logic objects using JavaScript syntax.",
5 | "main": "lib/index.js",
6 | "types": "js-to-json-logic.d.ts",
7 | "repository": {
8 | "type": "git",
9 | "url": "git://github.com/krismuniz/js-to-json-logic.git"
10 | },
11 | "scripts": {
12 | "test": "nyc --reporter=html --reporter=text mocha",
13 | "lint": "eslint ."
14 | },
15 | "husky": {
16 | "hooks": {
17 | "pre-commit": "npm test",
18 | "pre-push": "npm test"
19 | }
20 | },
21 | "files": [
22 | "*.d.ts",
23 | "lib"
24 | ],
25 | "runkitExample": "const transformJS = require('js-to-json-logic');",
26 | "keywords": [
27 | "json",
28 | "logic",
29 | "rules",
30 | "code",
31 | "jsonlogic",
32 | "json-logic",
33 | "js-to-json"
34 | ],
35 | "author": "Kristian Muñiz (https://krismuniz.com)",
36 | "license": "MIT",
37 | "dependencies": {
38 | "meriyah": "^1.9.15"
39 | },
40 | "devDependencies": {
41 | "chai": "^4.2.0",
42 | "eslint": "^7.3.1",
43 | "eslint-config-standard": "^14.1.0",
44 | "eslint-plugin-import": "^2.22.0",
45 | "eslint-plugin-node": "^11.0.0",
46 | "eslint-plugin-promise": "^4.2.1",
47 | "eslint-plugin-standard": "^4.0.1",
48 | "husky": "^4.2.5",
49 | "mocha": "^8.0.1",
50 | "nyc": "^15.1.0"
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/test/index.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable no-template-curly-in-string */
2 |
3 | const expect = require('chai').expect
4 | const transformJS = require('../lib/index.js')
5 |
6 | function testOutput (inputRule, exp) {
7 | const result = transformJS(inputRule)
8 |
9 | if (typeof exp === 'function') {
10 | return exp(result)
11 | }
12 |
13 | return expect(result).to.deep.equal(exp)
14 | }
15 |
16 | function testError (inputRule, errorMessage) {
17 | return expect(() => transformJS(inputRule))
18 | .to.throw(Error, errorMessage)
19 | .and.have.property('at')
20 | }
21 |
22 | describe('parseJS', function () {
23 | it('parse string literals', function () {
24 | testOutput('"hi"', 'hi')
25 | testOutput('say("hey!")', { say: ['hey!'] })
26 | testOutput('blue + "hey"', { '+': [{ var: 'blue' }, 'hey'] })
27 | testOutput("log('hi')", { log: ['hi'] })
28 | })
29 |
30 | it('parse identifiers (variables) and nullish values', function () {
31 | testOutput('', null)
32 | testOutput('myVar', { var: 'myVar' })
33 | testOutput('null', null)
34 | testOutput('undefined', null)
35 | })
36 |
37 | it('parse member expressions', function () {
38 | testOutput('arr[0]', { var: 'arr.0' })
39 | testOutput('obj.prop', { var: 'obj.prop' })
40 | testOutput('deep.object.that.has.deep.properties', { var: 'deep.object.that.has.deep.properties' })
41 | testOutput('deep.object.that.has[0].multiple.arrays[3].in[2].it', { var: 'deep.object.that.has.0.multiple.arrays.3.in.2.it' })
42 | testOutput('object.super.deep.function()', {
43 | 'object.super.deep.function': []
44 | })
45 | testOutput('object.super.deep.function(plus, "args")', {
46 | 'object.super.deep.function': [
47 | { var: 'plus' },
48 | 'args'
49 | ]
50 | })
51 | })
52 |
53 | it('parse numeric literals', function () {
54 | testOutput('0', 0)
55 | testOutput('10000000', 10000000)
56 | testOutput('10 + 10', { '+': [10, 10] })
57 | testOutput('callFunction(10, 10, 20)', { callFunction: [10, 10, 20] })
58 | })
59 |
60 | it('parse regex literals', function () {
61 | testOutput('/word/', ['word', ''])
62 | testOutput('test(/^[2-9]\\d{2}-\\d{3}-\\d{4}$/gi)', {
63 | test: [
64 | ['^[2-9]\\d{2}-\\d{3}-\\d{4}$', 'gi']
65 | ]
66 | })
67 | })
68 |
69 | it('parse array expressions', function () {
70 | testOutput('[1,2,3]', [1, 2, 3])
71 | testOutput('filter(["banana", "strawberry", "mango"], x => x === "mango")', {
72 | filter: [
73 | [
74 | 'banana',
75 | 'strawberry',
76 | 'mango'
77 | ],
78 | {
79 | '===': [
80 | { var: '' },
81 | 'mango'
82 | ]
83 | }
84 | ]
85 | })
86 | testOutput('[a === b, c === d, e === f]', [
87 | { '===': [{ var: 'a' }, { var: 'b' }] },
88 | { '===': [{ var: 'c' }, { var: 'd' }] },
89 | { '===': [{ var: 'e' }, { var: 'f' }] }
90 | ])
91 | testOutput('[1, 2, ...myArray]', {
92 | merge: [
93 | 1,
94 | 2,
95 | { var: 'myArray' }
96 | ]
97 | })
98 | })
99 |
100 | it('parse object expressions and ignore spread elements', function () {
101 | testOutput('({ a: 1, b: 2, ...c })', {
102 | a: 1,
103 | b: 2
104 | })
105 | testOutput('console.log({ a: 1, b: 2, c: 3 })', {
106 | 'console.log': [
107 | {
108 | a: 1,
109 | b: 2,
110 | c: 3
111 | }
112 | ]
113 | })
114 | testOutput('say([{ a: "1", b: 2, c }])', {
115 | say: [
116 | [
117 | { a: '1', b: 2, c: { var: 'c' } }
118 | ]
119 | ]
120 | })
121 | })
122 |
123 | it('parse template literals', function () {
124 | testOutput('`Hello, ${first_name}!`', {
125 | cat: [
126 | 'Hello, ',
127 | { var: 'first_name' },
128 | '!'
129 | ]
130 | })
131 | testOutput('`The price is $${1}`', {
132 | cat: [
133 | 'The price is $',
134 | 1
135 | ]
136 | })
137 | testOutput('`Hello there`', 'Hello there')
138 | testOutput('`${hi}`', { var: 'hi' })
139 | testOutput('sup + `Hello, ${first_name}`', {
140 | '+': [
141 | {
142 | var: 'sup'
143 | },
144 | {
145 | cat: [
146 | 'Hello, ',
147 | { var: 'first_name' }
148 | ]
149 | }
150 | ]
151 | })
152 | testOutput('log(`Error: ${e.message}`)', {
153 | log: [
154 | {
155 | cat: [
156 | 'Error: ',
157 | {
158 | var: 'e.message'
159 | }
160 | ]
161 | }
162 | ]
163 | })
164 | })
165 |
166 | it('parse arithmetic expressions', function () {
167 | testOutput('2 + 2', { '+': [2, 2] })
168 | testOutput('2 - 5', { '-': [2, 5] })
169 | testOutput('price + 1', { '+': [{ var: 'price' }, 1] })
170 | testOutput('2 * (1 - tax)', {
171 | '*': [
172 | 2,
173 | {
174 | '-': [
175 | 1,
176 | { var: 'tax' }
177 | ]
178 | }
179 | ]
180 | })
181 | })
182 |
183 | it('parse logical and comparison expressions', function () {
184 | testOutput('myVariable === 1', { '===': [{ var: 'myVariable' }, 1] })
185 | testOutput('2 > 1', { '>': [2, 1] })
186 | testOutput('price >= 2.40', { '>=': [{ var: 'price' }, 2.40] })
187 | testOutput('price > wallet || price < 0', {
188 | or: [
189 | { '>': [{ var: 'price' }, { var: 'wallet' }] },
190 | { '<': [{ var: 'price' }, 0] }
191 | ]
192 | })
193 | testOutput('a === b && c === d', {
194 | and: [
195 | { '===': [{ var: 'a' }, { var: 'b' }] },
196 | { '===': [{ var: 'c' }, { var: 'd' }] }
197 | ]
198 | })
199 | })
200 |
201 | it('parse conditional (ternary) expressions', function () {
202 | testOutput('a ? b : c', {
203 | if: [
204 | { var: 'a' },
205 | { var: 'b' },
206 | { var: 'c' }
207 | ]
208 | })
209 | testOutput('a ? (b ? 1 : 2) : 3', {
210 | if: [
211 | { var: 'a' },
212 | {
213 | if: [
214 | { var: 'b' },
215 | 1,
216 | 2
217 | ]
218 | },
219 | 3
220 | ]
221 | })
222 | testOutput('a > 0 ? "boom" : "bam"', {
223 | if: [
224 | { '>': [{ var: 'a' }, 0] },
225 | 'boom',
226 | 'bam'
227 | ]
228 | })
229 | })
230 |
231 | it('parse if statements', function () {
232 | testOutput('if (a === b) { 1 } else { 4 }', {
233 | if: [
234 | { '===': [{ var: 'a' }, { var: 'b' }] },
235 | 1,
236 | 4
237 | ]
238 | })
239 |
240 | testOutput('if (a > b) { "a is greater than b" }', {
241 | if: [
242 | { '>': [{ var: 'a' }, { var: 'b' }] },
243 | 'a is greater than b'
244 | ]
245 | })
246 | })
247 |
248 | it('parse directives as strings', function () {
249 | testOutput('"use strict"', 'use strict')
250 | })
251 |
252 | it('parse unary expressions', function () {
253 | testOutput('!variable', { '!': [{ var: 'variable' }] })
254 | testOutput('!!variable', { '!!': [{ var: 'variable' }] })
255 | testOutput('a > -1', { '>': [{ var: 'a' }, -1] })
256 | testOutput('-1', -1)
257 | })
258 |
259 | it('parse arrow function expressions', function () {
260 | testOutput('x => x + 1', { '+': [{ var: '' }, 1] })
261 | testOutput('() => x + 1', { '+': [{ var: 'x' }, 1] })
262 | testOutput('(x, y) => ({ lat: x, lon: y })', { lat: { var: 'x' }, lon: { var: 'y' } })
263 | testOutput('reduce(arr, (current, accumulator) => { return current + accumulator })', {
264 | reduce: [
265 | {
266 | var: 'arr'
267 | },
268 | {
269 | '+': [
270 | { var: 'current' },
271 | { var: 'accumulator' }
272 | ]
273 | }
274 | ]
275 | })
276 | testOutput('x => y + 1', { '+': [{ var: 'y' }, 1] })
277 | testError('(x) => { a === b; c === d ; }', 'Only one-line arrow functions with implicit return are supported.')
278 | })
279 |
280 | it('throw an error when using unsupported features', function () {
281 | testError('a++', 'Update expressions (x++, ++x, x--, --x, etc.) are not supported.')
282 | testError('log`hi`', 'Tagged template expressions are not supported.')
283 | testError('new Book()', 'Expressions that use the `new` keyword are not supported.')
284 | testError('class Component {}', 'Classes are not supported.')
285 | testError('function x () {}', 'Function declarations are not supported.')
286 | testError('while (a > b) {}', 'While-loops are not supported.')
287 | testError('for (let i; i < 10; i++) {}', 'For-loops are not supported.')
288 | testError('switch (rule) { }', 'Switch statements are not supported.')
289 | testError('const x = []', 'Variable (var, let, const) declarations are not supported.')
290 | testError('x = 1', 'Assignments not supported.')
291 | testError('with (a) {}', 'Could not parse code. [1:6]: Strict mode code may not include a with statement')
292 | testError('a ?? b', "Could not parse code. Invalid node 'CoalesceExpression'. Not supported.")
293 | })
294 |
295 | it('throw an error when providing a multi-expression block statement or directives', function () {
296 | testError('{ a === b; c === d }', 'Block statements can only have one expression statement.')
297 | testError('a === b; b === c;', 'Only one expression statement allowed.')
298 | testError('"hi";"hey";', 'Only one expression statement allowed.')
299 | })
300 |
301 | it('throw an error when syntax is invalid', function () {
302 | testError('1 / function', "Could not parse code. [1:12]: Expected '('")
303 | testError('99999eeee999e9e9e9', 'Could not parse code. [1:6]: Non-number found after exponent indicator')
304 | testError('#great', "Private names are not supported. Unexpected character '#'")
305 | })
306 | })
307 |
--------------------------------------------------------------------------------