├── .editorconfig
├── .github
└── workflows
│ └── codeql-analysis.yml
├── .gitignore
├── .vscode
├── launch.json
├── settings.json
└── tasks.json
├── .vscodeignore
├── CHANGELOG.md
├── LICENSE
├── README.md
├── package-lock.json
├── package.json
├── src
├── excel-markdown-helpers.ts
├── excel-markdown-tables.ts
├── extension.ts
├── interfaces.ts
├── table-alignment-syntax.ts
└── test
│ ├── runTest.ts
│ └── suite
│ ├── excel-markdown-helpers.test.ts
│ ├── excel-markdown-tables.test.ts
│ └── index.ts
├── tsconfig.json
└── vsc-extension-quickstart.md
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | indent_style = space
5 | indent_size = 4
6 | charset = utf-8
7 | trim_trailing_whitespace = true
8 | insert_final_newline = true
9 |
10 | [*.md]
11 | trim_trailing_whitespace = false
12 |
--------------------------------------------------------------------------------
/.github/workflows/codeql-analysis.yml:
--------------------------------------------------------------------------------
1 | # For most projects, this workflow file will not need changing; you simply need
2 | # to commit it to your repository.
3 | #
4 | # You may wish to alter this file to override the set of languages analyzed,
5 | # or to provide custom queries or build logic.
6 | #
7 | # ******** NOTE ********
8 | # We have attempted to detect the languages in your repository. Please check
9 | # the `language` matrix defined below to confirm you have the correct set of
10 | # supported CodeQL languages.
11 | #
12 | name: "CodeQL"
13 |
14 | on:
15 | push:
16 | branches: [ master ]
17 | pull_request:
18 | # The branches below must be a subset of the branches above
19 | branches: [ master ]
20 | schedule:
21 | - cron: '22 17 * * 1'
22 |
23 | jobs:
24 | analyze:
25 | name: Analyze
26 | runs-on: ubuntu-latest
27 | permissions:
28 | actions: read
29 | contents: read
30 | security-events: write
31 |
32 | strategy:
33 | fail-fast: false
34 | matrix:
35 | language: [ 'javascript' ]
36 | # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
37 | # Learn more:
38 | # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
39 |
40 | steps:
41 | - name: Checkout repository
42 | uses: actions/checkout@v2
43 |
44 | # Initializes the CodeQL tools for scanning.
45 | - name: Initialize CodeQL
46 | uses: github/codeql-action/init@v1
47 | with:
48 | languages: ${{ matrix.language }}
49 | # If you wish to specify custom queries, you can do so here or in a config file.
50 | # By default, queries listed here will override any specified in a config file.
51 | # Prefix the list here with "+" to use these queries and those in the config file.
52 | # queries: ./path/to/local/query, your-org/your-repo/queries@main
53 |
54 | # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
55 | # If this step fails, then you should remove it and run the build manually (see below)
56 | - name: Autobuild
57 | uses: github/codeql-action/autobuild@v1
58 |
59 | # ℹ️ Command-line programs to run using the OS shell.
60 | # 📚 https://git.io/JvXDl
61 |
62 | # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
63 | # and modify them (or add more) to build your code if your project
64 | # uses a compiled language
65 |
66 | #- run: |
67 | # make bootstrap
68 | # make release
69 |
70 | - name: Perform CodeQL Analysis
71 | uses: github/codeql-action/analyze@v1
72 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | out
2 | node_modules
3 | .vscode-test/
4 | .vsix
5 | coverage/
6 | .nyc_output/
7 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | // A launch configuration that compiles the extension and then opens it inside a new window
2 | // Use IntelliSense to learn about possible attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | {
6 | "version": "0.2.0",
7 | "configurations": [
8 | {
9 | "name": "Run Extension",
10 | "type": "extensionHost",
11 | "request": "launch",
12 | "runtimeExecutable": "${execPath}",
13 | "args": [
14 | "--extensionDevelopmentPath=${workspaceFolder}"
15 | ],
16 | "outFiles": [
17 | "${workspaceFolder}/out/**/*.js"
18 | ],
19 | "preLaunchTask": "${defaultBuildTask}"
20 | },
21 | {
22 | "name": "Extension Tests",
23 | "type": "extensionHost",
24 | "request": "launch",
25 | "runtimeExecutable": "${execPath}",
26 | "args": [
27 | "--extensionDevelopmentPath=${workspaceFolder}",
28 | "--extensionTestsPath=${workspaceFolder}/out/test/suite/index"
29 | ],
30 | "outFiles": [
31 | "${workspaceFolder}/out/test/**/*.js"
32 | ],
33 | "preLaunchTask": "${defaultBuildTask}"
34 | }
35 | ]
36 | }
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "files.exclude": {
4 | "out": false // set this to true to hide the "out" folder with the compiled JS files
5 | },
6 | "search.exclude": {
7 | "out": true // set this to false to include "out" folder in search results
8 | }
9 | }
--------------------------------------------------------------------------------
/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | // See https://go.microsoft.com/fwlink/?LinkId=733558
2 | // for the documentation about the tasks.json format
3 | {
4 | "version": "2.0.0",
5 | "tasks": [
6 | {
7 | "type": "npm",
8 | "script": "watch",
9 | "problemMatcher": "$tsc-watch",
10 | "isBackground": true,
11 | "presentation": {
12 | "reveal": "never"
13 | },
14 | "group": "build"
15 | },
16 | {
17 | "type": "npm",
18 | "script": "compile",
19 | "group": {
20 | "kind": "build",
21 | "isDefault": true
22 | }
23 | }
24 | ]
25 | }
--------------------------------------------------------------------------------
/.vscodeignore:
--------------------------------------------------------------------------------
1 | .vscode/**
2 | .vscode-test/**
3 | out/test/**
4 | out/**/*.map
5 | src/**
6 | .gitignore
7 | tsconfig.json
8 | vsc-extension-quickstart.md
9 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Change Log
2 | All notable changes to the "excel-to-markdown-table" extension will be documented in this file.
3 |
4 | ## [1.2.1] - 2020-04-06
5 | - Fixed bug with extension not auto-loading upon calling it
6 |
7 | ## [1.2.0] - 2020-01-19
8 | - Adds support for newlines within cells
9 |
10 | ## [1.1.0] - 2018-09-23
11 | - Refactoring to separate files (@tylerhaigh)
12 | - Added test cases (@tylerhaigh)
13 |
14 | ## [1.0.0] - 2018-09-22
15 | - Fixes bug with trailing null cell (@deshorsley)
16 | - Partial test coverage in place (@deshorsley)
17 |
18 | ## [0.3.1] - 2018-02-18
19 | - Clarified readme as to when the extension is activated
20 |
21 | ## [0.3.0] - 2018-02-04
22 | - Added extension command
23 | - Added keyboard shortcut
24 | - Removed minimum table size constraints
25 |
26 | ## [0.2.0] - 2018-02-03
27 | - Fixed versioning
28 | - Now only considers data with >1 columns as a table
29 | - Added GIF to readme
30 |
31 | ## [0.1.0] - 2018-02-03
32 | - Added table format checker to avoid formatting non Excel clipboard pastes
33 | - Cleaned up logic and made it a bit prettier
34 |
35 | ## [0.0.1] - 2018-02-02
36 | - Initial release
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 Sebastian Holmqvist
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 | # excel-to-markdown-table README
2 |
3 | This VSCode extension converts Excel data to Markdown table format. Available through command `Excel to Markdown table` and keyboard shortcut `Shift+Alt+V`.
4 |
5 | 
6 |
7 | Optionally align columns by prepending the headers with `^[lcr]` for left, center and right alignment. E.g `^lHeader` for left aligning the columns named *Header*.
8 |
9 | Based on https://github.com/thisdavej/copy-excel-paste-markdown and the work of @jonmagic and @thisdavej
10 |
11 | ## Contributors
12 | * @deshorsley for bug fix and test coverage!
13 | * @tylerhaigh for refactoring and test coverage!
14 | * @usagi for new line handling and refactoring!
15 | * @trackds for migrating to internal VSCode clipboard API
16 |
17 | ## Known Issues
18 | * None
19 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "excel-to-markdown-table",
3 | "version": "1.3.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "excel-to-markdown-table",
9 | "version": "1.3.0",
10 | "devDependencies": {
11 | "@types/mocha": "^5.2.7",
12 | "@types/node": "^13.13.52",
13 | "@types/vscode": "^1.59.0",
14 | "nyc": "^15.1.0",
15 | "source-map-support": "^0.5.19",
16 | "ts-node": "^8.10.2",
17 | "typescript": "^3.9.10",
18 | "vscode-test": "^1.6.1"
19 | },
20 | "engines": {
21 | "vscode": "^1.59.0"
22 | }
23 | },
24 | "node_modules/@babel/code-frame": {
25 | "version": "7.22.13",
26 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
27 | "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
28 | "dev": true,
29 | "dependencies": {
30 | "@babel/highlight": "^7.22.13",
31 | "chalk": "^2.4.2"
32 | },
33 | "engines": {
34 | "node": ">=6.9.0"
35 | }
36 | },
37 | "node_modules/@babel/compat-data": {
38 | "version": "7.15.0",
39 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz",
40 | "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==",
41 | "dev": true,
42 | "engines": {
43 | "node": ">=6.9.0"
44 | }
45 | },
46 | "node_modules/@babel/core": {
47 | "version": "7.15.0",
48 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.0.tgz",
49 | "integrity": "sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw==",
50 | "dev": true,
51 | "dependencies": {
52 | "@babel/code-frame": "^7.14.5",
53 | "@babel/generator": "^7.15.0",
54 | "@babel/helper-compilation-targets": "^7.15.0",
55 | "@babel/helper-module-transforms": "^7.15.0",
56 | "@babel/helpers": "^7.14.8",
57 | "@babel/parser": "^7.15.0",
58 | "@babel/template": "^7.14.5",
59 | "@babel/traverse": "^7.15.0",
60 | "@babel/types": "^7.15.0",
61 | "convert-source-map": "^1.7.0",
62 | "debug": "^4.1.0",
63 | "gensync": "^1.0.0-beta.2",
64 | "json5": "^2.1.2",
65 | "semver": "^6.3.0",
66 | "source-map": "^0.5.0"
67 | },
68 | "engines": {
69 | "node": ">=6.9.0"
70 | },
71 | "funding": {
72 | "type": "opencollective",
73 | "url": "https://opencollective.com/babel"
74 | }
75 | },
76 | "node_modules/@babel/generator": {
77 | "version": "7.23.0",
78 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz",
79 | "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==",
80 | "dev": true,
81 | "dependencies": {
82 | "@babel/types": "^7.23.0",
83 | "@jridgewell/gen-mapping": "^0.3.2",
84 | "@jridgewell/trace-mapping": "^0.3.17",
85 | "jsesc": "^2.5.1"
86 | },
87 | "engines": {
88 | "node": ">=6.9.0"
89 | }
90 | },
91 | "node_modules/@babel/helper-compilation-targets": {
92 | "version": "7.15.0",
93 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz",
94 | "integrity": "sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A==",
95 | "dev": true,
96 | "dependencies": {
97 | "@babel/compat-data": "^7.15.0",
98 | "@babel/helper-validator-option": "^7.14.5",
99 | "browserslist": "^4.16.6",
100 | "semver": "^6.3.0"
101 | },
102 | "engines": {
103 | "node": ">=6.9.0"
104 | },
105 | "peerDependencies": {
106 | "@babel/core": "^7.0.0"
107 | }
108 | },
109 | "node_modules/@babel/helper-environment-visitor": {
110 | "version": "7.22.20",
111 | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
112 | "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
113 | "dev": true,
114 | "engines": {
115 | "node": ">=6.9.0"
116 | }
117 | },
118 | "node_modules/@babel/helper-function-name": {
119 | "version": "7.23.0",
120 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
121 | "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
122 | "dev": true,
123 | "dependencies": {
124 | "@babel/template": "^7.22.15",
125 | "@babel/types": "^7.23.0"
126 | },
127 | "engines": {
128 | "node": ">=6.9.0"
129 | }
130 | },
131 | "node_modules/@babel/helper-hoist-variables": {
132 | "version": "7.22.5",
133 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
134 | "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
135 | "dev": true,
136 | "dependencies": {
137 | "@babel/types": "^7.22.5"
138 | },
139 | "engines": {
140 | "node": ">=6.9.0"
141 | }
142 | },
143 | "node_modules/@babel/helper-member-expression-to-functions": {
144 | "version": "7.15.0",
145 | "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz",
146 | "integrity": "sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==",
147 | "dev": true,
148 | "dependencies": {
149 | "@babel/types": "^7.15.0"
150 | },
151 | "engines": {
152 | "node": ">=6.9.0"
153 | }
154 | },
155 | "node_modules/@babel/helper-module-imports": {
156 | "version": "7.14.5",
157 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz",
158 | "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==",
159 | "dev": true,
160 | "dependencies": {
161 | "@babel/types": "^7.14.5"
162 | },
163 | "engines": {
164 | "node": ">=6.9.0"
165 | }
166 | },
167 | "node_modules/@babel/helper-module-transforms": {
168 | "version": "7.15.0",
169 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz",
170 | "integrity": "sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg==",
171 | "dev": true,
172 | "dependencies": {
173 | "@babel/helper-module-imports": "^7.14.5",
174 | "@babel/helper-replace-supers": "^7.15.0",
175 | "@babel/helper-simple-access": "^7.14.8",
176 | "@babel/helper-split-export-declaration": "^7.14.5",
177 | "@babel/helper-validator-identifier": "^7.14.9",
178 | "@babel/template": "^7.14.5",
179 | "@babel/traverse": "^7.15.0",
180 | "@babel/types": "^7.15.0"
181 | },
182 | "engines": {
183 | "node": ">=6.9.0"
184 | }
185 | },
186 | "node_modules/@babel/helper-optimise-call-expression": {
187 | "version": "7.14.5",
188 | "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz",
189 | "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==",
190 | "dev": true,
191 | "dependencies": {
192 | "@babel/types": "^7.14.5"
193 | },
194 | "engines": {
195 | "node": ">=6.9.0"
196 | }
197 | },
198 | "node_modules/@babel/helper-replace-supers": {
199 | "version": "7.15.0",
200 | "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz",
201 | "integrity": "sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==",
202 | "dev": true,
203 | "dependencies": {
204 | "@babel/helper-member-expression-to-functions": "^7.15.0",
205 | "@babel/helper-optimise-call-expression": "^7.14.5",
206 | "@babel/traverse": "^7.15.0",
207 | "@babel/types": "^7.15.0"
208 | },
209 | "engines": {
210 | "node": ">=6.9.0"
211 | }
212 | },
213 | "node_modules/@babel/helper-simple-access": {
214 | "version": "7.14.8",
215 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz",
216 | "integrity": "sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==",
217 | "dev": true,
218 | "dependencies": {
219 | "@babel/types": "^7.14.8"
220 | },
221 | "engines": {
222 | "node": ">=6.9.0"
223 | }
224 | },
225 | "node_modules/@babel/helper-split-export-declaration": {
226 | "version": "7.22.6",
227 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
228 | "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
229 | "dev": true,
230 | "dependencies": {
231 | "@babel/types": "^7.22.5"
232 | },
233 | "engines": {
234 | "node": ">=6.9.0"
235 | }
236 | },
237 | "node_modules/@babel/helper-string-parser": {
238 | "version": "7.22.5",
239 | "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
240 | "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
241 | "dev": true,
242 | "engines": {
243 | "node": ">=6.9.0"
244 | }
245 | },
246 | "node_modules/@babel/helper-validator-identifier": {
247 | "version": "7.22.20",
248 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
249 | "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
250 | "dev": true,
251 | "engines": {
252 | "node": ">=6.9.0"
253 | }
254 | },
255 | "node_modules/@babel/helper-validator-option": {
256 | "version": "7.14.5",
257 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz",
258 | "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==",
259 | "dev": true,
260 | "engines": {
261 | "node": ">=6.9.0"
262 | }
263 | },
264 | "node_modules/@babel/helpers": {
265 | "version": "7.15.3",
266 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.3.tgz",
267 | "integrity": "sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g==",
268 | "dev": true,
269 | "dependencies": {
270 | "@babel/template": "^7.14.5",
271 | "@babel/traverse": "^7.15.0",
272 | "@babel/types": "^7.15.0"
273 | },
274 | "engines": {
275 | "node": ">=6.9.0"
276 | }
277 | },
278 | "node_modules/@babel/highlight": {
279 | "version": "7.22.20",
280 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
281 | "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
282 | "dev": true,
283 | "dependencies": {
284 | "@babel/helper-validator-identifier": "^7.22.20",
285 | "chalk": "^2.4.2",
286 | "js-tokens": "^4.0.0"
287 | },
288 | "engines": {
289 | "node": ">=6.9.0"
290 | }
291 | },
292 | "node_modules/@babel/parser": {
293 | "version": "7.23.0",
294 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
295 | "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
296 | "dev": true,
297 | "bin": {
298 | "parser": "bin/babel-parser.js"
299 | },
300 | "engines": {
301 | "node": ">=6.0.0"
302 | }
303 | },
304 | "node_modules/@babel/template": {
305 | "version": "7.22.15",
306 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
307 | "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
308 | "dev": true,
309 | "dependencies": {
310 | "@babel/code-frame": "^7.22.13",
311 | "@babel/parser": "^7.22.15",
312 | "@babel/types": "^7.22.15"
313 | },
314 | "engines": {
315 | "node": ">=6.9.0"
316 | }
317 | },
318 | "node_modules/@babel/traverse": {
319 | "version": "7.23.2",
320 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz",
321 | "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==",
322 | "dev": true,
323 | "dependencies": {
324 | "@babel/code-frame": "^7.22.13",
325 | "@babel/generator": "^7.23.0",
326 | "@babel/helper-environment-visitor": "^7.22.20",
327 | "@babel/helper-function-name": "^7.23.0",
328 | "@babel/helper-hoist-variables": "^7.22.5",
329 | "@babel/helper-split-export-declaration": "^7.22.6",
330 | "@babel/parser": "^7.23.0",
331 | "@babel/types": "^7.23.0",
332 | "debug": "^4.1.0",
333 | "globals": "^11.1.0"
334 | },
335 | "engines": {
336 | "node": ">=6.9.0"
337 | }
338 | },
339 | "node_modules/@babel/types": {
340 | "version": "7.23.0",
341 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz",
342 | "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==",
343 | "dev": true,
344 | "dependencies": {
345 | "@babel/helper-string-parser": "^7.22.5",
346 | "@babel/helper-validator-identifier": "^7.22.20",
347 | "to-fast-properties": "^2.0.0"
348 | },
349 | "engines": {
350 | "node": ">=6.9.0"
351 | }
352 | },
353 | "node_modules/@istanbuljs/load-nyc-config": {
354 | "version": "1.1.0",
355 | "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
356 | "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
357 | "dev": true,
358 | "dependencies": {
359 | "camelcase": "^5.3.1",
360 | "find-up": "^4.1.0",
361 | "get-package-type": "^0.1.0",
362 | "js-yaml": "^3.13.1",
363 | "resolve-from": "^5.0.0"
364 | },
365 | "engines": {
366 | "node": ">=8"
367 | }
368 | },
369 | "node_modules/@istanbuljs/schema": {
370 | "version": "0.1.3",
371 | "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
372 | "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
373 | "dev": true,
374 | "engines": {
375 | "node": ">=8"
376 | }
377 | },
378 | "node_modules/@jridgewell/gen-mapping": {
379 | "version": "0.3.3",
380 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
381 | "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
382 | "dev": true,
383 | "dependencies": {
384 | "@jridgewell/set-array": "^1.0.1",
385 | "@jridgewell/sourcemap-codec": "^1.4.10",
386 | "@jridgewell/trace-mapping": "^0.3.9"
387 | },
388 | "engines": {
389 | "node": ">=6.0.0"
390 | }
391 | },
392 | "node_modules/@jridgewell/resolve-uri": {
393 | "version": "3.1.1",
394 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
395 | "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
396 | "dev": true,
397 | "engines": {
398 | "node": ">=6.0.0"
399 | }
400 | },
401 | "node_modules/@jridgewell/set-array": {
402 | "version": "1.1.2",
403 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
404 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
405 | "dev": true,
406 | "engines": {
407 | "node": ">=6.0.0"
408 | }
409 | },
410 | "node_modules/@jridgewell/sourcemap-codec": {
411 | "version": "1.4.15",
412 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
413 | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
414 | "dev": true
415 | },
416 | "node_modules/@jridgewell/trace-mapping": {
417 | "version": "0.3.19",
418 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz",
419 | "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==",
420 | "dev": true,
421 | "dependencies": {
422 | "@jridgewell/resolve-uri": "^3.1.0",
423 | "@jridgewell/sourcemap-codec": "^1.4.14"
424 | }
425 | },
426 | "node_modules/@tootallnate/once": {
427 | "version": "1.1.2",
428 | "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
429 | "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
430 | "dev": true,
431 | "engines": {
432 | "node": ">= 6"
433 | }
434 | },
435 | "node_modules/@types/mocha": {
436 | "version": "5.2.7",
437 | "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz",
438 | "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==",
439 | "dev": true
440 | },
441 | "node_modules/@types/node": {
442 | "version": "13.13.52",
443 | "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.52.tgz",
444 | "integrity": "sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ==",
445 | "dev": true
446 | },
447 | "node_modules/@types/vscode": {
448 | "version": "1.59.0",
449 | "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.59.0.tgz",
450 | "integrity": "sha512-Zg38rusx2nU6gy6QdF7v4iqgxNfxzlBlDhrRCjOiPQp+sfaNrp3f9J6OHIhpGNN1oOAca4+9Hq0+8u3jwzPMlQ==",
451 | "dev": true
452 | },
453 | "node_modules/agent-base": {
454 | "version": "6.0.2",
455 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
456 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
457 | "dev": true,
458 | "dependencies": {
459 | "debug": "4"
460 | },
461 | "engines": {
462 | "node": ">= 6.0.0"
463 | }
464 | },
465 | "node_modules/aggregate-error": {
466 | "version": "3.1.0",
467 | "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
468 | "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
469 | "dev": true,
470 | "dependencies": {
471 | "clean-stack": "^2.0.0",
472 | "indent-string": "^4.0.0"
473 | },
474 | "engines": {
475 | "node": ">=8"
476 | }
477 | },
478 | "node_modules/ansi-regex": {
479 | "version": "5.0.1",
480 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
481 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
482 | "dev": true,
483 | "engines": {
484 | "node": ">=8"
485 | }
486 | },
487 | "node_modules/ansi-styles": {
488 | "version": "3.2.1",
489 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
490 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
491 | "dev": true,
492 | "dependencies": {
493 | "color-convert": "^1.9.0"
494 | },
495 | "engines": {
496 | "node": ">=4"
497 | }
498 | },
499 | "node_modules/append-transform": {
500 | "version": "2.0.0",
501 | "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz",
502 | "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==",
503 | "dev": true,
504 | "dependencies": {
505 | "default-require-extensions": "^3.0.0"
506 | },
507 | "engines": {
508 | "node": ">=8"
509 | }
510 | },
511 | "node_modules/archy": {
512 | "version": "1.0.0",
513 | "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
514 | "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=",
515 | "dev": true
516 | },
517 | "node_modules/arg": {
518 | "version": "4.1.3",
519 | "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
520 | "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
521 | "dev": true
522 | },
523 | "node_modules/argparse": {
524 | "version": "1.0.10",
525 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
526 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
527 | "dev": true,
528 | "dependencies": {
529 | "sprintf-js": "~1.0.2"
530 | }
531 | },
532 | "node_modules/balanced-match": {
533 | "version": "1.0.2",
534 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
535 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
536 | "dev": true
537 | },
538 | "node_modules/big-integer": {
539 | "version": "1.6.48",
540 | "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz",
541 | "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==",
542 | "dev": true,
543 | "engines": {
544 | "node": ">=0.6"
545 | }
546 | },
547 | "node_modules/binary": {
548 | "version": "0.3.0",
549 | "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz",
550 | "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=",
551 | "dev": true,
552 | "dependencies": {
553 | "buffers": "~0.1.1",
554 | "chainsaw": "~0.1.0"
555 | },
556 | "engines": {
557 | "node": "*"
558 | }
559 | },
560 | "node_modules/bluebird": {
561 | "version": "3.4.7",
562 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz",
563 | "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=",
564 | "dev": true
565 | },
566 | "node_modules/brace-expansion": {
567 | "version": "1.1.11",
568 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
569 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
570 | "dev": true,
571 | "dependencies": {
572 | "balanced-match": "^1.0.0",
573 | "concat-map": "0.0.1"
574 | }
575 | },
576 | "node_modules/browserslist": {
577 | "version": "4.16.7",
578 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.7.tgz",
579 | "integrity": "sha512-7I4qVwqZltJ7j37wObBe3SoTz+nS8APaNcrBOlgoirb6/HbEU2XxW/LpUDTCngM6iauwFqmRTuOMfyKnFGY5JA==",
580 | "dev": true,
581 | "dependencies": {
582 | "caniuse-lite": "^1.0.30001248",
583 | "colorette": "^1.2.2",
584 | "electron-to-chromium": "^1.3.793",
585 | "escalade": "^3.1.1",
586 | "node-releases": "^1.1.73"
587 | },
588 | "bin": {
589 | "browserslist": "cli.js"
590 | },
591 | "engines": {
592 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
593 | },
594 | "funding": {
595 | "type": "opencollective",
596 | "url": "https://opencollective.com/browserslist"
597 | }
598 | },
599 | "node_modules/buffer-from": {
600 | "version": "1.1.2",
601 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
602 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
603 | "dev": true
604 | },
605 | "node_modules/buffer-indexof-polyfill": {
606 | "version": "1.0.2",
607 | "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz",
608 | "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==",
609 | "dev": true,
610 | "engines": {
611 | "node": ">=0.10"
612 | }
613 | },
614 | "node_modules/buffers": {
615 | "version": "0.1.1",
616 | "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
617 | "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=",
618 | "dev": true,
619 | "engines": {
620 | "node": ">=0.2.0"
621 | }
622 | },
623 | "node_modules/caching-transform": {
624 | "version": "4.0.0",
625 | "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz",
626 | "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==",
627 | "dev": true,
628 | "dependencies": {
629 | "hasha": "^5.0.0",
630 | "make-dir": "^3.0.0",
631 | "package-hash": "^4.0.0",
632 | "write-file-atomic": "^3.0.0"
633 | },
634 | "engines": {
635 | "node": ">=8"
636 | }
637 | },
638 | "node_modules/camelcase": {
639 | "version": "5.3.1",
640 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
641 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
642 | "dev": true,
643 | "engines": {
644 | "node": ">=6"
645 | }
646 | },
647 | "node_modules/caniuse-lite": {
648 | "version": "1.0.30001251",
649 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001251.tgz",
650 | "integrity": "sha512-HOe1r+9VkU4TFmnU70z+r7OLmtR+/chB1rdcJUeQlAinjEeb0cKL20tlAtOagNZhbrtLnCvV19B4FmF1rgzl6A==",
651 | "dev": true,
652 | "funding": {
653 | "type": "opencollective",
654 | "url": "https://opencollective.com/browserslist"
655 | }
656 | },
657 | "node_modules/chainsaw": {
658 | "version": "0.1.0",
659 | "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz",
660 | "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=",
661 | "dev": true,
662 | "dependencies": {
663 | "traverse": ">=0.3.0 <0.4"
664 | },
665 | "engines": {
666 | "node": "*"
667 | }
668 | },
669 | "node_modules/chalk": {
670 | "version": "2.4.2",
671 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
672 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
673 | "dev": true,
674 | "dependencies": {
675 | "ansi-styles": "^3.2.1",
676 | "escape-string-regexp": "^1.0.5",
677 | "supports-color": "^5.3.0"
678 | },
679 | "engines": {
680 | "node": ">=4"
681 | }
682 | },
683 | "node_modules/clean-stack": {
684 | "version": "2.2.0",
685 | "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
686 | "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
687 | "dev": true,
688 | "engines": {
689 | "node": ">=6"
690 | }
691 | },
692 | "node_modules/cliui": {
693 | "version": "6.0.0",
694 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
695 | "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
696 | "dev": true,
697 | "dependencies": {
698 | "string-width": "^4.2.0",
699 | "strip-ansi": "^6.0.0",
700 | "wrap-ansi": "^6.2.0"
701 | }
702 | },
703 | "node_modules/color-convert": {
704 | "version": "1.9.3",
705 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
706 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
707 | "dev": true,
708 | "dependencies": {
709 | "color-name": "1.1.3"
710 | }
711 | },
712 | "node_modules/color-name": {
713 | "version": "1.1.3",
714 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
715 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
716 | "dev": true
717 | },
718 | "node_modules/colorette": {
719 | "version": "1.3.0",
720 | "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.3.0.tgz",
721 | "integrity": "sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w==",
722 | "dev": true
723 | },
724 | "node_modules/commondir": {
725 | "version": "1.0.1",
726 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
727 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
728 | "dev": true
729 | },
730 | "node_modules/concat-map": {
731 | "version": "0.0.1",
732 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
733 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
734 | "dev": true
735 | },
736 | "node_modules/convert-source-map": {
737 | "version": "1.8.0",
738 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
739 | "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
740 | "dev": true,
741 | "dependencies": {
742 | "safe-buffer": "~5.1.1"
743 | }
744 | },
745 | "node_modules/core-util-is": {
746 | "version": "1.0.2",
747 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
748 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
749 | "dev": true
750 | },
751 | "node_modules/cross-spawn": {
752 | "version": "7.0.3",
753 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
754 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
755 | "dev": true,
756 | "dependencies": {
757 | "path-key": "^3.1.0",
758 | "shebang-command": "^2.0.0",
759 | "which": "^2.0.1"
760 | },
761 | "engines": {
762 | "node": ">= 8"
763 | }
764 | },
765 | "node_modules/debug": {
766 | "version": "4.3.2",
767 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
768 | "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
769 | "dev": true,
770 | "dependencies": {
771 | "ms": "2.1.2"
772 | },
773 | "engines": {
774 | "node": ">=6.0"
775 | },
776 | "peerDependenciesMeta": {
777 | "supports-color": {
778 | "optional": true
779 | }
780 | }
781 | },
782 | "node_modules/decamelize": {
783 | "version": "1.2.0",
784 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
785 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
786 | "dev": true,
787 | "engines": {
788 | "node": ">=0.10.0"
789 | }
790 | },
791 | "node_modules/default-require-extensions": {
792 | "version": "3.0.0",
793 | "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz",
794 | "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==",
795 | "dev": true,
796 | "dependencies": {
797 | "strip-bom": "^4.0.0"
798 | },
799 | "engines": {
800 | "node": ">=8"
801 | }
802 | },
803 | "node_modules/diff": {
804 | "version": "4.0.2",
805 | "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
806 | "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
807 | "dev": true,
808 | "engines": {
809 | "node": ">=0.3.1"
810 | }
811 | },
812 | "node_modules/duplexer2": {
813 | "version": "0.1.4",
814 | "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
815 | "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
816 | "dev": true,
817 | "dependencies": {
818 | "readable-stream": "^2.0.2"
819 | }
820 | },
821 | "node_modules/electron-to-chromium": {
822 | "version": "1.3.806",
823 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.806.tgz",
824 | "integrity": "sha512-AH/otJLAAecgyrYp0XK1DPiGVWcOgwPeJBOLeuFQ5l//vhQhwC9u6d+GijClqJAmsHG4XDue81ndSQPohUu0xA==",
825 | "dev": true
826 | },
827 | "node_modules/emoji-regex": {
828 | "version": "8.0.0",
829 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
830 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
831 | "dev": true
832 | },
833 | "node_modules/es6-error": {
834 | "version": "4.1.1",
835 | "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
836 | "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
837 | "dev": true
838 | },
839 | "node_modules/escalade": {
840 | "version": "3.1.1",
841 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
842 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
843 | "dev": true,
844 | "engines": {
845 | "node": ">=6"
846 | }
847 | },
848 | "node_modules/escape-string-regexp": {
849 | "version": "1.0.5",
850 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
851 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
852 | "dev": true,
853 | "engines": {
854 | "node": ">=0.8.0"
855 | }
856 | },
857 | "node_modules/esprima": {
858 | "version": "4.0.1",
859 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
860 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
861 | "dev": true,
862 | "bin": {
863 | "esparse": "bin/esparse.js",
864 | "esvalidate": "bin/esvalidate.js"
865 | },
866 | "engines": {
867 | "node": ">=4"
868 | }
869 | },
870 | "node_modules/find-cache-dir": {
871 | "version": "3.3.1",
872 | "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz",
873 | "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==",
874 | "dev": true,
875 | "dependencies": {
876 | "commondir": "^1.0.1",
877 | "make-dir": "^3.0.2",
878 | "pkg-dir": "^4.1.0"
879 | },
880 | "engines": {
881 | "node": ">=8"
882 | },
883 | "funding": {
884 | "url": "https://github.com/avajs/find-cache-dir?sponsor=1"
885 | }
886 | },
887 | "node_modules/find-up": {
888 | "version": "4.1.0",
889 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
890 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
891 | "dev": true,
892 | "dependencies": {
893 | "locate-path": "^5.0.0",
894 | "path-exists": "^4.0.0"
895 | },
896 | "engines": {
897 | "node": ">=8"
898 | }
899 | },
900 | "node_modules/foreground-child": {
901 | "version": "2.0.0",
902 | "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz",
903 | "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==",
904 | "dev": true,
905 | "dependencies": {
906 | "cross-spawn": "^7.0.0",
907 | "signal-exit": "^3.0.2"
908 | },
909 | "engines": {
910 | "node": ">=8.0.0"
911 | }
912 | },
913 | "node_modules/fromentries": {
914 | "version": "1.3.2",
915 | "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz",
916 | "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==",
917 | "dev": true,
918 | "funding": [
919 | {
920 | "type": "github",
921 | "url": "https://github.com/sponsors/feross"
922 | },
923 | {
924 | "type": "patreon",
925 | "url": "https://www.patreon.com/feross"
926 | },
927 | {
928 | "type": "consulting",
929 | "url": "https://feross.org/support"
930 | }
931 | ]
932 | },
933 | "node_modules/fs.realpath": {
934 | "version": "1.0.0",
935 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
936 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
937 | "dev": true
938 | },
939 | "node_modules/fstream": {
940 | "version": "1.0.12",
941 | "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
942 | "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
943 | "dev": true,
944 | "dependencies": {
945 | "graceful-fs": "^4.1.2",
946 | "inherits": "~2.0.0",
947 | "mkdirp": ">=0.5 0",
948 | "rimraf": "2"
949 | },
950 | "engines": {
951 | "node": ">=0.6"
952 | }
953 | },
954 | "node_modules/fstream/node_modules/rimraf": {
955 | "version": "2.7.1",
956 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
957 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
958 | "dev": true,
959 | "dependencies": {
960 | "glob": "^7.1.3"
961 | },
962 | "bin": {
963 | "rimraf": "bin.js"
964 | }
965 | },
966 | "node_modules/gensync": {
967 | "version": "1.0.0-beta.2",
968 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
969 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
970 | "dev": true,
971 | "engines": {
972 | "node": ">=6.9.0"
973 | }
974 | },
975 | "node_modules/get-caller-file": {
976 | "version": "2.0.5",
977 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
978 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
979 | "dev": true,
980 | "engines": {
981 | "node": "6.* || 8.* || >= 10.*"
982 | }
983 | },
984 | "node_modules/get-package-type": {
985 | "version": "0.1.0",
986 | "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
987 | "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
988 | "dev": true,
989 | "engines": {
990 | "node": ">=8.0.0"
991 | }
992 | },
993 | "node_modules/glob": {
994 | "version": "7.1.7",
995 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
996 | "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
997 | "dev": true,
998 | "dependencies": {
999 | "fs.realpath": "^1.0.0",
1000 | "inflight": "^1.0.4",
1001 | "inherits": "2",
1002 | "minimatch": "^3.0.4",
1003 | "once": "^1.3.0",
1004 | "path-is-absolute": "^1.0.0"
1005 | },
1006 | "engines": {
1007 | "node": "*"
1008 | },
1009 | "funding": {
1010 | "url": "https://github.com/sponsors/isaacs"
1011 | }
1012 | },
1013 | "node_modules/globals": {
1014 | "version": "11.12.0",
1015 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
1016 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
1017 | "dev": true,
1018 | "engines": {
1019 | "node": ">=4"
1020 | }
1021 | },
1022 | "node_modules/graceful-fs": {
1023 | "version": "4.2.8",
1024 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
1025 | "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==",
1026 | "dev": true
1027 | },
1028 | "node_modules/has-flag": {
1029 | "version": "3.0.0",
1030 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1031 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
1032 | "dev": true,
1033 | "engines": {
1034 | "node": ">=4"
1035 | }
1036 | },
1037 | "node_modules/hasha": {
1038 | "version": "5.2.2",
1039 | "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz",
1040 | "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==",
1041 | "dev": true,
1042 | "dependencies": {
1043 | "is-stream": "^2.0.0",
1044 | "type-fest": "^0.8.0"
1045 | },
1046 | "engines": {
1047 | "node": ">=8"
1048 | },
1049 | "funding": {
1050 | "url": "https://github.com/sponsors/sindresorhus"
1051 | }
1052 | },
1053 | "node_modules/html-escaper": {
1054 | "version": "2.0.2",
1055 | "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
1056 | "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
1057 | "dev": true
1058 | },
1059 | "node_modules/http-proxy-agent": {
1060 | "version": "4.0.1",
1061 | "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
1062 | "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
1063 | "dev": true,
1064 | "dependencies": {
1065 | "@tootallnate/once": "1",
1066 | "agent-base": "6",
1067 | "debug": "4"
1068 | },
1069 | "engines": {
1070 | "node": ">= 6"
1071 | }
1072 | },
1073 | "node_modules/https-proxy-agent": {
1074 | "version": "5.0.0",
1075 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
1076 | "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
1077 | "dev": true,
1078 | "dependencies": {
1079 | "agent-base": "6",
1080 | "debug": "4"
1081 | },
1082 | "engines": {
1083 | "node": ">= 6"
1084 | }
1085 | },
1086 | "node_modules/imurmurhash": {
1087 | "version": "0.1.4",
1088 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
1089 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
1090 | "dev": true,
1091 | "engines": {
1092 | "node": ">=0.8.19"
1093 | }
1094 | },
1095 | "node_modules/indent-string": {
1096 | "version": "4.0.0",
1097 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
1098 | "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
1099 | "dev": true,
1100 | "engines": {
1101 | "node": ">=8"
1102 | }
1103 | },
1104 | "node_modules/inflight": {
1105 | "version": "1.0.6",
1106 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1107 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
1108 | "dev": true,
1109 | "dependencies": {
1110 | "once": "^1.3.0",
1111 | "wrappy": "1"
1112 | }
1113 | },
1114 | "node_modules/inherits": {
1115 | "version": "2.0.4",
1116 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1117 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
1118 | "dev": true
1119 | },
1120 | "node_modules/is-fullwidth-code-point": {
1121 | "version": "3.0.0",
1122 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
1123 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
1124 | "dev": true,
1125 | "engines": {
1126 | "node": ">=8"
1127 | }
1128 | },
1129 | "node_modules/is-stream": {
1130 | "version": "2.0.1",
1131 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
1132 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
1133 | "dev": true,
1134 | "engines": {
1135 | "node": ">=8"
1136 | },
1137 | "funding": {
1138 | "url": "https://github.com/sponsors/sindresorhus"
1139 | }
1140 | },
1141 | "node_modules/is-typedarray": {
1142 | "version": "1.0.0",
1143 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
1144 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
1145 | "dev": true
1146 | },
1147 | "node_modules/is-windows": {
1148 | "version": "1.0.2",
1149 | "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
1150 | "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
1151 | "dev": true,
1152 | "engines": {
1153 | "node": ">=0.10.0"
1154 | }
1155 | },
1156 | "node_modules/isarray": {
1157 | "version": "1.0.0",
1158 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1159 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
1160 | "dev": true
1161 | },
1162 | "node_modules/isexe": {
1163 | "version": "2.0.0",
1164 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1165 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
1166 | "dev": true
1167 | },
1168 | "node_modules/istanbul-lib-coverage": {
1169 | "version": "3.0.0",
1170 | "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz",
1171 | "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==",
1172 | "dev": true,
1173 | "engines": {
1174 | "node": ">=8"
1175 | }
1176 | },
1177 | "node_modules/istanbul-lib-hook": {
1178 | "version": "3.0.0",
1179 | "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz",
1180 | "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==",
1181 | "dev": true,
1182 | "dependencies": {
1183 | "append-transform": "^2.0.0"
1184 | },
1185 | "engines": {
1186 | "node": ">=8"
1187 | }
1188 | },
1189 | "node_modules/istanbul-lib-instrument": {
1190 | "version": "4.0.3",
1191 | "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz",
1192 | "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==",
1193 | "dev": true,
1194 | "dependencies": {
1195 | "@babel/core": "^7.7.5",
1196 | "@istanbuljs/schema": "^0.1.2",
1197 | "istanbul-lib-coverage": "^3.0.0",
1198 | "semver": "^6.3.0"
1199 | },
1200 | "engines": {
1201 | "node": ">=8"
1202 | }
1203 | },
1204 | "node_modules/istanbul-lib-processinfo": {
1205 | "version": "2.0.2",
1206 | "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz",
1207 | "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==",
1208 | "dev": true,
1209 | "dependencies": {
1210 | "archy": "^1.0.0",
1211 | "cross-spawn": "^7.0.0",
1212 | "istanbul-lib-coverage": "^3.0.0-alpha.1",
1213 | "make-dir": "^3.0.0",
1214 | "p-map": "^3.0.0",
1215 | "rimraf": "^3.0.0",
1216 | "uuid": "^3.3.3"
1217 | },
1218 | "engines": {
1219 | "node": ">=8"
1220 | }
1221 | },
1222 | "node_modules/istanbul-lib-report": {
1223 | "version": "3.0.0",
1224 | "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
1225 | "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
1226 | "dev": true,
1227 | "dependencies": {
1228 | "istanbul-lib-coverage": "^3.0.0",
1229 | "make-dir": "^3.0.0",
1230 | "supports-color": "^7.1.0"
1231 | },
1232 | "engines": {
1233 | "node": ">=8"
1234 | }
1235 | },
1236 | "node_modules/istanbul-lib-report/node_modules/has-flag": {
1237 | "version": "4.0.0",
1238 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1239 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
1240 | "dev": true,
1241 | "engines": {
1242 | "node": ">=8"
1243 | }
1244 | },
1245 | "node_modules/istanbul-lib-report/node_modules/supports-color": {
1246 | "version": "7.2.0",
1247 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
1248 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
1249 | "dev": true,
1250 | "dependencies": {
1251 | "has-flag": "^4.0.0"
1252 | },
1253 | "engines": {
1254 | "node": ">=8"
1255 | }
1256 | },
1257 | "node_modules/istanbul-lib-source-maps": {
1258 | "version": "4.0.0",
1259 | "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz",
1260 | "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==",
1261 | "dev": true,
1262 | "dependencies": {
1263 | "debug": "^4.1.1",
1264 | "istanbul-lib-coverage": "^3.0.0",
1265 | "source-map": "^0.6.1"
1266 | },
1267 | "engines": {
1268 | "node": ">=8"
1269 | }
1270 | },
1271 | "node_modules/istanbul-lib-source-maps/node_modules/source-map": {
1272 | "version": "0.6.1",
1273 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1274 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
1275 | "dev": true,
1276 | "engines": {
1277 | "node": ">=0.10.0"
1278 | }
1279 | },
1280 | "node_modules/istanbul-reports": {
1281 | "version": "3.0.2",
1282 | "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz",
1283 | "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==",
1284 | "dev": true,
1285 | "dependencies": {
1286 | "html-escaper": "^2.0.0",
1287 | "istanbul-lib-report": "^3.0.0"
1288 | },
1289 | "engines": {
1290 | "node": ">=8"
1291 | }
1292 | },
1293 | "node_modules/js-tokens": {
1294 | "version": "4.0.0",
1295 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1296 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
1297 | "dev": true
1298 | },
1299 | "node_modules/js-yaml": {
1300 | "version": "3.14.1",
1301 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
1302 | "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
1303 | "dev": true,
1304 | "dependencies": {
1305 | "argparse": "^1.0.7",
1306 | "esprima": "^4.0.0"
1307 | },
1308 | "bin": {
1309 | "js-yaml": "bin/js-yaml.js"
1310 | }
1311 | },
1312 | "node_modules/jsesc": {
1313 | "version": "2.5.2",
1314 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
1315 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
1316 | "dev": true,
1317 | "bin": {
1318 | "jsesc": "bin/jsesc"
1319 | },
1320 | "engines": {
1321 | "node": ">=4"
1322 | }
1323 | },
1324 | "node_modules/json5": {
1325 | "version": "2.2.3",
1326 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
1327 | "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
1328 | "dev": true,
1329 | "bin": {
1330 | "json5": "lib/cli.js"
1331 | },
1332 | "engines": {
1333 | "node": ">=6"
1334 | }
1335 | },
1336 | "node_modules/listenercount": {
1337 | "version": "1.0.1",
1338 | "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz",
1339 | "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=",
1340 | "dev": true
1341 | },
1342 | "node_modules/locate-path": {
1343 | "version": "5.0.0",
1344 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
1345 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
1346 | "dev": true,
1347 | "dependencies": {
1348 | "p-locate": "^4.1.0"
1349 | },
1350 | "engines": {
1351 | "node": ">=8"
1352 | }
1353 | },
1354 | "node_modules/lodash.flattendeep": {
1355 | "version": "4.4.0",
1356 | "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
1357 | "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=",
1358 | "dev": true
1359 | },
1360 | "node_modules/make-dir": {
1361 | "version": "3.1.0",
1362 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
1363 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
1364 | "dev": true,
1365 | "dependencies": {
1366 | "semver": "^6.0.0"
1367 | },
1368 | "engines": {
1369 | "node": ">=8"
1370 | },
1371 | "funding": {
1372 | "url": "https://github.com/sponsors/sindresorhus"
1373 | }
1374 | },
1375 | "node_modules/make-error": {
1376 | "version": "1.3.6",
1377 | "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
1378 | "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
1379 | "dev": true
1380 | },
1381 | "node_modules/minimatch": {
1382 | "version": "3.1.2",
1383 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
1384 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1385 | "dev": true,
1386 | "dependencies": {
1387 | "brace-expansion": "^1.1.7"
1388 | },
1389 | "engines": {
1390 | "node": "*"
1391 | }
1392 | },
1393 | "node_modules/minimist": {
1394 | "version": "1.2.6",
1395 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
1396 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
1397 | "dev": true
1398 | },
1399 | "node_modules/mkdirp": {
1400 | "version": "0.5.5",
1401 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
1402 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
1403 | "dev": true,
1404 | "dependencies": {
1405 | "minimist": "^1.2.5"
1406 | },
1407 | "bin": {
1408 | "mkdirp": "bin/cmd.js"
1409 | }
1410 | },
1411 | "node_modules/ms": {
1412 | "version": "2.1.2",
1413 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1414 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1415 | "dev": true
1416 | },
1417 | "node_modules/node-preload": {
1418 | "version": "0.2.1",
1419 | "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz",
1420 | "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==",
1421 | "dev": true,
1422 | "dependencies": {
1423 | "process-on-spawn": "^1.0.0"
1424 | },
1425 | "engines": {
1426 | "node": ">=8"
1427 | }
1428 | },
1429 | "node_modules/node-releases": {
1430 | "version": "1.1.74",
1431 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.74.tgz",
1432 | "integrity": "sha512-caJBVempXZPepZoZAPCWRTNxYQ+xtG/KAi4ozTA5A+nJ7IU+kLQCbqaUjb5Rwy14M9upBWiQ4NutcmW04LJSRw==",
1433 | "dev": true
1434 | },
1435 | "node_modules/nyc": {
1436 | "version": "15.1.0",
1437 | "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz",
1438 | "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==",
1439 | "dev": true,
1440 | "dependencies": {
1441 | "@istanbuljs/load-nyc-config": "^1.0.0",
1442 | "@istanbuljs/schema": "^0.1.2",
1443 | "caching-transform": "^4.0.0",
1444 | "convert-source-map": "^1.7.0",
1445 | "decamelize": "^1.2.0",
1446 | "find-cache-dir": "^3.2.0",
1447 | "find-up": "^4.1.0",
1448 | "foreground-child": "^2.0.0",
1449 | "get-package-type": "^0.1.0",
1450 | "glob": "^7.1.6",
1451 | "istanbul-lib-coverage": "^3.0.0",
1452 | "istanbul-lib-hook": "^3.0.0",
1453 | "istanbul-lib-instrument": "^4.0.0",
1454 | "istanbul-lib-processinfo": "^2.0.2",
1455 | "istanbul-lib-report": "^3.0.0",
1456 | "istanbul-lib-source-maps": "^4.0.0",
1457 | "istanbul-reports": "^3.0.2",
1458 | "make-dir": "^3.0.0",
1459 | "node-preload": "^0.2.1",
1460 | "p-map": "^3.0.0",
1461 | "process-on-spawn": "^1.0.0",
1462 | "resolve-from": "^5.0.0",
1463 | "rimraf": "^3.0.0",
1464 | "signal-exit": "^3.0.2",
1465 | "spawn-wrap": "^2.0.0",
1466 | "test-exclude": "^6.0.0",
1467 | "yargs": "^15.0.2"
1468 | },
1469 | "bin": {
1470 | "nyc": "bin/nyc.js"
1471 | },
1472 | "engines": {
1473 | "node": ">=8.9"
1474 | }
1475 | },
1476 | "node_modules/once": {
1477 | "version": "1.4.0",
1478 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1479 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1480 | "dev": true,
1481 | "dependencies": {
1482 | "wrappy": "1"
1483 | }
1484 | },
1485 | "node_modules/p-limit": {
1486 | "version": "2.3.0",
1487 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
1488 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
1489 | "dev": true,
1490 | "dependencies": {
1491 | "p-try": "^2.0.0"
1492 | },
1493 | "engines": {
1494 | "node": ">=6"
1495 | },
1496 | "funding": {
1497 | "url": "https://github.com/sponsors/sindresorhus"
1498 | }
1499 | },
1500 | "node_modules/p-locate": {
1501 | "version": "4.1.0",
1502 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
1503 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
1504 | "dev": true,
1505 | "dependencies": {
1506 | "p-limit": "^2.2.0"
1507 | },
1508 | "engines": {
1509 | "node": ">=8"
1510 | }
1511 | },
1512 | "node_modules/p-map": {
1513 | "version": "3.0.0",
1514 | "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
1515 | "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
1516 | "dev": true,
1517 | "dependencies": {
1518 | "aggregate-error": "^3.0.0"
1519 | },
1520 | "engines": {
1521 | "node": ">=8"
1522 | }
1523 | },
1524 | "node_modules/p-try": {
1525 | "version": "2.2.0",
1526 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
1527 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
1528 | "dev": true,
1529 | "engines": {
1530 | "node": ">=6"
1531 | }
1532 | },
1533 | "node_modules/package-hash": {
1534 | "version": "4.0.0",
1535 | "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz",
1536 | "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==",
1537 | "dev": true,
1538 | "dependencies": {
1539 | "graceful-fs": "^4.1.15",
1540 | "hasha": "^5.0.0",
1541 | "lodash.flattendeep": "^4.4.0",
1542 | "release-zalgo": "^1.0.0"
1543 | },
1544 | "engines": {
1545 | "node": ">=8"
1546 | }
1547 | },
1548 | "node_modules/path-exists": {
1549 | "version": "4.0.0",
1550 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
1551 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
1552 | "dev": true,
1553 | "engines": {
1554 | "node": ">=8"
1555 | }
1556 | },
1557 | "node_modules/path-is-absolute": {
1558 | "version": "1.0.1",
1559 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1560 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
1561 | "dev": true,
1562 | "engines": {
1563 | "node": ">=0.10.0"
1564 | }
1565 | },
1566 | "node_modules/path-key": {
1567 | "version": "3.1.1",
1568 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
1569 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
1570 | "dev": true,
1571 | "engines": {
1572 | "node": ">=8"
1573 | }
1574 | },
1575 | "node_modules/pkg-dir": {
1576 | "version": "4.2.0",
1577 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
1578 | "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
1579 | "dev": true,
1580 | "dependencies": {
1581 | "find-up": "^4.0.0"
1582 | },
1583 | "engines": {
1584 | "node": ">=8"
1585 | }
1586 | },
1587 | "node_modules/process-nextick-args": {
1588 | "version": "2.0.1",
1589 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
1590 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
1591 | "dev": true
1592 | },
1593 | "node_modules/process-on-spawn": {
1594 | "version": "1.0.0",
1595 | "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz",
1596 | "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==",
1597 | "dev": true,
1598 | "dependencies": {
1599 | "fromentries": "^1.2.0"
1600 | },
1601 | "engines": {
1602 | "node": ">=8"
1603 | }
1604 | },
1605 | "node_modules/readable-stream": {
1606 | "version": "2.3.7",
1607 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
1608 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
1609 | "dev": true,
1610 | "dependencies": {
1611 | "core-util-is": "~1.0.0",
1612 | "inherits": "~2.0.3",
1613 | "isarray": "~1.0.0",
1614 | "process-nextick-args": "~2.0.0",
1615 | "safe-buffer": "~5.1.1",
1616 | "string_decoder": "~1.1.1",
1617 | "util-deprecate": "~1.0.1"
1618 | }
1619 | },
1620 | "node_modules/release-zalgo": {
1621 | "version": "1.0.0",
1622 | "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz",
1623 | "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=",
1624 | "dev": true,
1625 | "dependencies": {
1626 | "es6-error": "^4.0.1"
1627 | },
1628 | "engines": {
1629 | "node": ">=4"
1630 | }
1631 | },
1632 | "node_modules/require-directory": {
1633 | "version": "2.1.1",
1634 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
1635 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
1636 | "dev": true,
1637 | "engines": {
1638 | "node": ">=0.10.0"
1639 | }
1640 | },
1641 | "node_modules/require-main-filename": {
1642 | "version": "2.0.0",
1643 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
1644 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
1645 | "dev": true
1646 | },
1647 | "node_modules/resolve-from": {
1648 | "version": "5.0.0",
1649 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
1650 | "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
1651 | "dev": true,
1652 | "engines": {
1653 | "node": ">=8"
1654 | }
1655 | },
1656 | "node_modules/rimraf": {
1657 | "version": "3.0.2",
1658 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
1659 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
1660 | "dev": true,
1661 | "dependencies": {
1662 | "glob": "^7.1.3"
1663 | },
1664 | "bin": {
1665 | "rimraf": "bin.js"
1666 | },
1667 | "funding": {
1668 | "url": "https://github.com/sponsors/isaacs"
1669 | }
1670 | },
1671 | "node_modules/safe-buffer": {
1672 | "version": "5.1.2",
1673 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1674 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
1675 | "dev": true
1676 | },
1677 | "node_modules/semver": {
1678 | "version": "6.3.0",
1679 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1680 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1681 | "dev": true,
1682 | "bin": {
1683 | "semver": "bin/semver.js"
1684 | }
1685 | },
1686 | "node_modules/set-blocking": {
1687 | "version": "2.0.0",
1688 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
1689 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
1690 | "dev": true
1691 | },
1692 | "node_modules/setimmediate": {
1693 | "version": "1.0.5",
1694 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
1695 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
1696 | "dev": true
1697 | },
1698 | "node_modules/shebang-command": {
1699 | "version": "2.0.0",
1700 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
1701 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
1702 | "dev": true,
1703 | "dependencies": {
1704 | "shebang-regex": "^3.0.0"
1705 | },
1706 | "engines": {
1707 | "node": ">=8"
1708 | }
1709 | },
1710 | "node_modules/shebang-regex": {
1711 | "version": "3.0.0",
1712 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
1713 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
1714 | "dev": true,
1715 | "engines": {
1716 | "node": ">=8"
1717 | }
1718 | },
1719 | "node_modules/signal-exit": {
1720 | "version": "3.0.3",
1721 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
1722 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
1723 | "dev": true
1724 | },
1725 | "node_modules/source-map": {
1726 | "version": "0.5.7",
1727 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
1728 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
1729 | "dev": true,
1730 | "engines": {
1731 | "node": ">=0.10.0"
1732 | }
1733 | },
1734 | "node_modules/source-map-support": {
1735 | "version": "0.5.19",
1736 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
1737 | "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
1738 | "dev": true,
1739 | "dependencies": {
1740 | "buffer-from": "^1.0.0",
1741 | "source-map": "^0.6.0"
1742 | }
1743 | },
1744 | "node_modules/source-map-support/node_modules/source-map": {
1745 | "version": "0.6.1",
1746 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1747 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
1748 | "dev": true,
1749 | "engines": {
1750 | "node": ">=0.10.0"
1751 | }
1752 | },
1753 | "node_modules/spawn-wrap": {
1754 | "version": "2.0.0",
1755 | "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz",
1756 | "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==",
1757 | "dev": true,
1758 | "dependencies": {
1759 | "foreground-child": "^2.0.0",
1760 | "is-windows": "^1.0.2",
1761 | "make-dir": "^3.0.0",
1762 | "rimraf": "^3.0.0",
1763 | "signal-exit": "^3.0.2",
1764 | "which": "^2.0.1"
1765 | },
1766 | "engines": {
1767 | "node": ">=8"
1768 | }
1769 | },
1770 | "node_modules/sprintf-js": {
1771 | "version": "1.0.3",
1772 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
1773 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
1774 | "dev": true
1775 | },
1776 | "node_modules/string_decoder": {
1777 | "version": "1.1.1",
1778 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
1779 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
1780 | "dev": true,
1781 | "dependencies": {
1782 | "safe-buffer": "~5.1.0"
1783 | }
1784 | },
1785 | "node_modules/string-width": {
1786 | "version": "4.2.2",
1787 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
1788 | "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
1789 | "dev": true,
1790 | "dependencies": {
1791 | "emoji-regex": "^8.0.0",
1792 | "is-fullwidth-code-point": "^3.0.0",
1793 | "strip-ansi": "^6.0.0"
1794 | },
1795 | "engines": {
1796 | "node": ">=8"
1797 | }
1798 | },
1799 | "node_modules/strip-ansi": {
1800 | "version": "6.0.0",
1801 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
1802 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
1803 | "dev": true,
1804 | "dependencies": {
1805 | "ansi-regex": "^5.0.0"
1806 | },
1807 | "engines": {
1808 | "node": ">=8"
1809 | }
1810 | },
1811 | "node_modules/strip-bom": {
1812 | "version": "4.0.0",
1813 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
1814 | "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
1815 | "dev": true,
1816 | "engines": {
1817 | "node": ">=8"
1818 | }
1819 | },
1820 | "node_modules/supports-color": {
1821 | "version": "5.5.0",
1822 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1823 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1824 | "dev": true,
1825 | "dependencies": {
1826 | "has-flag": "^3.0.0"
1827 | },
1828 | "engines": {
1829 | "node": ">=4"
1830 | }
1831 | },
1832 | "node_modules/test-exclude": {
1833 | "version": "6.0.0",
1834 | "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
1835 | "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
1836 | "dev": true,
1837 | "dependencies": {
1838 | "@istanbuljs/schema": "^0.1.2",
1839 | "glob": "^7.1.4",
1840 | "minimatch": "^3.0.4"
1841 | },
1842 | "engines": {
1843 | "node": ">=8"
1844 | }
1845 | },
1846 | "node_modules/to-fast-properties": {
1847 | "version": "2.0.0",
1848 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
1849 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
1850 | "dev": true,
1851 | "engines": {
1852 | "node": ">=4"
1853 | }
1854 | },
1855 | "node_modules/traverse": {
1856 | "version": "0.3.9",
1857 | "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz",
1858 | "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=",
1859 | "dev": true,
1860 | "engines": {
1861 | "node": "*"
1862 | }
1863 | },
1864 | "node_modules/ts-node": {
1865 | "version": "8.10.2",
1866 | "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz",
1867 | "integrity": "sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==",
1868 | "dev": true,
1869 | "dependencies": {
1870 | "arg": "^4.1.0",
1871 | "diff": "^4.0.1",
1872 | "make-error": "^1.1.1",
1873 | "source-map-support": "^0.5.17",
1874 | "yn": "3.1.1"
1875 | },
1876 | "bin": {
1877 | "ts-node": "dist/bin.js",
1878 | "ts-node-script": "dist/bin-script.js",
1879 | "ts-node-transpile-only": "dist/bin-transpile.js",
1880 | "ts-script": "dist/bin-script-deprecated.js"
1881 | },
1882 | "engines": {
1883 | "node": ">=6.0.0"
1884 | },
1885 | "peerDependencies": {
1886 | "typescript": ">=2.7"
1887 | }
1888 | },
1889 | "node_modules/type-fest": {
1890 | "version": "0.8.1",
1891 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
1892 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
1893 | "dev": true,
1894 | "engines": {
1895 | "node": ">=8"
1896 | }
1897 | },
1898 | "node_modules/typedarray-to-buffer": {
1899 | "version": "3.1.5",
1900 | "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
1901 | "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
1902 | "dev": true,
1903 | "dependencies": {
1904 | "is-typedarray": "^1.0.0"
1905 | }
1906 | },
1907 | "node_modules/typescript": {
1908 | "version": "3.9.10",
1909 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz",
1910 | "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==",
1911 | "dev": true,
1912 | "bin": {
1913 | "tsc": "bin/tsc",
1914 | "tsserver": "bin/tsserver"
1915 | },
1916 | "engines": {
1917 | "node": ">=4.2.0"
1918 | }
1919 | },
1920 | "node_modules/unzipper": {
1921 | "version": "0.10.11",
1922 | "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz",
1923 | "integrity": "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==",
1924 | "dev": true,
1925 | "dependencies": {
1926 | "big-integer": "^1.6.17",
1927 | "binary": "~0.3.0",
1928 | "bluebird": "~3.4.1",
1929 | "buffer-indexof-polyfill": "~1.0.0",
1930 | "duplexer2": "~0.1.4",
1931 | "fstream": "^1.0.12",
1932 | "graceful-fs": "^4.2.2",
1933 | "listenercount": "~1.0.1",
1934 | "readable-stream": "~2.3.6",
1935 | "setimmediate": "~1.0.4"
1936 | }
1937 | },
1938 | "node_modules/util-deprecate": {
1939 | "version": "1.0.2",
1940 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1941 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
1942 | "dev": true
1943 | },
1944 | "node_modules/uuid": {
1945 | "version": "3.4.0",
1946 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
1947 | "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
1948 | "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
1949 | "dev": true,
1950 | "bin": {
1951 | "uuid": "bin/uuid"
1952 | }
1953 | },
1954 | "node_modules/vscode-test": {
1955 | "version": "1.6.1",
1956 | "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-1.6.1.tgz",
1957 | "integrity": "sha512-086q88T2ca1k95mUzffvbzb7esqQNvJgiwY4h29ukPhFo8u+vXOOmelUoU5EQUHs3Of8+JuQ3oGdbVCqaxuTXA==",
1958 | "dev": true,
1959 | "dependencies": {
1960 | "http-proxy-agent": "^4.0.1",
1961 | "https-proxy-agent": "^5.0.0",
1962 | "rimraf": "^3.0.2",
1963 | "unzipper": "^0.10.11"
1964 | },
1965 | "engines": {
1966 | "node": ">=8.9.3"
1967 | }
1968 | },
1969 | "node_modules/which": {
1970 | "version": "2.0.2",
1971 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
1972 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
1973 | "dev": true,
1974 | "dependencies": {
1975 | "isexe": "^2.0.0"
1976 | },
1977 | "bin": {
1978 | "node-which": "bin/node-which"
1979 | },
1980 | "engines": {
1981 | "node": ">= 8"
1982 | }
1983 | },
1984 | "node_modules/which-module": {
1985 | "version": "2.0.0",
1986 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
1987 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
1988 | "dev": true
1989 | },
1990 | "node_modules/wrap-ansi": {
1991 | "version": "6.2.0",
1992 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
1993 | "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
1994 | "dev": true,
1995 | "dependencies": {
1996 | "ansi-styles": "^4.0.0",
1997 | "string-width": "^4.1.0",
1998 | "strip-ansi": "^6.0.0"
1999 | },
2000 | "engines": {
2001 | "node": ">=8"
2002 | }
2003 | },
2004 | "node_modules/wrap-ansi/node_modules/ansi-styles": {
2005 | "version": "4.3.0",
2006 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
2007 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
2008 | "dev": true,
2009 | "dependencies": {
2010 | "color-convert": "^2.0.1"
2011 | },
2012 | "engines": {
2013 | "node": ">=8"
2014 | },
2015 | "funding": {
2016 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
2017 | }
2018 | },
2019 | "node_modules/wrap-ansi/node_modules/color-convert": {
2020 | "version": "2.0.1",
2021 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
2022 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
2023 | "dev": true,
2024 | "dependencies": {
2025 | "color-name": "~1.1.4"
2026 | },
2027 | "engines": {
2028 | "node": ">=7.0.0"
2029 | }
2030 | },
2031 | "node_modules/wrap-ansi/node_modules/color-name": {
2032 | "version": "1.1.4",
2033 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
2034 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
2035 | "dev": true
2036 | },
2037 | "node_modules/wrappy": {
2038 | "version": "1.0.2",
2039 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2040 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
2041 | "dev": true
2042 | },
2043 | "node_modules/write-file-atomic": {
2044 | "version": "3.0.3",
2045 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
2046 | "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
2047 | "dev": true,
2048 | "dependencies": {
2049 | "imurmurhash": "^0.1.4",
2050 | "is-typedarray": "^1.0.0",
2051 | "signal-exit": "^3.0.2",
2052 | "typedarray-to-buffer": "^3.1.5"
2053 | }
2054 | },
2055 | "node_modules/y18n": {
2056 | "version": "4.0.3",
2057 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
2058 | "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
2059 | "dev": true
2060 | },
2061 | "node_modules/yargs": {
2062 | "version": "15.4.1",
2063 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
2064 | "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
2065 | "dev": true,
2066 | "dependencies": {
2067 | "cliui": "^6.0.0",
2068 | "decamelize": "^1.2.0",
2069 | "find-up": "^4.1.0",
2070 | "get-caller-file": "^2.0.1",
2071 | "require-directory": "^2.1.1",
2072 | "require-main-filename": "^2.0.0",
2073 | "set-blocking": "^2.0.0",
2074 | "string-width": "^4.2.0",
2075 | "which-module": "^2.0.0",
2076 | "y18n": "^4.0.0",
2077 | "yargs-parser": "^18.1.2"
2078 | },
2079 | "engines": {
2080 | "node": ">=8"
2081 | }
2082 | },
2083 | "node_modules/yargs-parser": {
2084 | "version": "18.1.3",
2085 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
2086 | "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
2087 | "dev": true,
2088 | "dependencies": {
2089 | "camelcase": "^5.0.0",
2090 | "decamelize": "^1.2.0"
2091 | },
2092 | "engines": {
2093 | "node": ">=6"
2094 | }
2095 | },
2096 | "node_modules/yn": {
2097 | "version": "3.1.1",
2098 | "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
2099 | "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
2100 | "dev": true,
2101 | "engines": {
2102 | "node": ">=6"
2103 | }
2104 | }
2105 | },
2106 | "dependencies": {
2107 | "@babel/code-frame": {
2108 | "version": "7.22.13",
2109 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
2110 | "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
2111 | "dev": true,
2112 | "requires": {
2113 | "@babel/highlight": "^7.22.13",
2114 | "chalk": "^2.4.2"
2115 | }
2116 | },
2117 | "@babel/compat-data": {
2118 | "version": "7.15.0",
2119 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz",
2120 | "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==",
2121 | "dev": true
2122 | },
2123 | "@babel/core": {
2124 | "version": "7.15.0",
2125 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.0.tgz",
2126 | "integrity": "sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw==",
2127 | "dev": true,
2128 | "requires": {
2129 | "@babel/code-frame": "^7.14.5",
2130 | "@babel/generator": "^7.15.0",
2131 | "@babel/helper-compilation-targets": "^7.15.0",
2132 | "@babel/helper-module-transforms": "^7.15.0",
2133 | "@babel/helpers": "^7.14.8",
2134 | "@babel/parser": "^7.15.0",
2135 | "@babel/template": "^7.14.5",
2136 | "@babel/traverse": "^7.15.0",
2137 | "@babel/types": "^7.15.0",
2138 | "convert-source-map": "^1.7.0",
2139 | "debug": "^4.1.0",
2140 | "gensync": "^1.0.0-beta.2",
2141 | "json5": "^2.1.2",
2142 | "semver": "^6.3.0",
2143 | "source-map": "^0.5.0"
2144 | }
2145 | },
2146 | "@babel/generator": {
2147 | "version": "7.23.0",
2148 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz",
2149 | "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==",
2150 | "dev": true,
2151 | "requires": {
2152 | "@babel/types": "^7.23.0",
2153 | "@jridgewell/gen-mapping": "^0.3.2",
2154 | "@jridgewell/trace-mapping": "^0.3.17",
2155 | "jsesc": "^2.5.1"
2156 | }
2157 | },
2158 | "@babel/helper-compilation-targets": {
2159 | "version": "7.15.0",
2160 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz",
2161 | "integrity": "sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A==",
2162 | "dev": true,
2163 | "requires": {
2164 | "@babel/compat-data": "^7.15.0",
2165 | "@babel/helper-validator-option": "^7.14.5",
2166 | "browserslist": "^4.16.6",
2167 | "semver": "^6.3.0"
2168 | }
2169 | },
2170 | "@babel/helper-environment-visitor": {
2171 | "version": "7.22.20",
2172 | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
2173 | "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
2174 | "dev": true
2175 | },
2176 | "@babel/helper-function-name": {
2177 | "version": "7.23.0",
2178 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
2179 | "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
2180 | "dev": true,
2181 | "requires": {
2182 | "@babel/template": "^7.22.15",
2183 | "@babel/types": "^7.23.0"
2184 | }
2185 | },
2186 | "@babel/helper-hoist-variables": {
2187 | "version": "7.22.5",
2188 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
2189 | "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
2190 | "dev": true,
2191 | "requires": {
2192 | "@babel/types": "^7.22.5"
2193 | }
2194 | },
2195 | "@babel/helper-member-expression-to-functions": {
2196 | "version": "7.15.0",
2197 | "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz",
2198 | "integrity": "sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==",
2199 | "dev": true,
2200 | "requires": {
2201 | "@babel/types": "^7.15.0"
2202 | }
2203 | },
2204 | "@babel/helper-module-imports": {
2205 | "version": "7.14.5",
2206 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz",
2207 | "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==",
2208 | "dev": true,
2209 | "requires": {
2210 | "@babel/types": "^7.14.5"
2211 | }
2212 | },
2213 | "@babel/helper-module-transforms": {
2214 | "version": "7.15.0",
2215 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz",
2216 | "integrity": "sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg==",
2217 | "dev": true,
2218 | "requires": {
2219 | "@babel/helper-module-imports": "^7.14.5",
2220 | "@babel/helper-replace-supers": "^7.15.0",
2221 | "@babel/helper-simple-access": "^7.14.8",
2222 | "@babel/helper-split-export-declaration": "^7.14.5",
2223 | "@babel/helper-validator-identifier": "^7.14.9",
2224 | "@babel/template": "^7.14.5",
2225 | "@babel/traverse": "^7.15.0",
2226 | "@babel/types": "^7.15.0"
2227 | }
2228 | },
2229 | "@babel/helper-optimise-call-expression": {
2230 | "version": "7.14.5",
2231 | "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz",
2232 | "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==",
2233 | "dev": true,
2234 | "requires": {
2235 | "@babel/types": "^7.14.5"
2236 | }
2237 | },
2238 | "@babel/helper-replace-supers": {
2239 | "version": "7.15.0",
2240 | "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz",
2241 | "integrity": "sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==",
2242 | "dev": true,
2243 | "requires": {
2244 | "@babel/helper-member-expression-to-functions": "^7.15.0",
2245 | "@babel/helper-optimise-call-expression": "^7.14.5",
2246 | "@babel/traverse": "^7.15.0",
2247 | "@babel/types": "^7.15.0"
2248 | }
2249 | },
2250 | "@babel/helper-simple-access": {
2251 | "version": "7.14.8",
2252 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz",
2253 | "integrity": "sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==",
2254 | "dev": true,
2255 | "requires": {
2256 | "@babel/types": "^7.14.8"
2257 | }
2258 | },
2259 | "@babel/helper-split-export-declaration": {
2260 | "version": "7.22.6",
2261 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
2262 | "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
2263 | "dev": true,
2264 | "requires": {
2265 | "@babel/types": "^7.22.5"
2266 | }
2267 | },
2268 | "@babel/helper-string-parser": {
2269 | "version": "7.22.5",
2270 | "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
2271 | "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
2272 | "dev": true
2273 | },
2274 | "@babel/helper-validator-identifier": {
2275 | "version": "7.22.20",
2276 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
2277 | "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
2278 | "dev": true
2279 | },
2280 | "@babel/helper-validator-option": {
2281 | "version": "7.14.5",
2282 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz",
2283 | "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==",
2284 | "dev": true
2285 | },
2286 | "@babel/helpers": {
2287 | "version": "7.15.3",
2288 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.3.tgz",
2289 | "integrity": "sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g==",
2290 | "dev": true,
2291 | "requires": {
2292 | "@babel/template": "^7.14.5",
2293 | "@babel/traverse": "^7.15.0",
2294 | "@babel/types": "^7.15.0"
2295 | }
2296 | },
2297 | "@babel/highlight": {
2298 | "version": "7.22.20",
2299 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
2300 | "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
2301 | "dev": true,
2302 | "requires": {
2303 | "@babel/helper-validator-identifier": "^7.22.20",
2304 | "chalk": "^2.4.2",
2305 | "js-tokens": "^4.0.0"
2306 | }
2307 | },
2308 | "@babel/parser": {
2309 | "version": "7.23.0",
2310 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
2311 | "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
2312 | "dev": true
2313 | },
2314 | "@babel/template": {
2315 | "version": "7.22.15",
2316 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
2317 | "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
2318 | "dev": true,
2319 | "requires": {
2320 | "@babel/code-frame": "^7.22.13",
2321 | "@babel/parser": "^7.22.15",
2322 | "@babel/types": "^7.22.15"
2323 | }
2324 | },
2325 | "@babel/traverse": {
2326 | "version": "7.23.2",
2327 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz",
2328 | "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==",
2329 | "dev": true,
2330 | "requires": {
2331 | "@babel/code-frame": "^7.22.13",
2332 | "@babel/generator": "^7.23.0",
2333 | "@babel/helper-environment-visitor": "^7.22.20",
2334 | "@babel/helper-function-name": "^7.23.0",
2335 | "@babel/helper-hoist-variables": "^7.22.5",
2336 | "@babel/helper-split-export-declaration": "^7.22.6",
2337 | "@babel/parser": "^7.23.0",
2338 | "@babel/types": "^7.23.0",
2339 | "debug": "^4.1.0",
2340 | "globals": "^11.1.0"
2341 | }
2342 | },
2343 | "@babel/types": {
2344 | "version": "7.23.0",
2345 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz",
2346 | "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==",
2347 | "dev": true,
2348 | "requires": {
2349 | "@babel/helper-string-parser": "^7.22.5",
2350 | "@babel/helper-validator-identifier": "^7.22.20",
2351 | "to-fast-properties": "^2.0.0"
2352 | }
2353 | },
2354 | "@istanbuljs/load-nyc-config": {
2355 | "version": "1.1.0",
2356 | "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
2357 | "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
2358 | "dev": true,
2359 | "requires": {
2360 | "camelcase": "^5.3.1",
2361 | "find-up": "^4.1.0",
2362 | "get-package-type": "^0.1.0",
2363 | "js-yaml": "^3.13.1",
2364 | "resolve-from": "^5.0.0"
2365 | }
2366 | },
2367 | "@istanbuljs/schema": {
2368 | "version": "0.1.3",
2369 | "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
2370 | "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
2371 | "dev": true
2372 | },
2373 | "@jridgewell/gen-mapping": {
2374 | "version": "0.3.3",
2375 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
2376 | "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
2377 | "dev": true,
2378 | "requires": {
2379 | "@jridgewell/set-array": "^1.0.1",
2380 | "@jridgewell/sourcemap-codec": "^1.4.10",
2381 | "@jridgewell/trace-mapping": "^0.3.9"
2382 | }
2383 | },
2384 | "@jridgewell/resolve-uri": {
2385 | "version": "3.1.1",
2386 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
2387 | "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
2388 | "dev": true
2389 | },
2390 | "@jridgewell/set-array": {
2391 | "version": "1.1.2",
2392 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
2393 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
2394 | "dev": true
2395 | },
2396 | "@jridgewell/sourcemap-codec": {
2397 | "version": "1.4.15",
2398 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
2399 | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
2400 | "dev": true
2401 | },
2402 | "@jridgewell/trace-mapping": {
2403 | "version": "0.3.19",
2404 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz",
2405 | "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==",
2406 | "dev": true,
2407 | "requires": {
2408 | "@jridgewell/resolve-uri": "^3.1.0",
2409 | "@jridgewell/sourcemap-codec": "^1.4.14"
2410 | }
2411 | },
2412 | "@tootallnate/once": {
2413 | "version": "1.1.2",
2414 | "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
2415 | "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
2416 | "dev": true
2417 | },
2418 | "@types/mocha": {
2419 | "version": "5.2.7",
2420 | "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz",
2421 | "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==",
2422 | "dev": true
2423 | },
2424 | "@types/node": {
2425 | "version": "13.13.52",
2426 | "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.52.tgz",
2427 | "integrity": "sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ==",
2428 | "dev": true
2429 | },
2430 | "@types/vscode": {
2431 | "version": "1.59.0",
2432 | "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.59.0.tgz",
2433 | "integrity": "sha512-Zg38rusx2nU6gy6QdF7v4iqgxNfxzlBlDhrRCjOiPQp+sfaNrp3f9J6OHIhpGNN1oOAca4+9Hq0+8u3jwzPMlQ==",
2434 | "dev": true
2435 | },
2436 | "agent-base": {
2437 | "version": "6.0.2",
2438 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
2439 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
2440 | "dev": true,
2441 | "requires": {
2442 | "debug": "4"
2443 | }
2444 | },
2445 | "aggregate-error": {
2446 | "version": "3.1.0",
2447 | "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
2448 | "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
2449 | "dev": true,
2450 | "requires": {
2451 | "clean-stack": "^2.0.0",
2452 | "indent-string": "^4.0.0"
2453 | }
2454 | },
2455 | "ansi-regex": {
2456 | "version": "5.0.1",
2457 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
2458 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
2459 | "dev": true
2460 | },
2461 | "ansi-styles": {
2462 | "version": "3.2.1",
2463 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
2464 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
2465 | "dev": true,
2466 | "requires": {
2467 | "color-convert": "^1.9.0"
2468 | }
2469 | },
2470 | "append-transform": {
2471 | "version": "2.0.0",
2472 | "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz",
2473 | "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==",
2474 | "dev": true,
2475 | "requires": {
2476 | "default-require-extensions": "^3.0.0"
2477 | }
2478 | },
2479 | "archy": {
2480 | "version": "1.0.0",
2481 | "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
2482 | "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=",
2483 | "dev": true
2484 | },
2485 | "arg": {
2486 | "version": "4.1.3",
2487 | "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
2488 | "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
2489 | "dev": true
2490 | },
2491 | "argparse": {
2492 | "version": "1.0.10",
2493 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
2494 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
2495 | "dev": true,
2496 | "requires": {
2497 | "sprintf-js": "~1.0.2"
2498 | }
2499 | },
2500 | "balanced-match": {
2501 | "version": "1.0.2",
2502 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
2503 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
2504 | "dev": true
2505 | },
2506 | "big-integer": {
2507 | "version": "1.6.48",
2508 | "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz",
2509 | "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==",
2510 | "dev": true
2511 | },
2512 | "binary": {
2513 | "version": "0.3.0",
2514 | "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz",
2515 | "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=",
2516 | "dev": true,
2517 | "requires": {
2518 | "buffers": "~0.1.1",
2519 | "chainsaw": "~0.1.0"
2520 | }
2521 | },
2522 | "bluebird": {
2523 | "version": "3.4.7",
2524 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz",
2525 | "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=",
2526 | "dev": true
2527 | },
2528 | "brace-expansion": {
2529 | "version": "1.1.11",
2530 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
2531 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
2532 | "dev": true,
2533 | "requires": {
2534 | "balanced-match": "^1.0.0",
2535 | "concat-map": "0.0.1"
2536 | }
2537 | },
2538 | "browserslist": {
2539 | "version": "4.16.7",
2540 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.7.tgz",
2541 | "integrity": "sha512-7I4qVwqZltJ7j37wObBe3SoTz+nS8APaNcrBOlgoirb6/HbEU2XxW/LpUDTCngM6iauwFqmRTuOMfyKnFGY5JA==",
2542 | "dev": true,
2543 | "requires": {
2544 | "caniuse-lite": "^1.0.30001248",
2545 | "colorette": "^1.2.2",
2546 | "electron-to-chromium": "^1.3.793",
2547 | "escalade": "^3.1.1",
2548 | "node-releases": "^1.1.73"
2549 | }
2550 | },
2551 | "buffer-from": {
2552 | "version": "1.1.2",
2553 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
2554 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
2555 | "dev": true
2556 | },
2557 | "buffer-indexof-polyfill": {
2558 | "version": "1.0.2",
2559 | "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz",
2560 | "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==",
2561 | "dev": true
2562 | },
2563 | "buffers": {
2564 | "version": "0.1.1",
2565 | "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
2566 | "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=",
2567 | "dev": true
2568 | },
2569 | "caching-transform": {
2570 | "version": "4.0.0",
2571 | "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz",
2572 | "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==",
2573 | "dev": true,
2574 | "requires": {
2575 | "hasha": "^5.0.0",
2576 | "make-dir": "^3.0.0",
2577 | "package-hash": "^4.0.0",
2578 | "write-file-atomic": "^3.0.0"
2579 | }
2580 | },
2581 | "camelcase": {
2582 | "version": "5.3.1",
2583 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
2584 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
2585 | "dev": true
2586 | },
2587 | "caniuse-lite": {
2588 | "version": "1.0.30001251",
2589 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001251.tgz",
2590 | "integrity": "sha512-HOe1r+9VkU4TFmnU70z+r7OLmtR+/chB1rdcJUeQlAinjEeb0cKL20tlAtOagNZhbrtLnCvV19B4FmF1rgzl6A==",
2591 | "dev": true
2592 | },
2593 | "chainsaw": {
2594 | "version": "0.1.0",
2595 | "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz",
2596 | "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=",
2597 | "dev": true,
2598 | "requires": {
2599 | "traverse": ">=0.3.0 <0.4"
2600 | }
2601 | },
2602 | "chalk": {
2603 | "version": "2.4.2",
2604 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
2605 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
2606 | "dev": true,
2607 | "requires": {
2608 | "ansi-styles": "^3.2.1",
2609 | "escape-string-regexp": "^1.0.5",
2610 | "supports-color": "^5.3.0"
2611 | }
2612 | },
2613 | "clean-stack": {
2614 | "version": "2.2.0",
2615 | "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
2616 | "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
2617 | "dev": true
2618 | },
2619 | "cliui": {
2620 | "version": "6.0.0",
2621 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
2622 | "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
2623 | "dev": true,
2624 | "requires": {
2625 | "string-width": "^4.2.0",
2626 | "strip-ansi": "^6.0.0",
2627 | "wrap-ansi": "^6.2.0"
2628 | }
2629 | },
2630 | "color-convert": {
2631 | "version": "1.9.3",
2632 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
2633 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
2634 | "dev": true,
2635 | "requires": {
2636 | "color-name": "1.1.3"
2637 | }
2638 | },
2639 | "color-name": {
2640 | "version": "1.1.3",
2641 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
2642 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
2643 | "dev": true
2644 | },
2645 | "colorette": {
2646 | "version": "1.3.0",
2647 | "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.3.0.tgz",
2648 | "integrity": "sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w==",
2649 | "dev": true
2650 | },
2651 | "commondir": {
2652 | "version": "1.0.1",
2653 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
2654 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
2655 | "dev": true
2656 | },
2657 | "concat-map": {
2658 | "version": "0.0.1",
2659 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
2660 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
2661 | "dev": true
2662 | },
2663 | "convert-source-map": {
2664 | "version": "1.8.0",
2665 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
2666 | "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
2667 | "dev": true,
2668 | "requires": {
2669 | "safe-buffer": "~5.1.1"
2670 | }
2671 | },
2672 | "core-util-is": {
2673 | "version": "1.0.2",
2674 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
2675 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
2676 | "dev": true
2677 | },
2678 | "cross-spawn": {
2679 | "version": "7.0.3",
2680 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
2681 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
2682 | "dev": true,
2683 | "requires": {
2684 | "path-key": "^3.1.0",
2685 | "shebang-command": "^2.0.0",
2686 | "which": "^2.0.1"
2687 | }
2688 | },
2689 | "debug": {
2690 | "version": "4.3.2",
2691 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
2692 | "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
2693 | "dev": true,
2694 | "requires": {
2695 | "ms": "2.1.2"
2696 | }
2697 | },
2698 | "decamelize": {
2699 | "version": "1.2.0",
2700 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
2701 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
2702 | "dev": true
2703 | },
2704 | "default-require-extensions": {
2705 | "version": "3.0.0",
2706 | "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz",
2707 | "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==",
2708 | "dev": true,
2709 | "requires": {
2710 | "strip-bom": "^4.0.0"
2711 | }
2712 | },
2713 | "diff": {
2714 | "version": "4.0.2",
2715 | "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
2716 | "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
2717 | "dev": true
2718 | },
2719 | "duplexer2": {
2720 | "version": "0.1.4",
2721 | "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
2722 | "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
2723 | "dev": true,
2724 | "requires": {
2725 | "readable-stream": "^2.0.2"
2726 | }
2727 | },
2728 | "electron-to-chromium": {
2729 | "version": "1.3.806",
2730 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.806.tgz",
2731 | "integrity": "sha512-AH/otJLAAecgyrYp0XK1DPiGVWcOgwPeJBOLeuFQ5l//vhQhwC9u6d+GijClqJAmsHG4XDue81ndSQPohUu0xA==",
2732 | "dev": true
2733 | },
2734 | "emoji-regex": {
2735 | "version": "8.0.0",
2736 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
2737 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
2738 | "dev": true
2739 | },
2740 | "es6-error": {
2741 | "version": "4.1.1",
2742 | "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
2743 | "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
2744 | "dev": true
2745 | },
2746 | "escalade": {
2747 | "version": "3.1.1",
2748 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
2749 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
2750 | "dev": true
2751 | },
2752 | "escape-string-regexp": {
2753 | "version": "1.0.5",
2754 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
2755 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
2756 | "dev": true
2757 | },
2758 | "esprima": {
2759 | "version": "4.0.1",
2760 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
2761 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
2762 | "dev": true
2763 | },
2764 | "find-cache-dir": {
2765 | "version": "3.3.1",
2766 | "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz",
2767 | "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==",
2768 | "dev": true,
2769 | "requires": {
2770 | "commondir": "^1.0.1",
2771 | "make-dir": "^3.0.2",
2772 | "pkg-dir": "^4.1.0"
2773 | }
2774 | },
2775 | "find-up": {
2776 | "version": "4.1.0",
2777 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
2778 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
2779 | "dev": true,
2780 | "requires": {
2781 | "locate-path": "^5.0.0",
2782 | "path-exists": "^4.0.0"
2783 | }
2784 | },
2785 | "foreground-child": {
2786 | "version": "2.0.0",
2787 | "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz",
2788 | "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==",
2789 | "dev": true,
2790 | "requires": {
2791 | "cross-spawn": "^7.0.0",
2792 | "signal-exit": "^3.0.2"
2793 | }
2794 | },
2795 | "fromentries": {
2796 | "version": "1.3.2",
2797 | "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz",
2798 | "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==",
2799 | "dev": true
2800 | },
2801 | "fs.realpath": {
2802 | "version": "1.0.0",
2803 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
2804 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
2805 | "dev": true
2806 | },
2807 | "fstream": {
2808 | "version": "1.0.12",
2809 | "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
2810 | "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
2811 | "dev": true,
2812 | "requires": {
2813 | "graceful-fs": "^4.1.2",
2814 | "inherits": "~2.0.0",
2815 | "mkdirp": ">=0.5 0",
2816 | "rimraf": "2"
2817 | },
2818 | "dependencies": {
2819 | "rimraf": {
2820 | "version": "2.7.1",
2821 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
2822 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
2823 | "dev": true,
2824 | "requires": {
2825 | "glob": "^7.1.3"
2826 | }
2827 | }
2828 | }
2829 | },
2830 | "gensync": {
2831 | "version": "1.0.0-beta.2",
2832 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
2833 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
2834 | "dev": true
2835 | },
2836 | "get-caller-file": {
2837 | "version": "2.0.5",
2838 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
2839 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
2840 | "dev": true
2841 | },
2842 | "get-package-type": {
2843 | "version": "0.1.0",
2844 | "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
2845 | "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
2846 | "dev": true
2847 | },
2848 | "glob": {
2849 | "version": "7.1.7",
2850 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
2851 | "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
2852 | "dev": true,
2853 | "requires": {
2854 | "fs.realpath": "^1.0.0",
2855 | "inflight": "^1.0.4",
2856 | "inherits": "2",
2857 | "minimatch": "^3.0.4",
2858 | "once": "^1.3.0",
2859 | "path-is-absolute": "^1.0.0"
2860 | }
2861 | },
2862 | "globals": {
2863 | "version": "11.12.0",
2864 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
2865 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
2866 | "dev": true
2867 | },
2868 | "graceful-fs": {
2869 | "version": "4.2.8",
2870 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
2871 | "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==",
2872 | "dev": true
2873 | },
2874 | "has-flag": {
2875 | "version": "3.0.0",
2876 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
2877 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
2878 | "dev": true
2879 | },
2880 | "hasha": {
2881 | "version": "5.2.2",
2882 | "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz",
2883 | "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==",
2884 | "dev": true,
2885 | "requires": {
2886 | "is-stream": "^2.0.0",
2887 | "type-fest": "^0.8.0"
2888 | }
2889 | },
2890 | "html-escaper": {
2891 | "version": "2.0.2",
2892 | "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
2893 | "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
2894 | "dev": true
2895 | },
2896 | "http-proxy-agent": {
2897 | "version": "4.0.1",
2898 | "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
2899 | "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
2900 | "dev": true,
2901 | "requires": {
2902 | "@tootallnate/once": "1",
2903 | "agent-base": "6",
2904 | "debug": "4"
2905 | }
2906 | },
2907 | "https-proxy-agent": {
2908 | "version": "5.0.0",
2909 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
2910 | "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
2911 | "dev": true,
2912 | "requires": {
2913 | "agent-base": "6",
2914 | "debug": "4"
2915 | }
2916 | },
2917 | "imurmurhash": {
2918 | "version": "0.1.4",
2919 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
2920 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
2921 | "dev": true
2922 | },
2923 | "indent-string": {
2924 | "version": "4.0.0",
2925 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
2926 | "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
2927 | "dev": true
2928 | },
2929 | "inflight": {
2930 | "version": "1.0.6",
2931 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
2932 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
2933 | "dev": true,
2934 | "requires": {
2935 | "once": "^1.3.0",
2936 | "wrappy": "1"
2937 | }
2938 | },
2939 | "inherits": {
2940 | "version": "2.0.4",
2941 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
2942 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
2943 | "dev": true
2944 | },
2945 | "is-fullwidth-code-point": {
2946 | "version": "3.0.0",
2947 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
2948 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
2949 | "dev": true
2950 | },
2951 | "is-stream": {
2952 | "version": "2.0.1",
2953 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
2954 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
2955 | "dev": true
2956 | },
2957 | "is-typedarray": {
2958 | "version": "1.0.0",
2959 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
2960 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
2961 | "dev": true
2962 | },
2963 | "is-windows": {
2964 | "version": "1.0.2",
2965 | "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
2966 | "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
2967 | "dev": true
2968 | },
2969 | "isarray": {
2970 | "version": "1.0.0",
2971 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
2972 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
2973 | "dev": true
2974 | },
2975 | "isexe": {
2976 | "version": "2.0.0",
2977 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
2978 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
2979 | "dev": true
2980 | },
2981 | "istanbul-lib-coverage": {
2982 | "version": "3.0.0",
2983 | "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz",
2984 | "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==",
2985 | "dev": true
2986 | },
2987 | "istanbul-lib-hook": {
2988 | "version": "3.0.0",
2989 | "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz",
2990 | "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==",
2991 | "dev": true,
2992 | "requires": {
2993 | "append-transform": "^2.0.0"
2994 | }
2995 | },
2996 | "istanbul-lib-instrument": {
2997 | "version": "4.0.3",
2998 | "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz",
2999 | "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==",
3000 | "dev": true,
3001 | "requires": {
3002 | "@babel/core": "^7.7.5",
3003 | "@istanbuljs/schema": "^0.1.2",
3004 | "istanbul-lib-coverage": "^3.0.0",
3005 | "semver": "^6.3.0"
3006 | }
3007 | },
3008 | "istanbul-lib-processinfo": {
3009 | "version": "2.0.2",
3010 | "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz",
3011 | "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==",
3012 | "dev": true,
3013 | "requires": {
3014 | "archy": "^1.0.0",
3015 | "cross-spawn": "^7.0.0",
3016 | "istanbul-lib-coverage": "^3.0.0-alpha.1",
3017 | "make-dir": "^3.0.0",
3018 | "p-map": "^3.0.0",
3019 | "rimraf": "^3.0.0",
3020 | "uuid": "^3.3.3"
3021 | }
3022 | },
3023 | "istanbul-lib-report": {
3024 | "version": "3.0.0",
3025 | "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
3026 | "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
3027 | "dev": true,
3028 | "requires": {
3029 | "istanbul-lib-coverage": "^3.0.0",
3030 | "make-dir": "^3.0.0",
3031 | "supports-color": "^7.1.0"
3032 | },
3033 | "dependencies": {
3034 | "has-flag": {
3035 | "version": "4.0.0",
3036 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
3037 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
3038 | "dev": true
3039 | },
3040 | "supports-color": {
3041 | "version": "7.2.0",
3042 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
3043 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
3044 | "dev": true,
3045 | "requires": {
3046 | "has-flag": "^4.0.0"
3047 | }
3048 | }
3049 | }
3050 | },
3051 | "istanbul-lib-source-maps": {
3052 | "version": "4.0.0",
3053 | "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz",
3054 | "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==",
3055 | "dev": true,
3056 | "requires": {
3057 | "debug": "^4.1.1",
3058 | "istanbul-lib-coverage": "^3.0.0",
3059 | "source-map": "^0.6.1"
3060 | },
3061 | "dependencies": {
3062 | "source-map": {
3063 | "version": "0.6.1",
3064 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
3065 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
3066 | "dev": true
3067 | }
3068 | }
3069 | },
3070 | "istanbul-reports": {
3071 | "version": "3.0.2",
3072 | "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz",
3073 | "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==",
3074 | "dev": true,
3075 | "requires": {
3076 | "html-escaper": "^2.0.0",
3077 | "istanbul-lib-report": "^3.0.0"
3078 | }
3079 | },
3080 | "js-tokens": {
3081 | "version": "4.0.0",
3082 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
3083 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
3084 | "dev": true
3085 | },
3086 | "js-yaml": {
3087 | "version": "3.14.1",
3088 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
3089 | "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
3090 | "dev": true,
3091 | "requires": {
3092 | "argparse": "^1.0.7",
3093 | "esprima": "^4.0.0"
3094 | }
3095 | },
3096 | "jsesc": {
3097 | "version": "2.5.2",
3098 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
3099 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
3100 | "dev": true
3101 | },
3102 | "json5": {
3103 | "version": "2.2.3",
3104 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
3105 | "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
3106 | "dev": true
3107 | },
3108 | "listenercount": {
3109 | "version": "1.0.1",
3110 | "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz",
3111 | "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=",
3112 | "dev": true
3113 | },
3114 | "locate-path": {
3115 | "version": "5.0.0",
3116 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
3117 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
3118 | "dev": true,
3119 | "requires": {
3120 | "p-locate": "^4.1.0"
3121 | }
3122 | },
3123 | "lodash.flattendeep": {
3124 | "version": "4.4.0",
3125 | "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
3126 | "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=",
3127 | "dev": true
3128 | },
3129 | "make-dir": {
3130 | "version": "3.1.0",
3131 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
3132 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
3133 | "dev": true,
3134 | "requires": {
3135 | "semver": "^6.0.0"
3136 | }
3137 | },
3138 | "make-error": {
3139 | "version": "1.3.6",
3140 | "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
3141 | "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
3142 | "dev": true
3143 | },
3144 | "minimatch": {
3145 | "version": "3.1.2",
3146 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
3147 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
3148 | "dev": true,
3149 | "requires": {
3150 | "brace-expansion": "^1.1.7"
3151 | }
3152 | },
3153 | "minimist": {
3154 | "version": "1.2.6",
3155 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
3156 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
3157 | "dev": true
3158 | },
3159 | "mkdirp": {
3160 | "version": "0.5.5",
3161 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
3162 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
3163 | "dev": true,
3164 | "requires": {
3165 | "minimist": "^1.2.5"
3166 | }
3167 | },
3168 | "ms": {
3169 | "version": "2.1.2",
3170 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
3171 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
3172 | "dev": true
3173 | },
3174 | "node-preload": {
3175 | "version": "0.2.1",
3176 | "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz",
3177 | "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==",
3178 | "dev": true,
3179 | "requires": {
3180 | "process-on-spawn": "^1.0.0"
3181 | }
3182 | },
3183 | "node-releases": {
3184 | "version": "1.1.74",
3185 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.74.tgz",
3186 | "integrity": "sha512-caJBVempXZPepZoZAPCWRTNxYQ+xtG/KAi4ozTA5A+nJ7IU+kLQCbqaUjb5Rwy14M9upBWiQ4NutcmW04LJSRw==",
3187 | "dev": true
3188 | },
3189 | "nyc": {
3190 | "version": "15.1.0",
3191 | "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz",
3192 | "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==",
3193 | "dev": true,
3194 | "requires": {
3195 | "@istanbuljs/load-nyc-config": "^1.0.0",
3196 | "@istanbuljs/schema": "^0.1.2",
3197 | "caching-transform": "^4.0.0",
3198 | "convert-source-map": "^1.7.0",
3199 | "decamelize": "^1.2.0",
3200 | "find-cache-dir": "^3.2.0",
3201 | "find-up": "^4.1.0",
3202 | "foreground-child": "^2.0.0",
3203 | "get-package-type": "^0.1.0",
3204 | "glob": "^7.1.6",
3205 | "istanbul-lib-coverage": "^3.0.0",
3206 | "istanbul-lib-hook": "^3.0.0",
3207 | "istanbul-lib-instrument": "^4.0.0",
3208 | "istanbul-lib-processinfo": "^2.0.2",
3209 | "istanbul-lib-report": "^3.0.0",
3210 | "istanbul-lib-source-maps": "^4.0.0",
3211 | "istanbul-reports": "^3.0.2",
3212 | "make-dir": "^3.0.0",
3213 | "node-preload": "^0.2.1",
3214 | "p-map": "^3.0.0",
3215 | "process-on-spawn": "^1.0.0",
3216 | "resolve-from": "^5.0.0",
3217 | "rimraf": "^3.0.0",
3218 | "signal-exit": "^3.0.2",
3219 | "spawn-wrap": "^2.0.0",
3220 | "test-exclude": "^6.0.0",
3221 | "yargs": "^15.0.2"
3222 | }
3223 | },
3224 | "once": {
3225 | "version": "1.4.0",
3226 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
3227 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
3228 | "dev": true,
3229 | "requires": {
3230 | "wrappy": "1"
3231 | }
3232 | },
3233 | "p-limit": {
3234 | "version": "2.3.0",
3235 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
3236 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
3237 | "dev": true,
3238 | "requires": {
3239 | "p-try": "^2.0.0"
3240 | }
3241 | },
3242 | "p-locate": {
3243 | "version": "4.1.0",
3244 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
3245 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
3246 | "dev": true,
3247 | "requires": {
3248 | "p-limit": "^2.2.0"
3249 | }
3250 | },
3251 | "p-map": {
3252 | "version": "3.0.0",
3253 | "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
3254 | "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
3255 | "dev": true,
3256 | "requires": {
3257 | "aggregate-error": "^3.0.0"
3258 | }
3259 | },
3260 | "p-try": {
3261 | "version": "2.2.0",
3262 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
3263 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
3264 | "dev": true
3265 | },
3266 | "package-hash": {
3267 | "version": "4.0.0",
3268 | "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz",
3269 | "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==",
3270 | "dev": true,
3271 | "requires": {
3272 | "graceful-fs": "^4.1.15",
3273 | "hasha": "^5.0.0",
3274 | "lodash.flattendeep": "^4.4.0",
3275 | "release-zalgo": "^1.0.0"
3276 | }
3277 | },
3278 | "path-exists": {
3279 | "version": "4.0.0",
3280 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
3281 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
3282 | "dev": true
3283 | },
3284 | "path-is-absolute": {
3285 | "version": "1.0.1",
3286 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
3287 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
3288 | "dev": true
3289 | },
3290 | "path-key": {
3291 | "version": "3.1.1",
3292 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
3293 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
3294 | "dev": true
3295 | },
3296 | "pkg-dir": {
3297 | "version": "4.2.0",
3298 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
3299 | "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
3300 | "dev": true,
3301 | "requires": {
3302 | "find-up": "^4.0.0"
3303 | }
3304 | },
3305 | "process-nextick-args": {
3306 | "version": "2.0.1",
3307 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
3308 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
3309 | "dev": true
3310 | },
3311 | "process-on-spawn": {
3312 | "version": "1.0.0",
3313 | "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz",
3314 | "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==",
3315 | "dev": true,
3316 | "requires": {
3317 | "fromentries": "^1.2.0"
3318 | }
3319 | },
3320 | "readable-stream": {
3321 | "version": "2.3.7",
3322 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
3323 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
3324 | "dev": true,
3325 | "requires": {
3326 | "core-util-is": "~1.0.0",
3327 | "inherits": "~2.0.3",
3328 | "isarray": "~1.0.0",
3329 | "process-nextick-args": "~2.0.0",
3330 | "safe-buffer": "~5.1.1",
3331 | "string_decoder": "~1.1.1",
3332 | "util-deprecate": "~1.0.1"
3333 | }
3334 | },
3335 | "release-zalgo": {
3336 | "version": "1.0.0",
3337 | "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz",
3338 | "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=",
3339 | "dev": true,
3340 | "requires": {
3341 | "es6-error": "^4.0.1"
3342 | }
3343 | },
3344 | "require-directory": {
3345 | "version": "2.1.1",
3346 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
3347 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
3348 | "dev": true
3349 | },
3350 | "require-main-filename": {
3351 | "version": "2.0.0",
3352 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
3353 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
3354 | "dev": true
3355 | },
3356 | "resolve-from": {
3357 | "version": "5.0.0",
3358 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
3359 | "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
3360 | "dev": true
3361 | },
3362 | "rimraf": {
3363 | "version": "3.0.2",
3364 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
3365 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
3366 | "dev": true,
3367 | "requires": {
3368 | "glob": "^7.1.3"
3369 | }
3370 | },
3371 | "safe-buffer": {
3372 | "version": "5.1.2",
3373 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
3374 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
3375 | "dev": true
3376 | },
3377 | "semver": {
3378 | "version": "6.3.0",
3379 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
3380 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
3381 | "dev": true
3382 | },
3383 | "set-blocking": {
3384 | "version": "2.0.0",
3385 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
3386 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
3387 | "dev": true
3388 | },
3389 | "setimmediate": {
3390 | "version": "1.0.5",
3391 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
3392 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
3393 | "dev": true
3394 | },
3395 | "shebang-command": {
3396 | "version": "2.0.0",
3397 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
3398 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
3399 | "dev": true,
3400 | "requires": {
3401 | "shebang-regex": "^3.0.0"
3402 | }
3403 | },
3404 | "shebang-regex": {
3405 | "version": "3.0.0",
3406 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
3407 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
3408 | "dev": true
3409 | },
3410 | "signal-exit": {
3411 | "version": "3.0.3",
3412 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
3413 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
3414 | "dev": true
3415 | },
3416 | "source-map": {
3417 | "version": "0.5.7",
3418 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
3419 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
3420 | "dev": true
3421 | },
3422 | "source-map-support": {
3423 | "version": "0.5.19",
3424 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
3425 | "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
3426 | "dev": true,
3427 | "requires": {
3428 | "buffer-from": "^1.0.0",
3429 | "source-map": "^0.6.0"
3430 | },
3431 | "dependencies": {
3432 | "source-map": {
3433 | "version": "0.6.1",
3434 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
3435 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
3436 | "dev": true
3437 | }
3438 | }
3439 | },
3440 | "spawn-wrap": {
3441 | "version": "2.0.0",
3442 | "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz",
3443 | "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==",
3444 | "dev": true,
3445 | "requires": {
3446 | "foreground-child": "^2.0.0",
3447 | "is-windows": "^1.0.2",
3448 | "make-dir": "^3.0.0",
3449 | "rimraf": "^3.0.0",
3450 | "signal-exit": "^3.0.2",
3451 | "which": "^2.0.1"
3452 | }
3453 | },
3454 | "sprintf-js": {
3455 | "version": "1.0.3",
3456 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
3457 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
3458 | "dev": true
3459 | },
3460 | "string_decoder": {
3461 | "version": "1.1.1",
3462 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
3463 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
3464 | "dev": true,
3465 | "requires": {
3466 | "safe-buffer": "~5.1.0"
3467 | }
3468 | },
3469 | "string-width": {
3470 | "version": "4.2.2",
3471 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
3472 | "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
3473 | "dev": true,
3474 | "requires": {
3475 | "emoji-regex": "^8.0.0",
3476 | "is-fullwidth-code-point": "^3.0.0",
3477 | "strip-ansi": "^6.0.0"
3478 | }
3479 | },
3480 | "strip-ansi": {
3481 | "version": "6.0.0",
3482 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
3483 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
3484 | "dev": true,
3485 | "requires": {
3486 | "ansi-regex": "^5.0.0"
3487 | }
3488 | },
3489 | "strip-bom": {
3490 | "version": "4.0.0",
3491 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
3492 | "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
3493 | "dev": true
3494 | },
3495 | "supports-color": {
3496 | "version": "5.5.0",
3497 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
3498 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
3499 | "dev": true,
3500 | "requires": {
3501 | "has-flag": "^3.0.0"
3502 | }
3503 | },
3504 | "test-exclude": {
3505 | "version": "6.0.0",
3506 | "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
3507 | "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
3508 | "dev": true,
3509 | "requires": {
3510 | "@istanbuljs/schema": "^0.1.2",
3511 | "glob": "^7.1.4",
3512 | "minimatch": "^3.0.4"
3513 | }
3514 | },
3515 | "to-fast-properties": {
3516 | "version": "2.0.0",
3517 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
3518 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
3519 | "dev": true
3520 | },
3521 | "traverse": {
3522 | "version": "0.3.9",
3523 | "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz",
3524 | "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=",
3525 | "dev": true
3526 | },
3527 | "ts-node": {
3528 | "version": "8.10.2",
3529 | "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz",
3530 | "integrity": "sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==",
3531 | "dev": true,
3532 | "requires": {
3533 | "arg": "^4.1.0",
3534 | "diff": "^4.0.1",
3535 | "make-error": "^1.1.1",
3536 | "source-map-support": "^0.5.17",
3537 | "yn": "3.1.1"
3538 | }
3539 | },
3540 | "type-fest": {
3541 | "version": "0.8.1",
3542 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
3543 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
3544 | "dev": true
3545 | },
3546 | "typedarray-to-buffer": {
3547 | "version": "3.1.5",
3548 | "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
3549 | "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
3550 | "dev": true,
3551 | "requires": {
3552 | "is-typedarray": "^1.0.0"
3553 | }
3554 | },
3555 | "typescript": {
3556 | "version": "3.9.10",
3557 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz",
3558 | "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==",
3559 | "dev": true
3560 | },
3561 | "unzipper": {
3562 | "version": "0.10.11",
3563 | "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz",
3564 | "integrity": "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==",
3565 | "dev": true,
3566 | "requires": {
3567 | "big-integer": "^1.6.17",
3568 | "binary": "~0.3.0",
3569 | "bluebird": "~3.4.1",
3570 | "buffer-indexof-polyfill": "~1.0.0",
3571 | "duplexer2": "~0.1.4",
3572 | "fstream": "^1.0.12",
3573 | "graceful-fs": "^4.2.2",
3574 | "listenercount": "~1.0.1",
3575 | "readable-stream": "~2.3.6",
3576 | "setimmediate": "~1.0.4"
3577 | }
3578 | },
3579 | "util-deprecate": {
3580 | "version": "1.0.2",
3581 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
3582 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
3583 | "dev": true
3584 | },
3585 | "uuid": {
3586 | "version": "3.4.0",
3587 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
3588 | "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
3589 | "dev": true
3590 | },
3591 | "vscode-test": {
3592 | "version": "1.6.1",
3593 | "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-1.6.1.tgz",
3594 | "integrity": "sha512-086q88T2ca1k95mUzffvbzb7esqQNvJgiwY4h29ukPhFo8u+vXOOmelUoU5EQUHs3Of8+JuQ3oGdbVCqaxuTXA==",
3595 | "dev": true,
3596 | "requires": {
3597 | "http-proxy-agent": "^4.0.1",
3598 | "https-proxy-agent": "^5.0.0",
3599 | "rimraf": "^3.0.2",
3600 | "unzipper": "^0.10.11"
3601 | }
3602 | },
3603 | "which": {
3604 | "version": "2.0.2",
3605 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
3606 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
3607 | "dev": true,
3608 | "requires": {
3609 | "isexe": "^2.0.0"
3610 | }
3611 | },
3612 | "which-module": {
3613 | "version": "2.0.0",
3614 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
3615 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
3616 | "dev": true
3617 | },
3618 | "wrap-ansi": {
3619 | "version": "6.2.0",
3620 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
3621 | "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
3622 | "dev": true,
3623 | "requires": {
3624 | "ansi-styles": "^4.0.0",
3625 | "string-width": "^4.1.0",
3626 | "strip-ansi": "^6.0.0"
3627 | },
3628 | "dependencies": {
3629 | "ansi-styles": {
3630 | "version": "4.3.0",
3631 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
3632 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
3633 | "dev": true,
3634 | "requires": {
3635 | "color-convert": "^2.0.1"
3636 | }
3637 | },
3638 | "color-convert": {
3639 | "version": "2.0.1",
3640 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
3641 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
3642 | "dev": true,
3643 | "requires": {
3644 | "color-name": "~1.1.4"
3645 | }
3646 | },
3647 | "color-name": {
3648 | "version": "1.1.4",
3649 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
3650 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
3651 | "dev": true
3652 | }
3653 | }
3654 | },
3655 | "wrappy": {
3656 | "version": "1.0.2",
3657 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
3658 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
3659 | "dev": true
3660 | },
3661 | "write-file-atomic": {
3662 | "version": "3.0.3",
3663 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
3664 | "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
3665 | "dev": true,
3666 | "requires": {
3667 | "imurmurhash": "^0.1.4",
3668 | "is-typedarray": "^1.0.0",
3669 | "signal-exit": "^3.0.2",
3670 | "typedarray-to-buffer": "^3.1.5"
3671 | }
3672 | },
3673 | "y18n": {
3674 | "version": "4.0.3",
3675 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
3676 | "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
3677 | "dev": true
3678 | },
3679 | "yargs": {
3680 | "version": "15.4.1",
3681 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
3682 | "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
3683 | "dev": true,
3684 | "requires": {
3685 | "cliui": "^6.0.0",
3686 | "decamelize": "^1.2.0",
3687 | "find-up": "^4.1.0",
3688 | "get-caller-file": "^2.0.1",
3689 | "require-directory": "^2.1.1",
3690 | "require-main-filename": "^2.0.0",
3691 | "set-blocking": "^2.0.0",
3692 | "string-width": "^4.2.0",
3693 | "which-module": "^2.0.0",
3694 | "y18n": "^4.0.0",
3695 | "yargs-parser": "^18.1.2"
3696 | }
3697 | },
3698 | "yargs-parser": {
3699 | "version": "18.1.3",
3700 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
3701 | "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
3702 | "dev": true,
3703 | "requires": {
3704 | "camelcase": "^5.0.0",
3705 | "decamelize": "^1.2.0"
3706 | }
3707 | },
3708 | "yn": {
3709 | "version": "3.1.1",
3710 | "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
3711 | "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
3712 | "dev": true
3713 | }
3714 | }
3715 | }
3716 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "excel-to-markdown-table",
3 | "displayName": "Excel to Markdown table",
4 | "description": "Copy Excel data and convert to Markdown table format",
5 | "version": "1.3.0",
6 | "publisher": "csholmq",
7 | "repository": {
8 | "url": "https://github.com/csholmq/vscode-excel-to-markdown-table"
9 | },
10 | "engines": {
11 | "vscode": "^1.59.0"
12 | },
13 | "categories": [
14 | "Other"
15 | ],
16 | "activationEvents": [
17 | "onCommand:extension.excelToMarkdown",
18 | "onLanguage:markdown"
19 | ],
20 | "main": "./out/extension",
21 | "contributes": {
22 | "keybindings": {
23 | "key": "shift+alt+v",
24 | "command": "extension.excelToMarkdown",
25 | "title": "Excel to Markdown table",
26 | "when": "editorLangId == 'markdown'"
27 | },
28 | "commands": {
29 | "command": "extension.excelToMarkdown",
30 | "title": "Excel to Markdown table"
31 | }
32 | },
33 | "scripts": {
34 | "vscode:prepublish": "npm run compile",
35 | "compile": "tsc -p ./",
36 | "watch": "tsc -watch -p ./",
37 | "pretest": "npm run compile",
38 | "test": "node ./out/test/runTest.js",
39 | "mocha": "./node_modules/.bin/mocha --opts ./src/test/mocha.opts",
40 | "coverage": "./node_modules/.bin/nyc npm run mocha"
41 | },
42 | "devDependencies": {
43 | "@types/mocha": "^5.2.7",
44 | "@types/node": "^13.13.52",
45 | "@types/vscode": "^1.59.0",
46 | "nyc": "^15.1.0",
47 | "source-map-support": "^0.5.19",
48 | "ts-node": "^8.10.2",
49 | "typescript": "^3.9.10",
50 | "vscode-test": "^1.6.1"
51 | },
52 | "dependencies": {},
53 | "nyc": {
54 | "extension": [
55 | ".ts",
56 | ".tsx"
57 | ],
58 | "include": [
59 | "src/**/*.ts"
60 | ],
61 | "exclude": [
62 | "**/*.d.ts",
63 | "**/*.test.ts",
64 | "src/test/index.ts"
65 | ],
66 | "reporter": [
67 | "html"
68 | ],
69 | "all": true
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/src/excel-markdown-helpers.ts:
--------------------------------------------------------------------------------
1 | import { TableCellAlignment, TableSizeMetadata } from './interfaces'
2 | import { ALIGNED_LEFT_SYNTAX, ALIGNED_CENTER_SYNTAX, ALIGNED_RIGHT_SYNTAX } from './table-alignment-syntax'
3 |
4 | const ALIGNED_LEFT = "l";
5 | const ALIGNED_RIGHT = "r";
6 | const ALIGNED_CENTER = "c";
7 | const EXCEL_COLUMN_DELIMITER = "\t";
8 | const MARKDOWN_NEWLINE = "
";
9 | const UNESCAPED_DOUBLE_QUOTE = '"';
10 |
11 | // UNI_NEXT_LINE = '\u0085'
12 | // UNI_LINE_SEPARATOR = '\u2028'
13 | // UNI_PARAGRAPH_SEPARATOR = `\u2029`
14 | const EXCEL_ROW_DELIMITER_REGEX = /[\n\u0085\u2028\u2029]|\r\n?/g
15 | const COLUMN_ALIGNMENT_REGEX = /^(\^[lcr])/i;
16 | const EXCEL_NEWLINE_ESCAPED_CELL_REGEX = /"([^\t]*(?<=[^\r])\n[^\t]*)"/g;
17 | const EXCEL_NEWLINE_REGEX = /\n/g;
18 | const EXCEL_DOUBLE_QUOTE_ESCAPED_REGEX = /""/g;
19 |
20 | /**
21 | * Apply markdown syntax to create padded cells for each row of data in the table
22 | * @param rows Rows of text data
23 | * @param columnWidths Width of each column in the destination table
24 | */
25 | export function addMarkdownSyntax(rows: string[][], columnWidths: number[]) {
26 | return rows.map(function (row, rowIndex) {
27 | // | Name | Title | Email Address |
28 | // |--------------|-------|----------------|
29 | // | Jane Atler | CEO | jane@acme.com |
30 | // | John Doherty | CTO | john@acme.com |
31 | // | Sally Smith | CFO | sally@acme.com |
32 | return "| " + row.map(function (column, index) {
33 | // Create a padded string from the cell content
34 | return column + Array(columnWidths[index] - column.length + 1).join(" ");
35 | }).join(" | ") + " |";
36 | });
37 | }
38 |
39 | /**
40 | * Adds Alignment colons and inserts Header hyphens
41 | * @param markdownRows Each row in the markdown output table
42 | * @param columnWidths Padded widths for each column
43 | * @param colAlignments Alignments for each cell's text (l = left, c = center, r = right)
44 | */
45 | export function addAlignmentSyntax(markdownRows: string[], columnWidths: number[], colAlignments: string[]):string[] {
46 | // Deepcopy: https://stackoverflow.com/questions/35504310/deep-copy-an-array-in-angular-2-typescript#35504348
47 | let result = Object.assign([], markdownRows);
48 |
49 | // Insert the markdown alignment syntax as second row in the output table
50 | result.splice(1, 0,
51 | "|" + columnWidths.map(function (width, index) {
52 | let {prefix, postfix, adjust} = calculateAlignmentMarkdownSyntaxMetadata(colAlignments[index]);
53 | return prefix + Array(columnWidths[index] + 3 - adjust).join("-") + postfix;
54 | }).join("|") + "|");
55 | return result;
56 | }
57 |
58 | /**
59 | * Derives the Markdown Alignment syntax metadata on how to align the cell text
60 | * @param alignment The cell text alignment (l = left, c = center, r = right)
61 | */
62 | export function calculateAlignmentMarkdownSyntaxMetadata(alignment: string) : TableCellAlignment {
63 |
64 | switch (alignment) {
65 | case ALIGNED_LEFT: return ALIGNED_LEFT_SYNTAX
66 | case ALIGNED_CENTER: return ALIGNED_CENTER_SYNTAX
67 | case ALIGNED_RIGHT: return ALIGNED_RIGHT_SYNTAX
68 | default: return ALIGNED_LEFT_SYNTAX
69 | }
70 | }
71 |
72 | /**
73 | * Derives alignments from excel table data and calculates
74 | * column padding for each column
75 | * @param rows Table of data from Excel
76 | */
77 | export function getColumnWidthsAndAlignments(rows: string[][]) : TableSizeMetadata {
78 | let colAlignments: string[]=[];
79 | return {
80 | columnWidths: rows[0].map(function (column, columnIndex) {
81 | // Derive column alignment from excel column header text
82 | let alignment = columnAlignment(column);
83 | colAlignments.push(alignment);
84 |
85 | // Replace header text with unaligned header text
86 | column = column.replace(COLUMN_ALIGNMENT_REGEX, "");
87 | rows[0][columnIndex] = column;
88 |
89 | // Return max width for this column at columnIndex to
90 | // support all rows in the table
91 | return columnWidth(rows, columnIndex);
92 | }),
93 | colAlignments: colAlignments
94 | };
95 | }
96 |
97 | /**
98 | * Maps the original header alignment to an internal alignment
99 | * @param columnHeaderText The original Excel column header text
100 | */
101 | export function columnAlignment(columnHeaderText: string): string {
102 |
103 | var m = columnHeaderText.match(COLUMN_ALIGNMENT_REGEX);
104 |
105 | if (m) {
106 | var alignChar = m[1][1].toLowerCase();
107 | return columnAlignmentFromChar(alignChar);
108 | }
109 |
110 | // Default to left alignment
111 | return ALIGNED_LEFT;
112 | }
113 |
114 | /**
115 | * Maps the original column alignment to an internal alignment
116 | * @param alignChar Alignment character (l = left, c = center, r = right)
117 | */
118 | export function columnAlignmentFromChar(alignChar: string) {
119 | switch (alignChar) {
120 | case ALIGNED_LEFT: return ALIGNED_LEFT;
121 | case ALIGNED_CENTER: return ALIGNED_CENTER;
122 | case ALIGNED_RIGHT: return ALIGNED_RIGHT;
123 | default: return ALIGNED_LEFT
124 | }
125 | }
126 |
127 | /**
128 | * Calculates the max content length across all rows of the table
129 | * for the given column index
130 | * @param rows All rows of the original Excel table
131 | * @param columnIndex The column index to calculate the length for
132 | */
133 | export function columnWidth(rows: string[][], columnIndex: number) : number{
134 | return Math.max.apply(null, rows.map(function (row) {
135 | return (row[columnIndex] && row[columnIndex].length) || 0;
136 | }))
137 | }
138 |
139 | /**
140 | * Takes the raw clipboard content and creates a table-like structure from the data
141 | * @param data The raw content from the clipboard
142 | */
143 | export function splitIntoRowsAndColumns(data: string):string[][] {
144 | // Split rows on newline
145 | var rows = data.split(EXCEL_ROW_DELIMITER_REGEX).map(function (row) {
146 | // Split columns on tab
147 | return row.split(EXCEL_COLUMN_DELIMITER);
148 | });
149 |
150 | return rows;
151 | }
152 |
153 | /**
154 | * Replace an intra-cell-newlines
155 | * @param data The raw content from the Excel via the clipboard
156 | * @see https://github.com/csholmq/vscode-excel-to-markdown-table/issues/3
157 | */
158 | export function replaceIntraCellNewline(data: string):string {
159 | let cellReplacer = _ => _.slice(1, -1)
160 | .replace(EXCEL_DOUBLE_QUOTE_ESCAPED_REGEX, UNESCAPED_DOUBLE_QUOTE)
161 | .replace(EXCEL_NEWLINE_REGEX, MARKDOWN_NEWLINE);
162 | return data.replace(EXCEL_NEWLINE_ESCAPED_CELL_REGEX, cellReplacer);
163 | }
--------------------------------------------------------------------------------
/src/excel-markdown-tables.ts:
--------------------------------------------------------------------------------
1 | import * as helper from './excel-markdown-helpers';
2 |
3 | const LINE_ENDING = "\n"
4 |
5 | /**
6 | * Converts a string payload into a Markdown formatted table
7 | * @param rawData A table-like string
8 | */
9 | export function excelToMarkdown(rawData: string): string {
10 | let data = rawData.trim();
11 | var intraCellNewlineReplacedData = helper.replaceIntraCellNewline(data)
12 | var rows = helper.splitIntoRowsAndColumns(intraCellNewlineReplacedData);
13 | var {columnWidths, colAlignments } = helper.getColumnWidthsAndAlignments(rows);
14 | const markdownRows = helper.addMarkdownSyntax(rows, columnWidths);
15 |
16 | return helper.addAlignmentSyntax(markdownRows, columnWidths, colAlignments).join(LINE_ENDING);
17 | }
18 |
19 |
20 |
--------------------------------------------------------------------------------
/src/extension.ts:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | // The module 'vscode' contains the VS Code extensibility API
4 | // Import the module and reference it with the alias vscode in your code below
5 | import * as vscode from 'vscode';
6 | import {excelToMarkdown} from './excel-markdown-tables'
7 |
8 |
9 | /**
10 | * Registers the extension with VS Code
11 | * This extension will run when the editor's language is set to 'markdown'.
12 | * The extension can be called through Ctrl-Shift-P and selecting the XXX Option,
13 | * or by using the shortcut Shift-Alt-V
14 | * @param context
15 | */
16 | export function activate(context: vscode.ExtensionContext) {
17 | var disposable = vscode.commands.registerCommand('extension.excelToMarkdown', async () => {
18 | const text = await vscode.env.clipboard.readText();
19 | pasteText(text);
20 | });
21 |
22 | context.subscriptions.push(disposable);
23 | }
24 |
25 |
26 |
27 | // this method is called when your extension is deactivated
28 | export function deactivate() {
29 | }
30 |
31 |
32 | /**
33 | * Converts the clipboard contents to a markdown table and pastes into the document
34 | * @param rawData The raw clipboard contents containing the excel table to convert
35 | */
36 | function pasteText(rawData: string) {
37 |
38 | let paste = excelToMarkdown(rawData);
39 |
40 | let editor = vscode.window.activeTextEditor;
41 | editor.edit(_ => _.replace(editor.selection, paste));
42 | }
43 |
--------------------------------------------------------------------------------
/src/interfaces.ts:
--------------------------------------------------------------------------------
1 | export interface TableCellAlignment {
2 | prefix: string,
3 | postfix: string,
4 | adjust: number
5 | }
6 |
7 | export interface TableSizeMetadata {
8 | columnWidths: number[],
9 | colAlignments: string[]
10 | }
--------------------------------------------------------------------------------
/src/table-alignment-syntax.ts:
--------------------------------------------------------------------------------
1 | import { TableCellAlignment } from './interfaces';
2 |
3 | export const ALIGNED_LEFT_SYNTAX: TableCellAlignment = {
4 | prefix: "",
5 | postfix: "",
6 | adjust: 0
7 | }
8 |
9 | export const ALIGNED_RIGHT_SYNTAX: TableCellAlignment = {
10 | prefix: "",
11 | postfix: ":",
12 | adjust: 1
13 | }
14 |
15 | export const ALIGNED_CENTER_SYNTAX: TableCellAlignment = {
16 | prefix: ":",
17 | postfix: ":",
18 | adjust: 2
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/src/test/runTest.ts:
--------------------------------------------------------------------------------
1 | import * as path from 'path';
2 |
3 | import { runTests } from 'vscode-test';
4 |
5 | async function main() {
6 | try {
7 | // The folder containing the Extension Manifest package.json
8 | // Passed to `--extensionDevelopmentPath`
9 | const extensionDevelopmentPath = path.resolve(__dirname, '../../');
10 |
11 | // The path to test runner
12 | // Passed to --extensionTestsPath
13 | const extensionTestsPath = path.resolve(__dirname, './suite/index');
14 |
15 | // Download VS Code, unzip it and run the integration test
16 | await runTests({ extensionDevelopmentPath, extensionTestsPath });
17 | } catch (err) {
18 | console.error('Failed to run tests');
19 | process.exit(1);
20 | }
21 | }
22 |
23 | main();
24 |
--------------------------------------------------------------------------------
/src/test/suite/excel-markdown-helpers.test.ts:
--------------------------------------------------------------------------------
1 |
2 | import * as assert from 'assert';
3 |
4 | import * as hlp from '../../excel-markdown-helpers';
5 | import { TableSizeMetadata } from '../../interfaces';
6 |
7 | describe('Helper Tests', () => {
8 | describe('columnWidth', () => {
9 | it("columnWidth", () => {
10 | const row = [["first", "second"]];
11 |
12 | assert.equal(hlp.columnWidth(row, 0), 5);
13 | assert.equal(hlp.columnWidth(row, 1), 6);
14 | });
15 | });
16 |
17 | describe('splitIntoRowsAndColumns', () => {
18 | it("splitIntoRowsAndColumns", () => {
19 | assert.deepEqual(hlp.splitIntoRowsAndColumns("first\tsecond"), [["first", "second"]]), "Basic split not working";
20 | assert.deepEqual(hlp.splitIntoRowsAndColumns("first\tsecond\t\t"), [["first", "second", "", ""]], "Should add empty tabs as columns");
21 | assert.deepEqual(hlp.splitIntoRowsAndColumns("first\tsecond\r\nnew\trow"),[["first","second"],["new","row"]]);
22 | });
23 | });
24 |
25 |
26 | describe("addMarkdownSyntax", () => {
27 |
28 | it('should generate header for single column', () => {
29 | assert.equal(hlp.addMarkdownSyntax([["test"]], [4]), "| test |");
30 | });
31 |
32 | it('should generate header for multiple columns', () => {
33 | assert.equal(hlp.addMarkdownSyntax([["test", "column2"]], [4, 7]), "| test | column2 |");
34 | assert.equal(hlp.addMarkdownSyntax([["test", "column2", "x"]], [4, 7, 1]), "| test | column2 | x |");
35 | });
36 |
37 | it('should generate header for multiple rows and columns', () => {
38 | let rows = [
39 | ["test", "column2"],
40 | ["123", "test"]
41 | ];
42 | let colWidths = [4, 7];
43 | let expected = [
44 | "| test | column2 |",
45 | "| 123 | test |"
46 | ];
47 |
48 | let actual = hlp.addMarkdownSyntax(rows, colWidths);
49 | assert.deepEqual(actual, expected);
50 | });
51 |
52 | });
53 |
54 |
55 | describe('addAlignmentSyntax', () => {
56 | it("addAlignmentSyntax", () => {
57 | assert.deepEqual(hlp.addAlignmentSyntax(["test"], [5], []), [ 'test', '|-------|' ]);
58 | });
59 | });
60 |
61 |
62 | describe('calculateAlignmentMarkdownSyntaxMetadata', () => {
63 | it('should get markdown syntax for valid alignment characters', () => {
64 | assert.deepEqual(hlp.calculateAlignmentMarkdownSyntaxMetadata('l'), { prefix: '', postfix: '', adjust: 0 });
65 | assert.deepEqual(hlp.calculateAlignmentMarkdownSyntaxMetadata('c'), { prefix: ':', postfix: ':', adjust: 2 });
66 | assert.deepEqual(hlp.calculateAlignmentMarkdownSyntaxMetadata('r'), { prefix: '', postfix: ':', adjust: 1 });
67 | });
68 |
69 | it('should get default let-aligned markdown syntax for non-valid alignment characters', () => {
70 | assert.deepEqual(hlp.calculateAlignmentMarkdownSyntaxMetadata('x'), { prefix: '', postfix: '', adjust: 0 });
71 | assert.deepEqual(hlp.calculateAlignmentMarkdownSyntaxMetadata('?'), { prefix: '', postfix: '', adjust: 0 });
72 | });
73 | });
74 |
75 | describe('getColumnWidthsAndAlignments', () => {
76 | it('should get widths and alignment for single row of data', () => {
77 | let rows = [['test', 'column']];
78 | let expected: TableSizeMetadata = {
79 | columnWidths: [4,6],
80 | colAlignments: ['l', 'l']
81 | }
82 | assert.deepEqual(hlp.getColumnWidthsAndAlignments(rows), expected);
83 | });
84 |
85 | it('should get widths and alignment for multiple rows of data', () => {
86 | let rows = [['^ltest', '^ccolumn', '^rright', '^xinvalid'], [ 'x', 'longstring', '', '123' ]];
87 | let expected: TableSizeMetadata = {
88 | columnWidths: [4,10, 5, 9],
89 | colAlignments: ['l', 'c', 'r', 'l']
90 | }
91 | assert.deepEqual(hlp.getColumnWidthsAndAlignments(rows), expected);
92 | });
93 | });
94 |
95 | describe('columnAlignment', () => {
96 | it('should get correct alignment for valid alignment characters', () => {
97 | assert.equal(hlp.columnAlignment('^ltext'), 'l');
98 | assert.equal(hlp.columnAlignment('^ctext'), 'c');
99 | assert.equal(hlp.columnAlignment('^rtext'), 'r');
100 |
101 | });
102 |
103 | it('should get default left alignment for non-valid alignment characters', () => {
104 | assert.equal(hlp.columnAlignment('^xtext'), 'l');
105 | assert.equal(hlp.columnAlignment('^?text'), 'l');
106 | });
107 | });
108 |
109 | describe('columnAlignmentFromChar', () => {
110 | it('should get correct alignment character for valid input', () => {
111 | assert.equal(hlp.columnAlignmentFromChar('l'), 'l');
112 | assert.equal(hlp.columnAlignmentFromChar('c'), 'c');
113 | assert.equal(hlp.columnAlignmentFromChar('r'), 'r');
114 | });
115 |
116 | it('should get default left alignment for non valid input', () => {
117 | assert.equal(hlp.columnAlignmentFromChar('x'), 'l');
118 | assert.equal(hlp.columnAlignmentFromChar('?'), 'l');
119 | });
120 | });
121 |
122 | describe('replaceIntraCellNewline', () => {
123 | it('should replace an intra-cell-newline and unescape a double quotes correctly', () => {
124 | let rawData = '"aaa\tbbb"\tccc\r\n"""dd\nzz"""\t"ee\nff"\t"g"g"';
125 | let expected = '"aaa\tbbb"\tccc\r\n"dd
zz"\tee
ff\t"g"g"';
126 |
127 | let actual = hlp.replaceIntraCellNewline(rawData);
128 | assert.deepEqual(actual, expected);
129 | });
130 | });
131 |
132 | });
133 |
--------------------------------------------------------------------------------
/src/test/suite/excel-markdown-tables.test.ts:
--------------------------------------------------------------------------------
1 | import * as assert from 'assert';
2 |
3 | import * as emt from '../../excel-markdown-tables';
4 |
5 | describe("Excel Markdown tables API Tests", () => {
6 |
7 | it("excelToMarkdown", () => {
8 | assert.equal(emt.excelToMarkdown("test"), "| test |\n|------|");
9 | assert.equal(emt.excelToMarkdown("one\ttwo\r\nthree"),"| one | two |\n|-------|-----|\n| three |");
10 | });
11 |
12 | it("excelToMarkdown - Alignment", () => {
13 | assert.equal(emt.excelToMarkdown("^rtest"), "| test |\n|-----:|");
14 | assert.equal(emt.excelToMarkdown("^ctest"), "| test |\n|:----:|");
15 | assert.equal(emt.excelToMarkdown("^ltest"), "| test |\n|------|");
16 | });
17 | });
18 |
--------------------------------------------------------------------------------
/src/test/suite/index.ts:
--------------------------------------------------------------------------------
1 | import * as path from 'path';
2 | import * as Mocha from 'mocha';
3 | import * as glob from 'glob';
4 |
5 | export function run(): Promise {
6 | // Create the mocha test
7 | const mocha = new Mocha({
8 | ui: 'tdd',
9 | });
10 | mocha.useColors(true);
11 |
12 | const testsRoot = path.resolve(__dirname, '..');
13 |
14 | return new Promise((c, e) => {
15 | glob('**/**.test.js', { cwd: testsRoot }, (err, files) => {
16 | if (err) {
17 | return e(err);
18 | }
19 |
20 | // Add files to the test suite
21 | files.forEach(f => mocha.addFile(path.resolve(testsRoot, f)));
22 |
23 | try {
24 | // Run the mocha test
25 | mocha.run(failures => {
26 | if (failures > 0) {
27 | e(new Error(`${failures} tests failed.`));
28 | } else {
29 | c();
30 | }
31 | });
32 | } catch (err) {
33 | e(err);
34 | }
35 | });
36 | });
37 | }
38 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "commonjs",
4 | "target": "es6",
5 | "outDir": "out",
6 | "lib": [
7 | "es6"
8 | ],
9 | "sourceMap": true,
10 | "rootDir": "src"
11 | },
12 | "exclude": [
13 | "node_modules",
14 | ".vscode-test"
15 | ]
16 | }
--------------------------------------------------------------------------------
/vsc-extension-quickstart.md:
--------------------------------------------------------------------------------
1 | # Welcome to your VS Code Extension
2 |
3 | ## What's in the folder
4 | * This folder contains all of the files necessary for your extension.
5 | * `package.json` - this is the manifest file in which you declare your extension and command.
6 | The sample plugin registers a command and defines its title and command name. With this information
7 | VS Code can show the command in the command palette. It doesn’t yet need to load the plugin.
8 | * `src/extension.ts` - this is the main file where you will provide the implementation of your command.
9 | The file exports one function, `activate`, which is called the very first time your extension is
10 | activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`.
11 | We pass the function containing the implementation of the command as the second parameter to
12 | `registerCommand`.
13 |
14 | ## Get up and running straight away
15 | * Press `F5` to open a new window with your extension loaded.
16 | * Run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World`.
17 | * Set breakpoints in your code inside `src/extension.ts` to debug your extension.
18 | * Find output from your extension in the debug console.
19 |
20 | ## Make changes
21 | * You can relaunch the extension from the debug toolbar after changing code in `src/extension.ts`.
22 | * You can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes.
23 |
24 | ## Explore the API
25 | * You can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts`.
26 |
27 | ## Run tests
28 | * Open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests`.
29 | * Press `F5` to run the tests in a new window with your extension loaded.
30 | * See the output of the test result in the debug console.
31 | * Make changes to `test/extension.test.ts` or create new test files inside the `test` folder.
32 | * By convention, the test runner will only consider files matching the name pattern `**.test.ts`.
33 | * You can create folders inside the `test` folder to structure your tests any way you want.
34 |
--------------------------------------------------------------------------------