├── .eslintrc
├── .gitignore
├── .vscode
├── extensions.json
├── launch.json
├── settings.json
└── tasks.json
├── .vscodeignore
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── LICENSE
├── README.md
├── package-lock.json
├── package.json
├── src
├── compiler.ts
├── extension.ts
└── test
│ ├── runTest.ts
│ └── suite
│ ├── extension.test.ts
│ └── index.ts
└── tsconfig.json
/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "root":true,
3 | "parser": "@typescript-eslint/parser",
4 | "parserOptions": {
5 | "ecmaVersion": 2018,
6 | "sourceType": "module"
7 | },
8 | "plugins": ["@typescript-eslint"],
9 | "env": {
10 | "browser": true,
11 | "node": true,
12 | "es6": true
13 | },
14 | "extends": [
15 | "eslint:recommended",
16 | "plugin:@typescript-eslint/recommended",
17 | "prettier",
18 | "prettier/@typescript-eslint"
19 | ],
20 | "rules": {
21 | "@typescript-eslint/explicit-function-return-type": 0,
22 | "@typescript-eslint/no-non-null-assertion": 0,
23 | "@typescript-eslint/no-empty-function": 0,
24 | "@typescript-eslint/no-var-requires": 0,
25 | "@typescript-eslint/no-unused-vars": [
26 | "warn",
27 | {
28 | "argsIgnorePattern": "^_"
29 | }
30 | ]
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | out
2 | node_modules
3 | .vscode-test/
4 | *.vsix
5 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | // See http://go.microsoft.com/fwlink/?LinkId=827846
3 | // for the documentation about the extensions.json format
4 | "recommendations": [
5 | "ms-vscode.vscode-typescript-tslint-plugin"
6 | ]
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": "npm: watch"
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": "npm: watch"
34 | }
35 | ]
36 | }
37 |
--------------------------------------------------------------------------------
/.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 | // Turn off tsc task auto detection since we have the necessary tasks as npm scripts
10 | "typescript.tsc.autoDetect": "off"
11 | }
--------------------------------------------------------------------------------
/.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": {
15 | "kind": "build",
16 | "isDefault": true
17 | }
18 | }
19 | ]
20 | }
21 |
--------------------------------------------------------------------------------
/.vscodeignore:
--------------------------------------------------------------------------------
1 | .vscode/**
2 | .vscode-test/**
3 | out/test/**
4 | src/**
5 | .gitignore
6 | **/tslint.json
7 | **/tsconfig.json
8 | **/*.map
9 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 | All notable changes to this project will be documented in this file.
4 |
5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project
6 | adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7 |
8 | ## [0.1.0] - 2019-08-12
9 |
10 | - Initial release.
11 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as
6 | contributors and maintainers pledge to making participation in our project and
7 | our community a harassment-free experience for everyone, regardless of age, body
8 | size, disability, ethnicity, gender identity and expression, level of experience,
9 | education, socio-economic status, nationality, personal appearance, race,
10 | religion, or sexual identity and orientation.
11 |
12 | ## Our Standards
13 |
14 | Examples of behavior that contributes to creating a positive environment
15 | include:
16 |
17 | * Using welcoming and inclusive language
18 | * Being respectful of differing viewpoints and experiences
19 | * Gracefully accepting constructive criticism
20 | * Focusing on what is best for the community
21 | * Showing empathy towards other community members
22 |
23 | Examples of unacceptable behavior by participants include:
24 |
25 | * The use of sexualized language or imagery and unwelcome sexual attention or
26 | advances
27 | * Trolling, insulting/derogatory comments, and personal or political attacks
28 | * Public or private harassment
29 | * Publishing others' private information, such as a physical or electronic
30 | address, without explicit permission
31 | * Other conduct which could reasonably be considered inappropriate in a
32 | professional setting
33 |
34 | ## Our Responsibilities
35 |
36 | Project maintainers are responsible for clarifying the standards of acceptable
37 | behavior and are expected to take appropriate and fair corrective action in
38 | response to any instances of unacceptable behavior.
39 |
40 | Project maintainers have the right and responsibility to remove, edit, or
41 | reject comments, commits, code, wiki edits, issues, and other contributions
42 | that are not aligned to this Code of Conduct, or to ban temporarily or
43 | permanently any contributor for other behaviors that they deem inappropriate,
44 | threatening, offensive, or harmful.
45 |
46 | ## Scope
47 |
48 | This Code of Conduct applies both within project spaces and in public spaces
49 | when an individual is representing the project or its community. Examples of
50 | representing a project or community include using an official project e-mail
51 | address, posting via an official social media account, or acting as an appointed
52 | representative at an online or offline event. Representation of a project may be
53 | further defined and clarified by project maintainers.
54 |
55 | ## Enforcement
56 |
57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
58 | reported by contacting the project team at admin@immutable.rs. All
59 | complaints will be reviewed and investigated and will result in a response that
60 | is deemed necessary and appropriate to the circumstances. The project team is
61 | obligated to maintain confidentiality with regard to the reporter of an incident.
62 | Further details of specific enforcement policies may be posted separately.
63 |
64 | Project maintainers who do not follow or enforce the Code of Conduct in good
65 | faith may face temporary or permanent repercussions as determined by other
66 | members of the project's leadership.
67 |
68 | ## Attribution
69 |
70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72 |
73 | [homepage]: https://www.contributor-covenant.org
74 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | GNU LESSER GENERAL PUBLIC LICENSE
2 | Version 3, 29 June 2007
3 |
4 | Copyright (C) 2007 Free Software Foundation, Inc.
5 | Everyone is permitted to copy and distribute verbatim copies
6 | of this license document, but changing it is not allowed.
7 |
8 |
9 | This version of the GNU Lesser General Public License incorporates
10 | the terms and conditions of version 3 of the GNU General Public
11 | License, supplemented by the additional permissions listed below.
12 |
13 | 0. Additional Definitions.
14 |
15 | As used herein, "this License" refers to version 3 of the GNU Lesser
16 | General Public License, and the "GNU GPL" refers to version 3 of the GNU
17 | General Public License.
18 |
19 | "The Library" refers to a covered work governed by this License,
20 | other than an Application or a Combined Work as defined below.
21 |
22 | An "Application" is any work that makes use of an interface provided
23 | by the Library, but which is not otherwise based on the Library.
24 | Defining a subclass of a class defined by the Library is deemed a mode
25 | of using an interface provided by the Library.
26 |
27 | A "Combined Work" is a work produced by combining or linking an
28 | Application with the Library. The particular version of the Library
29 | with which the Combined Work was made is also called the "Linked
30 | Version".
31 |
32 | The "Minimal Corresponding Source" for a Combined Work means the
33 | Corresponding Source for the Combined Work, excluding any source code
34 | for portions of the Combined Work that, considered in isolation, are
35 | based on the Application, and not on the Linked Version.
36 |
37 | The "Corresponding Application Code" for a Combined Work means the
38 | object code and/or source code for the Application, including any data
39 | and utility programs needed for reproducing the Combined Work from the
40 | Application, but excluding the System Libraries of the Combined Work.
41 |
42 | 1. Exception to Section 3 of the GNU GPL.
43 |
44 | You may convey a covered work under sections 3 and 4 of this License
45 | without being bound by section 3 of the GNU GPL.
46 |
47 | 2. Conveying Modified Versions.
48 |
49 | If you modify a copy of the Library, and, in your modifications, a
50 | facility refers to a function or data to be supplied by an Application
51 | that uses the facility (other than as an argument passed when the
52 | facility is invoked), then you may convey a copy of the modified
53 | version:
54 |
55 | a) under this License, provided that you make a good faith effort to
56 | ensure that, in the event an Application does not supply the
57 | function or data, the facility still operates, and performs
58 | whatever part of its purpose remains meaningful, or
59 |
60 | b) under the GNU GPL, with none of the additional permissions of
61 | this License applicable to that copy.
62 |
63 | 3. Object Code Incorporating Material from Library Header Files.
64 |
65 | The object code form of an Application may incorporate material from
66 | a header file that is part of the Library. You may convey such object
67 | code under terms of your choice, provided that, if the incorporated
68 | material is not limited to numerical parameters, data structure
69 | layouts and accessors, or small macros, inline functions and templates
70 | (ten or fewer lines in length), you do both of the following:
71 |
72 | a) Give prominent notice with each copy of the object code that the
73 | Library is used in it and that the Library and its use are
74 | covered by this License.
75 |
76 | b) Accompany the object code with a copy of the GNU GPL and this license
77 | document.
78 |
79 | 4. Combined Works.
80 |
81 | You may convey a Combined Work under terms of your choice that,
82 | taken together, effectively do not restrict modification of the
83 | portions of the Library contained in the Combined Work and reverse
84 | engineering for debugging such modifications, if you also do each of
85 | the following:
86 |
87 | a) Give prominent notice with each copy of the Combined Work that
88 | the Library is used in it and that the Library and its use are
89 | covered by this License.
90 |
91 | b) Accompany the Combined Work with a copy of the GNU GPL and this license
92 | document.
93 |
94 | c) For a Combined Work that displays copyright notices during
95 | execution, include the copyright notice for the Library among
96 | these notices, as well as a reference directing the user to the
97 | copies of the GNU GPL and this license document.
98 |
99 | d) Do one of the following:
100 |
101 | 0) Convey the Minimal Corresponding Source under the terms of this
102 | License, and the Corresponding Application Code in a form
103 | suitable for, and under terms that permit, the user to
104 | recombine or relink the Application with a modified version of
105 | the Linked Version to produce a modified Combined Work, in the
106 | manner specified by section 6 of the GNU GPL for conveying
107 | Corresponding Source.
108 |
109 | 1) Use a suitable shared library mechanism for linking with the
110 | Library. A suitable mechanism is one that (a) uses at run time
111 | a copy of the Library already present on the user's computer
112 | system, and (b) will operate properly with a modified version
113 | of the Library that is interface-compatible with the Linked
114 | Version.
115 |
116 | e) Provide Installation Information, but only if you would otherwise
117 | be required to provide such information under section 6 of the
118 | GNU GPL, and only to the extent that such information is
119 | necessary to install and execute a modified version of the
120 | Combined Work produced by recombining or relinking the
121 | Application with a modified version of the Linked Version. (If
122 | you use option 4d0, the Installation Information must accompany
123 | the Minimal Corresponding Source and Corresponding Application
124 | Code. If you use option 4d1, you must provide the Installation
125 | Information in the manner specified by section 6 of the GNU GPL
126 | for conveying Corresponding Source.)
127 |
128 | 5. Combined Libraries.
129 |
130 | You may place library facilities that are a work based on the
131 | Library side by side in a single library together with other library
132 | facilities that are not Applications and are not covered by this
133 | License, and convey such a combined library under terms of your
134 | choice, if you do both of the following:
135 |
136 | a) Accompany the combined library with a copy of the same work based
137 | on the Library, uncombined with any other library facilities,
138 | conveyed under the terms of this License.
139 |
140 | b) Give prominent notice with the combined library that part of it
141 | is a work based on the Library, and explaining where to find the
142 | accompanying uncombined form of the same work.
143 |
144 | 6. Revised Versions of the GNU Lesser General Public License.
145 |
146 | The Free Software Foundation may publish revised and/or new versions
147 | of the GNU Lesser General Public License from time to time. Such new
148 | versions will be similar in spirit to the present version, but may
149 | differ in detail to address new problems or concerns.
150 |
151 | Each version is given a distinguishing version number. If the
152 | Library as you received it specifies that a certain numbered version
153 | of the GNU Lesser General Public License "or any later version"
154 | applies to it, you have the option of following the terms and
155 | conditions either of that published version or of any later version
156 | published by the Free Software Foundation. If the Library as you
157 | received it does not specify a version number of the GNU Lesser
158 | General Public License, you may choose any version of the GNU Lesser
159 | General Public License ever published by the Free Software Foundation.
160 |
161 | If the Library as you received it specifies that a proxy can decide
162 | whether future versions of the GNU Lesser General Public License shall
163 | apply, that proxy's public statement of acceptance of any version is
164 | permanent authorization for you to choose that version for the
165 | Library.
166 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # vscode-init-script
2 |
3 | Because sometimes you just want to configure your text editor with a script.
4 |
5 | ## About
6 |
7 | This extension looks for a file called `init.js` or `init.ts` in your `/User`
8 | folder, compiles it if it's a TypeScript file, and then loads it.
9 |
10 | It expects your init script to export a function `init(context: vscode.ExtensionContext)`, which it
11 | will then invoke. From here, you're free to interact with your Code instance through the extension
12 | API.
13 |
14 | You can configure the location of your init script with the `init-script.path` setting. It will be
15 | relative to your user config folder (`~/.config/Code/User` or something similar but platform
16 | dependent), unless you give an absolute path, which can start with `~` to refer to your home
17 | directory. It should be the path to a CommonJS/ES6 module, which means it should _not_ have a file
18 | extension. The default is, simply, `init`. It will prefer `.ts` to `.js` if it finds both.
19 |
20 | ## Example
21 |
22 | Here is a minimal example of what your `init.ts` script might look like:
23 |
24 | ```typescript
25 | import * as vscode from "vscode";
26 |
27 | export function init(context: vscode.ExtensionContext) {
28 | const config = vscode.workspace.getConfiguration();
29 | config.update("workbench.editor.showTabs", false, vscode.ConfigurationTarget.Global);
30 | config.update("editor.minimap.enabled", false, vscode.ConfigurationTarget.Global);
31 | }
32 | ```
33 |
34 | ## Licence
35 |
36 | Copyright 2019 Bodil Stokke
37 |
38 | This program is free software: you can redistribute it and/or modify it under the terms of the GNU
39 | Lesser General Public License as published by the Free Software Foundation, either version 3 of the
40 | License, or (at your option) any later version.
41 |
42 | This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
43 | even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
44 | General Public License for more details.
45 |
46 | You should have received a copy of the GNU Lesser General Public License along with this program. If
47 | not, see https://www.gnu.org/licenses/.
48 |
49 | ## Code of Conduct
50 |
51 | Please note that this project is released with a [Contributor Code of Conduct][coc]. By
52 | participating in this project you agree to abide by its terms.
53 |
54 | [coc]: https://github.com/bodil/vscode-init-script/blob/master/CODE_OF_CONDUCT.md
55 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "init-script",
3 | "version": "0.1.3",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@babel/code-frame": {
8 | "version": "7.10.3",
9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.3.tgz",
10 | "integrity": "sha512-fDx9eNW0qz0WkUeqL6tXEXzVlPh6Y5aCDEZesl0xBGA8ndRukX91Uk44ZqnkECp01NAZUdCAl+aiQNGi0k88Eg==",
11 | "dev": true,
12 | "requires": {
13 | "@babel/highlight": "^7.10.3"
14 | }
15 | },
16 | "@babel/helper-validator-identifier": {
17 | "version": "7.10.3",
18 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.3.tgz",
19 | "integrity": "sha512-bU8JvtlYpJSBPuj1VUmKpFGaDZuLxASky3LhaKj3bmpSTY6VWooSM8msk+Z0CZoErFye2tlABF6yDkT3FOPAXw==",
20 | "dev": true
21 | },
22 | "@babel/highlight": {
23 | "version": "7.10.3",
24 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.3.tgz",
25 | "integrity": "sha512-Ih9B/u7AtgEnySE2L2F0Xm0GaM729XqqLfHkalTsbjXGyqmf/6M0Cu0WpvqueUlW+xk88BHw9Nkpj49naU+vWw==",
26 | "dev": true,
27 | "requires": {
28 | "@babel/helper-validator-identifier": "^7.10.3",
29 | "chalk": "^2.0.0",
30 | "js-tokens": "^4.0.0"
31 | }
32 | },
33 | "@types/color-name": {
34 | "version": "1.1.1",
35 | "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
36 | "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
37 | "dev": true
38 | },
39 | "@types/eslint-visitor-keys": {
40 | "version": "1.0.0",
41 | "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
42 | "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==",
43 | "dev": true
44 | },
45 | "@types/glob": {
46 | "version": "7.1.2",
47 | "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.2.tgz",
48 | "integrity": "sha512-VgNIkxK+j7Nz5P7jvUZlRvhuPSmsEfS03b0alKcq5V/STUKAa3Plemsn5mrQUO7am6OErJ4rhGEGJbACclrtRA==",
49 | "dev": true,
50 | "requires": {
51 | "@types/minimatch": "*",
52 | "@types/node": "*"
53 | }
54 | },
55 | "@types/json-schema": {
56 | "version": "7.0.5",
57 | "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz",
58 | "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==",
59 | "dev": true
60 | },
61 | "@types/minimatch": {
62 | "version": "3.0.3",
63 | "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
64 | "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==",
65 | "dev": true
66 | },
67 | "@types/mocha": {
68 | "version": "7.0.2",
69 | "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-7.0.2.tgz",
70 | "integrity": "sha512-ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w==",
71 | "dev": true
72 | },
73 | "@types/node": {
74 | "version": "14.0.13",
75 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.13.tgz",
76 | "integrity": "sha512-rouEWBImiRaSJsVA+ITTFM6ZxibuAlTuNOCyxVbwreu6k6+ujs7DfnU9o+PShFhET78pMBl3eH+AGSI5eOTkPA=="
77 | },
78 | "@types/user-home": {
79 | "version": "2.0.0",
80 | "resolved": "https://registry.npmjs.org/@types/user-home/-/user-home-2.0.0.tgz",
81 | "integrity": "sha1-F9Sb1zT1gmxvfwasSy71kWL+ZYM="
82 | },
83 | "@types/vscode": {
84 | "version": "1.46.0",
85 | "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.46.0.tgz",
86 | "integrity": "sha512-8m9wPEB2mcRqTWNKs9A9Eqs8DrQZt0qNFO8GkxBOnyW6xR//3s77SoMgb/nY1ctzACsZXwZj3YRTDsn4bAoaUw=="
87 | },
88 | "@typescript-eslint/eslint-plugin": {
89 | "version": "3.3.0",
90 | "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.3.0.tgz",
91 | "integrity": "sha512-Ybx/wU75Tazz6nU2d7nN6ll0B98odoiYLXwcuwS5WSttGzK46t0n7TPRQ4ozwcTv82UY6TQoIvI+sJfTzqK9dQ==",
92 | "dev": true,
93 | "requires": {
94 | "@typescript-eslint/experimental-utils": "3.3.0",
95 | "functional-red-black-tree": "^1.0.1",
96 | "regexpp": "^3.0.0",
97 | "semver": "^7.3.2",
98 | "tsutils": "^3.17.1"
99 | }
100 | },
101 | "@typescript-eslint/experimental-utils": {
102 | "version": "3.3.0",
103 | "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.3.0.tgz",
104 | "integrity": "sha512-d4pGIAbu/tYsrPrdHCQ5xfadJGvlkUxbeBB56nO/VGmEDi/sKmfa5fGty5t5veL1OyJBrUmSiRn1R1qfVDydrg==",
105 | "dev": true,
106 | "requires": {
107 | "@types/json-schema": "^7.0.3",
108 | "@typescript-eslint/typescript-estree": "3.3.0",
109 | "eslint-scope": "^5.0.0",
110 | "eslint-utils": "^2.0.0"
111 | }
112 | },
113 | "@typescript-eslint/parser": {
114 | "version": "3.3.0",
115 | "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.3.0.tgz",
116 | "integrity": "sha512-a7S0Sqn/+RpOOWTcaLw6RD4obsharzxmgMfdK24l364VxuBODXjuJM7ImCkSXEN7oz52aiZbXSbc76+2EsE91w==",
117 | "dev": true,
118 | "requires": {
119 | "@types/eslint-visitor-keys": "^1.0.0",
120 | "@typescript-eslint/experimental-utils": "3.3.0",
121 | "@typescript-eslint/typescript-estree": "3.3.0",
122 | "eslint-visitor-keys": "^1.1.0"
123 | }
124 | },
125 | "@typescript-eslint/typescript-estree": {
126 | "version": "3.3.0",
127 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.3.0.tgz",
128 | "integrity": "sha512-3SqxylENltEvJsjjMSDCUx/edZNSC7wAqifUU1Ywp//0OWEZwMZJfecJud9XxJ/40rAKEbJMKBOQzeOjrLJFzQ==",
129 | "dev": true,
130 | "requires": {
131 | "debug": "^4.1.1",
132 | "eslint-visitor-keys": "^1.1.0",
133 | "glob": "^7.1.6",
134 | "is-glob": "^4.0.1",
135 | "lodash": "^4.17.15",
136 | "semver": "^7.3.2",
137 | "tsutils": "^3.17.1"
138 | },
139 | "dependencies": {
140 | "debug": {
141 | "version": "4.1.1",
142 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
143 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
144 | "dev": true,
145 | "requires": {
146 | "ms": "^2.1.1"
147 | }
148 | }
149 | }
150 | },
151 | "acorn": {
152 | "version": "7.3.1",
153 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz",
154 | "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==",
155 | "dev": true
156 | },
157 | "acorn-jsx": {
158 | "version": "5.2.0",
159 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz",
160 | "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==",
161 | "dev": true
162 | },
163 | "agent-base": {
164 | "version": "4.3.0",
165 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
166 | "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
167 | "dev": true,
168 | "requires": {
169 | "es6-promisify": "^5.0.0"
170 | }
171 | },
172 | "ajv": {
173 | "version": "6.12.2",
174 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
175 | "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
176 | "dev": true,
177 | "requires": {
178 | "fast-deep-equal": "^3.1.1",
179 | "fast-json-stable-stringify": "^2.0.0",
180 | "json-schema-traverse": "^0.4.1",
181 | "uri-js": "^4.2.2"
182 | }
183 | },
184 | "ansi-colors": {
185 | "version": "4.1.1",
186 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
187 | "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
188 | "dev": true
189 | },
190 | "ansi-regex": {
191 | "version": "3.0.0",
192 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
193 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
194 | "dev": true
195 | },
196 | "ansi-styles": {
197 | "version": "3.2.1",
198 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
199 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
200 | "dev": true,
201 | "requires": {
202 | "color-convert": "^1.9.0"
203 | }
204 | },
205 | "anymatch": {
206 | "version": "3.1.1",
207 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
208 | "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
209 | "dev": true,
210 | "requires": {
211 | "normalize-path": "^3.0.0",
212 | "picomatch": "^2.0.4"
213 | }
214 | },
215 | "argparse": {
216 | "version": "1.0.10",
217 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
218 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
219 | "dev": true,
220 | "requires": {
221 | "sprintf-js": "~1.0.2"
222 | }
223 | },
224 | "array.prototype.map": {
225 | "version": "1.0.2",
226 | "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.2.tgz",
227 | "integrity": "sha512-Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw==",
228 | "dev": true,
229 | "requires": {
230 | "define-properties": "^1.1.3",
231 | "es-abstract": "^1.17.0-next.1",
232 | "es-array-method-boxes-properly": "^1.0.0",
233 | "is-string": "^1.0.4"
234 | }
235 | },
236 | "astral-regex": {
237 | "version": "1.0.0",
238 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
239 | "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
240 | "dev": true
241 | },
242 | "balanced-match": {
243 | "version": "1.0.0",
244 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
245 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
246 | "dev": true
247 | },
248 | "binary-extensions": {
249 | "version": "2.0.0",
250 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz",
251 | "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==",
252 | "dev": true
253 | },
254 | "brace-expansion": {
255 | "version": "1.1.11",
256 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
257 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
258 | "dev": true,
259 | "requires": {
260 | "balanced-match": "^1.0.0",
261 | "concat-map": "0.0.1"
262 | }
263 | },
264 | "braces": {
265 | "version": "3.0.2",
266 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
267 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
268 | "dev": true,
269 | "requires": {
270 | "fill-range": "^7.0.1"
271 | }
272 | },
273 | "browser-stdout": {
274 | "version": "1.3.1",
275 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
276 | "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
277 | "dev": true
278 | },
279 | "callsites": {
280 | "version": "3.1.0",
281 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
282 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
283 | "dev": true
284 | },
285 | "camelcase": {
286 | "version": "5.3.1",
287 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
288 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
289 | "dev": true
290 | },
291 | "chalk": {
292 | "version": "2.4.2",
293 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
294 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
295 | "dev": true,
296 | "requires": {
297 | "ansi-styles": "^3.2.1",
298 | "escape-string-regexp": "^1.0.5",
299 | "supports-color": "^5.3.0"
300 | },
301 | "dependencies": {
302 | "supports-color": {
303 | "version": "5.5.0",
304 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
305 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
306 | "dev": true,
307 | "requires": {
308 | "has-flag": "^3.0.0"
309 | }
310 | }
311 | }
312 | },
313 | "chokidar": {
314 | "version": "3.3.1",
315 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz",
316 | "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==",
317 | "dev": true,
318 | "requires": {
319 | "anymatch": "~3.1.1",
320 | "braces": "~3.0.2",
321 | "fsevents": "~2.1.2",
322 | "glob-parent": "~5.1.0",
323 | "is-binary-path": "~2.1.0",
324 | "is-glob": "~4.0.1",
325 | "normalize-path": "~3.0.0",
326 | "readdirp": "~3.3.0"
327 | }
328 | },
329 | "cliui": {
330 | "version": "5.0.0",
331 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
332 | "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
333 | "dev": true,
334 | "requires": {
335 | "string-width": "^3.1.0",
336 | "strip-ansi": "^5.2.0",
337 | "wrap-ansi": "^5.1.0"
338 | },
339 | "dependencies": {
340 | "ansi-regex": {
341 | "version": "4.1.0",
342 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
343 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
344 | "dev": true
345 | },
346 | "string-width": {
347 | "version": "3.1.0",
348 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
349 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
350 | "dev": true,
351 | "requires": {
352 | "emoji-regex": "^7.0.1",
353 | "is-fullwidth-code-point": "^2.0.0",
354 | "strip-ansi": "^5.1.0"
355 | }
356 | },
357 | "strip-ansi": {
358 | "version": "5.2.0",
359 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
360 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
361 | "dev": true,
362 | "requires": {
363 | "ansi-regex": "^4.1.0"
364 | }
365 | }
366 | }
367 | },
368 | "color-convert": {
369 | "version": "1.9.3",
370 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
371 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
372 | "dev": true,
373 | "requires": {
374 | "color-name": "1.1.3"
375 | }
376 | },
377 | "color-name": {
378 | "version": "1.1.3",
379 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
380 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
381 | "dev": true
382 | },
383 | "concat-map": {
384 | "version": "0.0.1",
385 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
386 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
387 | "dev": true
388 | },
389 | "cross-spawn": {
390 | "version": "7.0.3",
391 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
392 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
393 | "dev": true,
394 | "requires": {
395 | "path-key": "^3.1.0",
396 | "shebang-command": "^2.0.0",
397 | "which": "^2.0.1"
398 | }
399 | },
400 | "debug": {
401 | "version": "3.2.6",
402 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
403 | "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
404 | "dev": true,
405 | "requires": {
406 | "ms": "^2.1.1"
407 | }
408 | },
409 | "decamelize": {
410 | "version": "1.2.0",
411 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
412 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
413 | "dev": true
414 | },
415 | "deep-is": {
416 | "version": "0.1.3",
417 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
418 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
419 | "dev": true
420 | },
421 | "define-properties": {
422 | "version": "1.1.3",
423 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
424 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
425 | "dev": true,
426 | "requires": {
427 | "object-keys": "^1.0.12"
428 | }
429 | },
430 | "diff": {
431 | "version": "4.0.2",
432 | "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
433 | "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
434 | "dev": true
435 | },
436 | "doctrine": {
437 | "version": "3.0.0",
438 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
439 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
440 | "dev": true,
441 | "requires": {
442 | "esutils": "^2.0.2"
443 | }
444 | },
445 | "emoji-regex": {
446 | "version": "7.0.3",
447 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
448 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
449 | "dev": true
450 | },
451 | "enquirer": {
452 | "version": "2.3.5",
453 | "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.5.tgz",
454 | "integrity": "sha512-BNT1C08P9XD0vNg3J475yIUG+mVdp9T6towYFHUv897X0KoHBjB1shyrNmhmtHWKP17iSWgo7Gqh7BBuzLZMSA==",
455 | "dev": true,
456 | "requires": {
457 | "ansi-colors": "^3.2.1"
458 | },
459 | "dependencies": {
460 | "ansi-colors": {
461 | "version": "3.2.4",
462 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz",
463 | "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==",
464 | "dev": true
465 | }
466 | }
467 | },
468 | "es-abstract": {
469 | "version": "1.17.6",
470 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz",
471 | "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==",
472 | "dev": true,
473 | "requires": {
474 | "es-to-primitive": "^1.2.1",
475 | "function-bind": "^1.1.1",
476 | "has": "^1.0.3",
477 | "has-symbols": "^1.0.1",
478 | "is-callable": "^1.2.0",
479 | "is-regex": "^1.1.0",
480 | "object-inspect": "^1.7.0",
481 | "object-keys": "^1.1.1",
482 | "object.assign": "^4.1.0",
483 | "string.prototype.trimend": "^1.0.1",
484 | "string.prototype.trimstart": "^1.0.1"
485 | }
486 | },
487 | "es-array-method-boxes-properly": {
488 | "version": "1.0.0",
489 | "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
490 | "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==",
491 | "dev": true
492 | },
493 | "es-get-iterator": {
494 | "version": "1.1.0",
495 | "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.0.tgz",
496 | "integrity": "sha512-UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ==",
497 | "dev": true,
498 | "requires": {
499 | "es-abstract": "^1.17.4",
500 | "has-symbols": "^1.0.1",
501 | "is-arguments": "^1.0.4",
502 | "is-map": "^2.0.1",
503 | "is-set": "^2.0.1",
504 | "is-string": "^1.0.5",
505 | "isarray": "^2.0.5"
506 | }
507 | },
508 | "es-to-primitive": {
509 | "version": "1.2.1",
510 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
511 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
512 | "dev": true,
513 | "requires": {
514 | "is-callable": "^1.1.4",
515 | "is-date-object": "^1.0.1",
516 | "is-symbol": "^1.0.2"
517 | }
518 | },
519 | "es6-promise": {
520 | "version": "4.2.8",
521 | "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
522 | "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
523 | "dev": true
524 | },
525 | "es6-promisify": {
526 | "version": "5.0.0",
527 | "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
528 | "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
529 | "dev": true,
530 | "requires": {
531 | "es6-promise": "^4.0.3"
532 | }
533 | },
534 | "escape-string-regexp": {
535 | "version": "1.0.5",
536 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
537 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
538 | "dev": true
539 | },
540 | "eslint": {
541 | "version": "7.3.0",
542 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.3.0.tgz",
543 | "integrity": "sha512-dJMVXwfU5PT1cj2Nv2VPPrKahKTGdX+5Dh0Q3YuKt+Y2UhdL2YbzsVaBMyG9HC0tBismlv/r1+eZqs6SMIV38Q==",
544 | "dev": true,
545 | "requires": {
546 | "@babel/code-frame": "^7.0.0",
547 | "ajv": "^6.10.0",
548 | "chalk": "^4.0.0",
549 | "cross-spawn": "^7.0.2",
550 | "debug": "^4.0.1",
551 | "doctrine": "^3.0.0",
552 | "enquirer": "^2.3.5",
553 | "eslint-scope": "^5.1.0",
554 | "eslint-utils": "^2.0.0",
555 | "eslint-visitor-keys": "^1.2.0",
556 | "espree": "^7.1.0",
557 | "esquery": "^1.2.0",
558 | "esutils": "^2.0.2",
559 | "file-entry-cache": "^5.0.1",
560 | "functional-red-black-tree": "^1.0.1",
561 | "glob-parent": "^5.0.0",
562 | "globals": "^12.1.0",
563 | "ignore": "^4.0.6",
564 | "import-fresh": "^3.0.0",
565 | "imurmurhash": "^0.1.4",
566 | "is-glob": "^4.0.0",
567 | "js-yaml": "^3.13.1",
568 | "json-stable-stringify-without-jsonify": "^1.0.1",
569 | "levn": "^0.4.1",
570 | "lodash": "^4.17.14",
571 | "minimatch": "^3.0.4",
572 | "natural-compare": "^1.4.0",
573 | "optionator": "^0.9.1",
574 | "progress": "^2.0.0",
575 | "regexpp": "^3.1.0",
576 | "semver": "^7.2.1",
577 | "strip-ansi": "^6.0.0",
578 | "strip-json-comments": "^3.1.0",
579 | "table": "^5.2.3",
580 | "text-table": "^0.2.0",
581 | "v8-compile-cache": "^2.0.3"
582 | },
583 | "dependencies": {
584 | "ansi-regex": {
585 | "version": "5.0.0",
586 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
587 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
588 | "dev": true
589 | },
590 | "ansi-styles": {
591 | "version": "4.2.1",
592 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
593 | "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
594 | "dev": true,
595 | "requires": {
596 | "@types/color-name": "^1.1.1",
597 | "color-convert": "^2.0.1"
598 | }
599 | },
600 | "chalk": {
601 | "version": "4.1.0",
602 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
603 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
604 | "dev": true,
605 | "requires": {
606 | "ansi-styles": "^4.1.0",
607 | "supports-color": "^7.1.0"
608 | }
609 | },
610 | "color-convert": {
611 | "version": "2.0.1",
612 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
613 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
614 | "dev": true,
615 | "requires": {
616 | "color-name": "~1.1.4"
617 | }
618 | },
619 | "color-name": {
620 | "version": "1.1.4",
621 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
622 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
623 | "dev": true
624 | },
625 | "debug": {
626 | "version": "4.1.1",
627 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
628 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
629 | "dev": true,
630 | "requires": {
631 | "ms": "^2.1.1"
632 | }
633 | },
634 | "strip-ansi": {
635 | "version": "6.0.0",
636 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
637 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
638 | "dev": true,
639 | "requires": {
640 | "ansi-regex": "^5.0.0"
641 | }
642 | },
643 | "strip-json-comments": {
644 | "version": "3.1.0",
645 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz",
646 | "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==",
647 | "dev": true
648 | }
649 | }
650 | },
651 | "eslint-config-prettier": {
652 | "version": "6.11.0",
653 | "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz",
654 | "integrity": "sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA==",
655 | "dev": true,
656 | "requires": {
657 | "get-stdin": "^6.0.0"
658 | }
659 | },
660 | "eslint-scope": {
661 | "version": "5.1.0",
662 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz",
663 | "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==",
664 | "dev": true,
665 | "requires": {
666 | "esrecurse": "^4.1.0",
667 | "estraverse": "^4.1.1"
668 | }
669 | },
670 | "eslint-utils": {
671 | "version": "2.1.0",
672 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
673 | "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
674 | "dev": true,
675 | "requires": {
676 | "eslint-visitor-keys": "^1.1.0"
677 | }
678 | },
679 | "eslint-visitor-keys": {
680 | "version": "1.3.0",
681 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
682 | "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
683 | "dev": true
684 | },
685 | "espree": {
686 | "version": "7.1.0",
687 | "resolved": "https://registry.npmjs.org/espree/-/espree-7.1.0.tgz",
688 | "integrity": "sha512-dcorZSyfmm4WTuTnE5Y7MEN1DyoPYy1ZR783QW1FJoenn7RailyWFsq/UL6ZAAA7uXurN9FIpYyUs3OfiIW+Qw==",
689 | "dev": true,
690 | "requires": {
691 | "acorn": "^7.2.0",
692 | "acorn-jsx": "^5.2.0",
693 | "eslint-visitor-keys": "^1.2.0"
694 | }
695 | },
696 | "esprima": {
697 | "version": "4.0.1",
698 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
699 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
700 | "dev": true
701 | },
702 | "esquery": {
703 | "version": "1.3.1",
704 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz",
705 | "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==",
706 | "dev": true,
707 | "requires": {
708 | "estraverse": "^5.1.0"
709 | },
710 | "dependencies": {
711 | "estraverse": {
712 | "version": "5.1.0",
713 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz",
714 | "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==",
715 | "dev": true
716 | }
717 | }
718 | },
719 | "esrecurse": {
720 | "version": "4.2.1",
721 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
722 | "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
723 | "dev": true,
724 | "requires": {
725 | "estraverse": "^4.1.0"
726 | }
727 | },
728 | "estraverse": {
729 | "version": "4.3.0",
730 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
731 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
732 | "dev": true
733 | },
734 | "esutils": {
735 | "version": "2.0.3",
736 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
737 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
738 | "dev": true
739 | },
740 | "fast-deep-equal": {
741 | "version": "3.1.3",
742 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
743 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
744 | "dev": true
745 | },
746 | "fast-json-stable-stringify": {
747 | "version": "2.1.0",
748 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
749 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
750 | "dev": true
751 | },
752 | "fast-levenshtein": {
753 | "version": "2.0.6",
754 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
755 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
756 | "dev": true
757 | },
758 | "file-entry-cache": {
759 | "version": "5.0.1",
760 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
761 | "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
762 | "dev": true,
763 | "requires": {
764 | "flat-cache": "^2.0.1"
765 | }
766 | },
767 | "fill-range": {
768 | "version": "7.0.1",
769 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
770 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
771 | "dev": true,
772 | "requires": {
773 | "to-regex-range": "^5.0.1"
774 | }
775 | },
776 | "find-up": {
777 | "version": "4.1.0",
778 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
779 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
780 | "dev": true,
781 | "requires": {
782 | "locate-path": "^5.0.0",
783 | "path-exists": "^4.0.0"
784 | }
785 | },
786 | "flat": {
787 | "version": "4.1.0",
788 | "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz",
789 | "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==",
790 | "dev": true,
791 | "requires": {
792 | "is-buffer": "~2.0.3"
793 | }
794 | },
795 | "flat-cache": {
796 | "version": "2.0.1",
797 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
798 | "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
799 | "dev": true,
800 | "requires": {
801 | "flatted": "^2.0.0",
802 | "rimraf": "2.6.3",
803 | "write": "1.0.3"
804 | },
805 | "dependencies": {
806 | "rimraf": {
807 | "version": "2.6.3",
808 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
809 | "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
810 | "dev": true,
811 | "requires": {
812 | "glob": "^7.1.3"
813 | }
814 | }
815 | }
816 | },
817 | "flatted": {
818 | "version": "2.0.2",
819 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
820 | "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
821 | "dev": true
822 | },
823 | "fs.realpath": {
824 | "version": "1.0.0",
825 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
826 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
827 | "dev": true
828 | },
829 | "fsevents": {
830 | "version": "2.1.3",
831 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
832 | "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
833 | "dev": true,
834 | "optional": true
835 | },
836 | "function-bind": {
837 | "version": "1.1.1",
838 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
839 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
840 | "dev": true
841 | },
842 | "functional-red-black-tree": {
843 | "version": "1.0.1",
844 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
845 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
846 | "dev": true
847 | },
848 | "get-caller-file": {
849 | "version": "2.0.5",
850 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
851 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
852 | "dev": true
853 | },
854 | "get-stdin": {
855 | "version": "6.0.0",
856 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz",
857 | "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==",
858 | "dev": true
859 | },
860 | "glob": {
861 | "version": "7.1.6",
862 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
863 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
864 | "dev": true,
865 | "requires": {
866 | "fs.realpath": "^1.0.0",
867 | "inflight": "^1.0.4",
868 | "inherits": "2",
869 | "minimatch": "^3.0.4",
870 | "once": "^1.3.0",
871 | "path-is-absolute": "^1.0.0"
872 | }
873 | },
874 | "glob-parent": {
875 | "version": "5.1.1",
876 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
877 | "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
878 | "dev": true,
879 | "requires": {
880 | "is-glob": "^4.0.1"
881 | }
882 | },
883 | "globals": {
884 | "version": "12.4.0",
885 | "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
886 | "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
887 | "dev": true,
888 | "requires": {
889 | "type-fest": "^0.8.1"
890 | }
891 | },
892 | "growl": {
893 | "version": "1.10.5",
894 | "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
895 | "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
896 | "dev": true
897 | },
898 | "has": {
899 | "version": "1.0.3",
900 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
901 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
902 | "dev": true,
903 | "requires": {
904 | "function-bind": "^1.1.1"
905 | }
906 | },
907 | "has-flag": {
908 | "version": "3.0.0",
909 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
910 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
911 | "dev": true
912 | },
913 | "has-symbols": {
914 | "version": "1.0.1",
915 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
916 | "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
917 | "dev": true
918 | },
919 | "he": {
920 | "version": "1.2.0",
921 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
922 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
923 | "dev": true
924 | },
925 | "http-proxy-agent": {
926 | "version": "2.1.0",
927 | "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz",
928 | "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==",
929 | "dev": true,
930 | "requires": {
931 | "agent-base": "4",
932 | "debug": "3.1.0"
933 | },
934 | "dependencies": {
935 | "debug": {
936 | "version": "3.1.0",
937 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
938 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
939 | "dev": true,
940 | "requires": {
941 | "ms": "2.0.0"
942 | }
943 | },
944 | "ms": {
945 | "version": "2.0.0",
946 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
947 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
948 | "dev": true
949 | }
950 | }
951 | },
952 | "https-proxy-agent": {
953 | "version": "2.2.4",
954 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz",
955 | "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==",
956 | "dev": true,
957 | "requires": {
958 | "agent-base": "^4.3.0",
959 | "debug": "^3.1.0"
960 | }
961 | },
962 | "ignore": {
963 | "version": "4.0.6",
964 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
965 | "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
966 | "dev": true
967 | },
968 | "import-fresh": {
969 | "version": "3.2.1",
970 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz",
971 | "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==",
972 | "dev": true,
973 | "requires": {
974 | "parent-module": "^1.0.0",
975 | "resolve-from": "^4.0.0"
976 | }
977 | },
978 | "imurmurhash": {
979 | "version": "0.1.4",
980 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
981 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
982 | "dev": true
983 | },
984 | "inflight": {
985 | "version": "1.0.6",
986 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
987 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
988 | "dev": true,
989 | "requires": {
990 | "once": "^1.3.0",
991 | "wrappy": "1"
992 | }
993 | },
994 | "inherits": {
995 | "version": "2.0.4",
996 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
997 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
998 | "dev": true
999 | },
1000 | "is-arguments": {
1001 | "version": "1.0.4",
1002 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz",
1003 | "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==",
1004 | "dev": true
1005 | },
1006 | "is-binary-path": {
1007 | "version": "2.1.0",
1008 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
1009 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
1010 | "dev": true,
1011 | "requires": {
1012 | "binary-extensions": "^2.0.0"
1013 | }
1014 | },
1015 | "is-buffer": {
1016 | "version": "2.0.4",
1017 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
1018 | "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==",
1019 | "dev": true
1020 | },
1021 | "is-callable": {
1022 | "version": "1.2.0",
1023 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz",
1024 | "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==",
1025 | "dev": true
1026 | },
1027 | "is-date-object": {
1028 | "version": "1.0.2",
1029 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
1030 | "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==",
1031 | "dev": true
1032 | },
1033 | "is-extglob": {
1034 | "version": "2.1.1",
1035 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1036 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
1037 | "dev": true
1038 | },
1039 | "is-fullwidth-code-point": {
1040 | "version": "2.0.0",
1041 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
1042 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
1043 | "dev": true
1044 | },
1045 | "is-glob": {
1046 | "version": "4.0.1",
1047 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
1048 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
1049 | "dev": true,
1050 | "requires": {
1051 | "is-extglob": "^2.1.1"
1052 | }
1053 | },
1054 | "is-map": {
1055 | "version": "2.0.1",
1056 | "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz",
1057 | "integrity": "sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==",
1058 | "dev": true
1059 | },
1060 | "is-number": {
1061 | "version": "7.0.0",
1062 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
1063 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
1064 | "dev": true
1065 | },
1066 | "is-regex": {
1067 | "version": "1.1.0",
1068 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz",
1069 | "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==",
1070 | "dev": true,
1071 | "requires": {
1072 | "has-symbols": "^1.0.1"
1073 | }
1074 | },
1075 | "is-set": {
1076 | "version": "2.0.1",
1077 | "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.1.tgz",
1078 | "integrity": "sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==",
1079 | "dev": true
1080 | },
1081 | "is-string": {
1082 | "version": "1.0.5",
1083 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz",
1084 | "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==",
1085 | "dev": true
1086 | },
1087 | "is-symbol": {
1088 | "version": "1.0.3",
1089 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
1090 | "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
1091 | "dev": true,
1092 | "requires": {
1093 | "has-symbols": "^1.0.1"
1094 | }
1095 | },
1096 | "isarray": {
1097 | "version": "2.0.5",
1098 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
1099 | "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
1100 | "dev": true
1101 | },
1102 | "isexe": {
1103 | "version": "2.0.0",
1104 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1105 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
1106 | "dev": true
1107 | },
1108 | "iterate-iterator": {
1109 | "version": "1.0.1",
1110 | "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz",
1111 | "integrity": "sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw==",
1112 | "dev": true
1113 | },
1114 | "iterate-value": {
1115 | "version": "1.0.2",
1116 | "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz",
1117 | "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==",
1118 | "dev": true,
1119 | "requires": {
1120 | "es-get-iterator": "^1.0.2",
1121 | "iterate-iterator": "^1.0.1"
1122 | }
1123 | },
1124 | "js-tokens": {
1125 | "version": "4.0.0",
1126 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1127 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
1128 | "dev": true
1129 | },
1130 | "js-yaml": {
1131 | "version": "3.13.1",
1132 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
1133 | "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
1134 | "dev": true,
1135 | "requires": {
1136 | "argparse": "^1.0.7",
1137 | "esprima": "^4.0.0"
1138 | }
1139 | },
1140 | "json-schema-traverse": {
1141 | "version": "0.4.1",
1142 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
1143 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
1144 | "dev": true
1145 | },
1146 | "json-stable-stringify-without-jsonify": {
1147 | "version": "1.0.1",
1148 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
1149 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
1150 | "dev": true
1151 | },
1152 | "levn": {
1153 | "version": "0.4.1",
1154 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
1155 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
1156 | "dev": true,
1157 | "requires": {
1158 | "prelude-ls": "^1.2.1",
1159 | "type-check": "~0.4.0"
1160 | }
1161 | },
1162 | "locate-path": {
1163 | "version": "5.0.0",
1164 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
1165 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
1166 | "dev": true,
1167 | "requires": {
1168 | "p-locate": "^4.1.0"
1169 | }
1170 | },
1171 | "lodash": {
1172 | "version": "4.17.15",
1173 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
1174 | "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
1175 | "dev": true
1176 | },
1177 | "log-symbols": {
1178 | "version": "3.0.0",
1179 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz",
1180 | "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==",
1181 | "dev": true,
1182 | "requires": {
1183 | "chalk": "^2.4.2"
1184 | }
1185 | },
1186 | "minimatch": {
1187 | "version": "3.0.4",
1188 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1189 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1190 | "dev": true,
1191 | "requires": {
1192 | "brace-expansion": "^1.1.7"
1193 | }
1194 | },
1195 | "minimist": {
1196 | "version": "1.2.5",
1197 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
1198 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
1199 | "dev": true
1200 | },
1201 | "mkdirp": {
1202 | "version": "0.5.5",
1203 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
1204 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
1205 | "dev": true,
1206 | "requires": {
1207 | "minimist": "^1.2.5"
1208 | }
1209 | },
1210 | "mocha": {
1211 | "version": "8.0.1",
1212 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.0.1.tgz",
1213 | "integrity": "sha512-vefaXfdYI8+Yo8nPZQQi0QO2o+5q9UIMX1jZ1XMmK3+4+CQjc7+B0hPdUeglXiTlr8IHMVRo63IhO9Mzt6fxOg==",
1214 | "dev": true,
1215 | "requires": {
1216 | "ansi-colors": "4.1.1",
1217 | "browser-stdout": "1.3.1",
1218 | "chokidar": "3.3.1",
1219 | "debug": "3.2.6",
1220 | "diff": "4.0.2",
1221 | "escape-string-regexp": "1.0.5",
1222 | "find-up": "4.1.0",
1223 | "glob": "7.1.6",
1224 | "growl": "1.10.5",
1225 | "he": "1.2.0",
1226 | "js-yaml": "3.13.1",
1227 | "log-symbols": "3.0.0",
1228 | "minimatch": "3.0.4",
1229 | "ms": "2.1.2",
1230 | "object.assign": "4.1.0",
1231 | "promise.allsettled": "1.0.2",
1232 | "serialize-javascript": "3.0.0",
1233 | "strip-json-comments": "3.0.1",
1234 | "supports-color": "7.1.0",
1235 | "which": "2.0.2",
1236 | "wide-align": "1.1.3",
1237 | "workerpool": "6.0.0",
1238 | "yargs": "13.3.2",
1239 | "yargs-parser": "13.1.2",
1240 | "yargs-unparser": "1.6.0"
1241 | },
1242 | "dependencies": {
1243 | "ms": {
1244 | "version": "2.1.2",
1245 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1246 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1247 | "dev": true
1248 | }
1249 | }
1250 | },
1251 | "ms": {
1252 | "version": "2.1.1",
1253 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
1254 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
1255 | "dev": true
1256 | },
1257 | "natural-compare": {
1258 | "version": "1.4.0",
1259 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
1260 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
1261 | "dev": true
1262 | },
1263 | "normalize-path": {
1264 | "version": "3.0.0",
1265 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
1266 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
1267 | "dev": true
1268 | },
1269 | "object-inspect": {
1270 | "version": "1.7.0",
1271 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
1272 | "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
1273 | "dev": true
1274 | },
1275 | "object-keys": {
1276 | "version": "1.1.1",
1277 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
1278 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
1279 | "dev": true
1280 | },
1281 | "object.assign": {
1282 | "version": "4.1.0",
1283 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
1284 | "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
1285 | "dev": true,
1286 | "requires": {
1287 | "define-properties": "^1.1.2",
1288 | "function-bind": "^1.1.1",
1289 | "has-symbols": "^1.0.0",
1290 | "object-keys": "^1.0.11"
1291 | }
1292 | },
1293 | "once": {
1294 | "version": "1.4.0",
1295 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1296 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1297 | "dev": true,
1298 | "requires": {
1299 | "wrappy": "1"
1300 | }
1301 | },
1302 | "optionator": {
1303 | "version": "0.9.1",
1304 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
1305 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
1306 | "dev": true,
1307 | "requires": {
1308 | "deep-is": "^0.1.3",
1309 | "fast-levenshtein": "^2.0.6",
1310 | "levn": "^0.4.1",
1311 | "prelude-ls": "^1.2.1",
1312 | "type-check": "^0.4.0",
1313 | "word-wrap": "^1.2.3"
1314 | }
1315 | },
1316 | "os-homedir": {
1317 | "version": "1.0.2",
1318 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
1319 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
1320 | },
1321 | "p-limit": {
1322 | "version": "2.3.0",
1323 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
1324 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
1325 | "dev": true,
1326 | "requires": {
1327 | "p-try": "^2.0.0"
1328 | }
1329 | },
1330 | "p-locate": {
1331 | "version": "4.1.0",
1332 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
1333 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
1334 | "dev": true,
1335 | "requires": {
1336 | "p-limit": "^2.2.0"
1337 | }
1338 | },
1339 | "p-try": {
1340 | "version": "2.2.0",
1341 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
1342 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
1343 | "dev": true
1344 | },
1345 | "parent-module": {
1346 | "version": "1.0.1",
1347 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
1348 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
1349 | "dev": true,
1350 | "requires": {
1351 | "callsites": "^3.0.0"
1352 | }
1353 | },
1354 | "path-exists": {
1355 | "version": "4.0.0",
1356 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
1357 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
1358 | "dev": true
1359 | },
1360 | "path-is-absolute": {
1361 | "version": "1.0.1",
1362 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1363 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
1364 | "dev": true
1365 | },
1366 | "path-key": {
1367 | "version": "3.1.1",
1368 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
1369 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
1370 | "dev": true
1371 | },
1372 | "picomatch": {
1373 | "version": "2.2.2",
1374 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
1375 | "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
1376 | "dev": true
1377 | },
1378 | "prelude-ls": {
1379 | "version": "1.2.1",
1380 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
1381 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
1382 | "dev": true
1383 | },
1384 | "prettier": {
1385 | "version": "2.0.5",
1386 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz",
1387 | "integrity": "sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==",
1388 | "dev": true
1389 | },
1390 | "progress": {
1391 | "version": "2.0.3",
1392 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
1393 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
1394 | "dev": true
1395 | },
1396 | "promise.allsettled": {
1397 | "version": "1.0.2",
1398 | "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.2.tgz",
1399 | "integrity": "sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg==",
1400 | "dev": true,
1401 | "requires": {
1402 | "array.prototype.map": "^1.0.1",
1403 | "define-properties": "^1.1.3",
1404 | "es-abstract": "^1.17.0-next.1",
1405 | "function-bind": "^1.1.1",
1406 | "iterate-value": "^1.0.0"
1407 | }
1408 | },
1409 | "punycode": {
1410 | "version": "2.1.1",
1411 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
1412 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
1413 | "dev": true
1414 | },
1415 | "readdirp": {
1416 | "version": "3.3.0",
1417 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz",
1418 | "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==",
1419 | "dev": true,
1420 | "requires": {
1421 | "picomatch": "^2.0.7"
1422 | }
1423 | },
1424 | "regexpp": {
1425 | "version": "3.1.0",
1426 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz",
1427 | "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==",
1428 | "dev": true
1429 | },
1430 | "require-directory": {
1431 | "version": "2.1.1",
1432 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
1433 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
1434 | "dev": true
1435 | },
1436 | "require-main-filename": {
1437 | "version": "2.0.0",
1438 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
1439 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
1440 | "dev": true
1441 | },
1442 | "resolve-from": {
1443 | "version": "4.0.0",
1444 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
1445 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
1446 | "dev": true
1447 | },
1448 | "rimraf": {
1449 | "version": "2.7.1",
1450 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
1451 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
1452 | "dev": true,
1453 | "requires": {
1454 | "glob": "^7.1.3"
1455 | }
1456 | },
1457 | "semver": {
1458 | "version": "7.3.2",
1459 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
1460 | "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
1461 | "dev": true
1462 | },
1463 | "serialize-javascript": {
1464 | "version": "3.0.0",
1465 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.0.0.tgz",
1466 | "integrity": "sha512-skZcHYw2vEX4bw90nAr2iTTsz6x2SrHEnfxgKYmZlvJYBEZrvbKtobJWlQ20zczKb3bsHHXXTYt48zBA7ni9cw==",
1467 | "dev": true
1468 | },
1469 | "set-blocking": {
1470 | "version": "2.0.0",
1471 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
1472 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
1473 | "dev": true
1474 | },
1475 | "shebang-command": {
1476 | "version": "2.0.0",
1477 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
1478 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
1479 | "dev": true,
1480 | "requires": {
1481 | "shebang-regex": "^3.0.0"
1482 | }
1483 | },
1484 | "shebang-regex": {
1485 | "version": "3.0.0",
1486 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
1487 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
1488 | "dev": true
1489 | },
1490 | "slice-ansi": {
1491 | "version": "2.1.0",
1492 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
1493 | "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
1494 | "dev": true,
1495 | "requires": {
1496 | "ansi-styles": "^3.2.0",
1497 | "astral-regex": "^1.0.0",
1498 | "is-fullwidth-code-point": "^2.0.0"
1499 | }
1500 | },
1501 | "sprintf-js": {
1502 | "version": "1.0.3",
1503 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
1504 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
1505 | "dev": true
1506 | },
1507 | "string-width": {
1508 | "version": "2.1.1",
1509 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
1510 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
1511 | "dev": true,
1512 | "requires": {
1513 | "is-fullwidth-code-point": "^2.0.0",
1514 | "strip-ansi": "^4.0.0"
1515 | }
1516 | },
1517 | "string.prototype.trimend": {
1518 | "version": "1.0.1",
1519 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz",
1520 | "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==",
1521 | "dev": true,
1522 | "requires": {
1523 | "define-properties": "^1.1.3",
1524 | "es-abstract": "^1.17.5"
1525 | }
1526 | },
1527 | "string.prototype.trimstart": {
1528 | "version": "1.0.1",
1529 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz",
1530 | "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==",
1531 | "dev": true,
1532 | "requires": {
1533 | "define-properties": "^1.1.3",
1534 | "es-abstract": "^1.17.5"
1535 | }
1536 | },
1537 | "strip-ansi": {
1538 | "version": "4.0.0",
1539 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
1540 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
1541 | "dev": true,
1542 | "requires": {
1543 | "ansi-regex": "^3.0.0"
1544 | }
1545 | },
1546 | "strip-json-comments": {
1547 | "version": "3.0.1",
1548 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz",
1549 | "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==",
1550 | "dev": true
1551 | },
1552 | "supports-color": {
1553 | "version": "7.1.0",
1554 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
1555 | "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
1556 | "dev": true,
1557 | "requires": {
1558 | "has-flag": "^4.0.0"
1559 | },
1560 | "dependencies": {
1561 | "has-flag": {
1562 | "version": "4.0.0",
1563 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1564 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
1565 | "dev": true
1566 | }
1567 | }
1568 | },
1569 | "table": {
1570 | "version": "5.4.6",
1571 | "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
1572 | "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
1573 | "dev": true,
1574 | "requires": {
1575 | "ajv": "^6.10.2",
1576 | "lodash": "^4.17.14",
1577 | "slice-ansi": "^2.1.0",
1578 | "string-width": "^3.0.0"
1579 | },
1580 | "dependencies": {
1581 | "ansi-regex": {
1582 | "version": "4.1.0",
1583 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
1584 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
1585 | "dev": true
1586 | },
1587 | "string-width": {
1588 | "version": "3.1.0",
1589 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
1590 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
1591 | "dev": true,
1592 | "requires": {
1593 | "emoji-regex": "^7.0.1",
1594 | "is-fullwidth-code-point": "^2.0.0",
1595 | "strip-ansi": "^5.1.0"
1596 | }
1597 | },
1598 | "strip-ansi": {
1599 | "version": "5.2.0",
1600 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
1601 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
1602 | "dev": true,
1603 | "requires": {
1604 | "ansi-regex": "^4.1.0"
1605 | }
1606 | }
1607 | }
1608 | },
1609 | "text-table": {
1610 | "version": "0.2.0",
1611 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
1612 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
1613 | "dev": true
1614 | },
1615 | "to-regex-range": {
1616 | "version": "5.0.1",
1617 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1618 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1619 | "dev": true,
1620 | "requires": {
1621 | "is-number": "^7.0.0"
1622 | }
1623 | },
1624 | "tslib": {
1625 | "version": "1.13.0",
1626 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
1627 | "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
1628 | "dev": true
1629 | },
1630 | "tsutils": {
1631 | "version": "3.17.1",
1632 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz",
1633 | "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==",
1634 | "dev": true,
1635 | "requires": {
1636 | "tslib": "^1.8.1"
1637 | }
1638 | },
1639 | "type-check": {
1640 | "version": "0.4.0",
1641 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
1642 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
1643 | "dev": true,
1644 | "requires": {
1645 | "prelude-ls": "^1.2.1"
1646 | }
1647 | },
1648 | "type-fest": {
1649 | "version": "0.8.1",
1650 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
1651 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
1652 | "dev": true
1653 | },
1654 | "typescript": {
1655 | "version": "3.9.5",
1656 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.5.tgz",
1657 | "integrity": "sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ=="
1658 | },
1659 | "uri-js": {
1660 | "version": "4.2.2",
1661 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
1662 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
1663 | "dev": true,
1664 | "requires": {
1665 | "punycode": "^2.1.0"
1666 | }
1667 | },
1668 | "user-home": {
1669 | "version": "2.0.0",
1670 | "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz",
1671 | "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=",
1672 | "requires": {
1673 | "os-homedir": "^1.0.0"
1674 | }
1675 | },
1676 | "v8-compile-cache": {
1677 | "version": "2.1.1",
1678 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz",
1679 | "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==",
1680 | "dev": true
1681 | },
1682 | "vscode-test": {
1683 | "version": "1.4.0",
1684 | "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-1.4.0.tgz",
1685 | "integrity": "sha512-Jt7HNGvSE0+++Tvtq5wc4hiXLIr2OjDShz/gbAfM/mahQpy4rKBnmOK33D+MR67ATWviQhl+vpmU3p/qwSH/Pg==",
1686 | "dev": true,
1687 | "requires": {
1688 | "http-proxy-agent": "^2.1.0",
1689 | "https-proxy-agent": "^2.2.4",
1690 | "rimraf": "^2.6.3"
1691 | }
1692 | },
1693 | "which": {
1694 | "version": "2.0.2",
1695 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
1696 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
1697 | "dev": true,
1698 | "requires": {
1699 | "isexe": "^2.0.0"
1700 | }
1701 | },
1702 | "which-module": {
1703 | "version": "2.0.0",
1704 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
1705 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
1706 | "dev": true
1707 | },
1708 | "wide-align": {
1709 | "version": "1.1.3",
1710 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
1711 | "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
1712 | "dev": true,
1713 | "requires": {
1714 | "string-width": "^1.0.2 || 2"
1715 | }
1716 | },
1717 | "word-wrap": {
1718 | "version": "1.2.3",
1719 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
1720 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
1721 | "dev": true
1722 | },
1723 | "workerpool": {
1724 | "version": "6.0.0",
1725 | "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.0.tgz",
1726 | "integrity": "sha512-fU2OcNA/GVAJLLyKUoHkAgIhKb0JoCpSjLC/G2vYKxUjVmQwGbRVeoPJ1a8U4pnVofz4AQV5Y/NEw8oKqxEBtA==",
1727 | "dev": true
1728 | },
1729 | "wrap-ansi": {
1730 | "version": "5.1.0",
1731 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
1732 | "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
1733 | "dev": true,
1734 | "requires": {
1735 | "ansi-styles": "^3.2.0",
1736 | "string-width": "^3.0.0",
1737 | "strip-ansi": "^5.0.0"
1738 | },
1739 | "dependencies": {
1740 | "ansi-regex": {
1741 | "version": "4.1.0",
1742 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
1743 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
1744 | "dev": true
1745 | },
1746 | "string-width": {
1747 | "version": "3.1.0",
1748 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
1749 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
1750 | "dev": true,
1751 | "requires": {
1752 | "emoji-regex": "^7.0.1",
1753 | "is-fullwidth-code-point": "^2.0.0",
1754 | "strip-ansi": "^5.1.0"
1755 | }
1756 | },
1757 | "strip-ansi": {
1758 | "version": "5.2.0",
1759 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
1760 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
1761 | "dev": true,
1762 | "requires": {
1763 | "ansi-regex": "^4.1.0"
1764 | }
1765 | }
1766 | }
1767 | },
1768 | "wrappy": {
1769 | "version": "1.0.2",
1770 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1771 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
1772 | "dev": true
1773 | },
1774 | "write": {
1775 | "version": "1.0.3",
1776 | "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
1777 | "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
1778 | "dev": true,
1779 | "requires": {
1780 | "mkdirp": "^0.5.1"
1781 | }
1782 | },
1783 | "y18n": {
1784 | "version": "4.0.0",
1785 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
1786 | "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
1787 | "dev": true
1788 | },
1789 | "yargs": {
1790 | "version": "13.3.2",
1791 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
1792 | "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
1793 | "dev": true,
1794 | "requires": {
1795 | "cliui": "^5.0.0",
1796 | "find-up": "^3.0.0",
1797 | "get-caller-file": "^2.0.1",
1798 | "require-directory": "^2.1.1",
1799 | "require-main-filename": "^2.0.0",
1800 | "set-blocking": "^2.0.0",
1801 | "string-width": "^3.0.0",
1802 | "which-module": "^2.0.0",
1803 | "y18n": "^4.0.0",
1804 | "yargs-parser": "^13.1.2"
1805 | },
1806 | "dependencies": {
1807 | "ansi-regex": {
1808 | "version": "4.1.0",
1809 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
1810 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
1811 | "dev": true
1812 | },
1813 | "find-up": {
1814 | "version": "3.0.0",
1815 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
1816 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
1817 | "dev": true,
1818 | "requires": {
1819 | "locate-path": "^3.0.0"
1820 | }
1821 | },
1822 | "locate-path": {
1823 | "version": "3.0.0",
1824 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
1825 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
1826 | "dev": true,
1827 | "requires": {
1828 | "p-locate": "^3.0.0",
1829 | "path-exists": "^3.0.0"
1830 | }
1831 | },
1832 | "p-locate": {
1833 | "version": "3.0.0",
1834 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
1835 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
1836 | "dev": true,
1837 | "requires": {
1838 | "p-limit": "^2.0.0"
1839 | }
1840 | },
1841 | "path-exists": {
1842 | "version": "3.0.0",
1843 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
1844 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
1845 | "dev": true
1846 | },
1847 | "string-width": {
1848 | "version": "3.1.0",
1849 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
1850 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
1851 | "dev": true,
1852 | "requires": {
1853 | "emoji-regex": "^7.0.1",
1854 | "is-fullwidth-code-point": "^2.0.0",
1855 | "strip-ansi": "^5.1.0"
1856 | }
1857 | },
1858 | "strip-ansi": {
1859 | "version": "5.2.0",
1860 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
1861 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
1862 | "dev": true,
1863 | "requires": {
1864 | "ansi-regex": "^4.1.0"
1865 | }
1866 | }
1867 | }
1868 | },
1869 | "yargs-parser": {
1870 | "version": "13.1.2",
1871 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
1872 | "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
1873 | "dev": true,
1874 | "requires": {
1875 | "camelcase": "^5.0.0",
1876 | "decamelize": "^1.2.0"
1877 | }
1878 | },
1879 | "yargs-unparser": {
1880 | "version": "1.6.0",
1881 | "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz",
1882 | "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==",
1883 | "dev": true,
1884 | "requires": {
1885 | "flat": "^4.1.0",
1886 | "lodash": "^4.17.15",
1887 | "yargs": "^13.3.0"
1888 | }
1889 | }
1890 | }
1891 | }
1892 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "init-script",
3 | "publisher": "bodil",
4 | "displayName": "Init Script",
5 | "description": "Load and run a configuration script when VS Code launches",
6 | "version": "0.1.3",
7 | "license": "LGPL-3.0+",
8 | "author": {
9 | "name": "Bodil Stokke",
10 | "url": "https://bodil.lol/"
11 | },
12 | "repository": {
13 | "type": "git",
14 | "url": "https://github.com/bodil/vscode-init-script"
15 | },
16 | "engines": {
17 | "vscode": "^1.46.0"
18 | },
19 | "categories": [
20 | "Other"
21 | ],
22 | "keywords": [
23 | "emacsrc",
24 | "vimrc"
25 | ],
26 | "activationEvents": [
27 | "*"
28 | ],
29 | "contributes": {
30 | "configuration": [
31 | {
32 | "title": "Init Script",
33 | "properties": {
34 | "init-script.path": {
35 | "type": "string",
36 | "default": "init",
37 | "markdownDescription": "Path to the init script *without* a `.js` or `.ts` extension, relative to your Code user config directory, or an absolute path. `~` expands to your home directory."
38 | }
39 | }
40 | }
41 | ],
42 | "commands": [
43 | {
44 | "command": "init-script.openInitScript",
45 | "title": "Init Script: Open Init Script"
46 | }
47 | ]
48 | },
49 | "main": "./out/extension.js",
50 | "scripts": {
51 | "vscode:prepublish": "npm run compile",
52 | "compile": "tsc -p ./",
53 | "watch": "tsc -watch -p ./",
54 | "pretest": "npm run compile",
55 | "test": "node ./out/test/runTest.js"
56 | },
57 | "dependencies": {
58 | "@types/node": "^14.0.13",
59 | "@types/user-home": "^2.0.0",
60 | "@types/vscode": "^1.46.0",
61 | "typescript": "^3.9.5",
62 | "user-home": "^2.0.0"
63 | },
64 | "devDependencies": {
65 | "@types/glob": "^7.1.2",
66 | "@types/mocha": "^7.0.2",
67 | "@typescript-eslint/eslint-plugin": "^3.3.0",
68 | "@typescript-eslint/parser": "^3.3.0",
69 | "eslint": "^7.3.0",
70 | "eslint-config-prettier": "^6.11.0",
71 | "glob": "^7.1.6",
72 | "mocha": "^8.0.1",
73 | "prettier": "^2.0.5",
74 | "vscode-test": "^1.4.0"
75 | }
76 | }
77 |
--------------------------------------------------------------------------------
/src/compiler.ts:
--------------------------------------------------------------------------------
1 | import * as vscode from "vscode";
2 | import * as Path from "path";
3 | import * as TypeScript from "typescript";
4 |
5 | function readConfig(
6 | path: string,
7 | defaultOpts: TypeScript.CompilerOptions
8 | ): TypeScript.CompilerOptions {
9 | let basePath = Path.dirname(path);
10 |
11 | const configPath = TypeScript.findConfigFile(
12 | basePath,
13 | TypeScript.sys.fileExists,
14 | "tsconfig.json"
15 | );
16 | if (!configPath || !TypeScript.sys.fileExists(configPath)) {
17 | return defaultOpts;
18 | }
19 | basePath = Path.dirname(configPath);
20 | const configFile = TypeScript.readConfigFile(configPath, TypeScript.sys.readFile);
21 | if (configFile.error) {
22 | throw new Error(configFile.error.toString());
23 | }
24 | const { options, errors } = TypeScript.convertCompilerOptionsFromJson(
25 | configFile.config.compilerOptions,
26 | basePath
27 | );
28 | if (errors && errors.length) {
29 | console.log(errors);
30 | throw new Error(errors.map((e) => e.messageText).join("\n"));
31 | }
32 | return Object.assign(defaultOpts, options);
33 | }
34 |
35 | export function compile(entry: string, output: string): void {
36 | const options = readConfig(entry, {
37 | module: TypeScript.ModuleKind.CommonJS,
38 | target: TypeScript.ScriptTarget.ES2015,
39 | lib: ["lib.es2015.d.ts"],
40 | sourceMap: true,
41 | declaration: true,
42 | noEmitOnError: true,
43 | noImplicitAny: true,
44 | });
45 | options.outDir = output; // must always override this!
46 |
47 | const program = TypeScript.createProgram([entry], options);
48 | const emitResult = program.emit();
49 |
50 | const allDiagnostics = TypeScript.getPreEmitDiagnostics(program).concat(emitResult.diagnostics);
51 |
52 | allDiagnostics.forEach((diagnostic) => {
53 | let error;
54 | if (diagnostic.file) {
55 | const { line, character } = diagnostic.file.getLineAndCharacterOfPosition(
56 | diagnostic.start!
57 | );
58 | const message = TypeScript.flattenDiagnosticMessageText(diagnostic.messageText, "\n");
59 | error = `${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`;
60 | } else {
61 | error = `${TypeScript.flattenDiagnosticMessageText(diagnostic.messageText, "\n")}`;
62 | }
63 | vscode.window.showErrorMessage(error);
64 | console.log(error);
65 | });
66 |
67 | if (emitResult.emitSkipped) {
68 | const message = `TypeScript compiler failed on "${entry}"`;
69 | vscode.window.showErrorMessage(message);
70 | throw new Error(message);
71 | }
72 | }
73 |
--------------------------------------------------------------------------------
/src/extension.ts:
--------------------------------------------------------------------------------
1 | import * as vscode from "vscode";
2 | import * as Path from "path";
3 | import * as Home from "user-home";
4 |
5 | import * as compiler from "./compiler";
6 |
7 | const Fs = vscode.workspace.fs;
8 |
9 | function present(path: string): Promise {
10 | return new Promise((resolve, _reject) => {
11 | Fs.stat(vscode.Uri.file(path)).then(
12 | (stat) => resolve(!!stat),
13 | (_err) => resolve(false)
14 | );
15 | });
16 | }
17 |
18 | async function resolveModule(path: string): Promise<[string, string]> {
19 | const tsPath = Path.resolve(path, `${path}.ts`);
20 | const moduleName = Path.basename(path);
21 | if (!(await present(tsPath))) {
22 | return [path, `${moduleName}.js`];
23 | }
24 | const tsTarget = Path.resolve(Path.dirname(path), "ts_compiled");
25 | compiler.compile(tsPath, tsTarget);
26 | return [Path.resolve(tsTarget, moduleName), `${moduleName}.ts`];
27 | }
28 |
29 | function getInitScriptPath(storagePath: string): string {
30 | const config = vscode.workspace.getConfiguration("init-script");
31 | let scriptSetting: string = config.get("path") || "init";
32 | if (scriptSetting.startsWith("~")) {
33 | scriptSetting = Home + scriptSetting.slice(1);
34 | }
35 | return Path.resolve(storagePath, scriptSetting);
36 | }
37 |
38 | async function runInitFile(context: vscode.ExtensionContext, storagePath: string) {
39 | const [modulePath, moduleName] = await resolveModule(getInitScriptPath(storagePath));
40 | try {
41 | const init = require(modulePath);
42 | init.init(context);
43 | } catch (err) {
44 | vscode.window.showErrorMessage(`\`${moduleName}\` failed to load: ${err}`);
45 | throw err;
46 | }
47 | }
48 |
49 | async function openInitScript(context: vscode.ExtensionContext) {
50 | const storagePath = Path.resolve(context.globalStoragePath, "../..");
51 | const path = getInitScriptPath(storagePath);
52 | const tsPath = Path.resolve(path, `${path}.ts`);
53 | let scriptPath;
54 | if (await present(tsPath)) {
55 | scriptPath = tsPath;
56 | } else {
57 | scriptPath = Path.resolve(path, `${path}.js`);
58 | }
59 | const doc = await vscode.workspace.openTextDocument(scriptPath);
60 | await vscode.window.showTextDocument(doc);
61 | }
62 |
63 | export function activate(context: vscode.ExtensionContext): void {
64 | const storagePath = Path.resolve(context.globalStoragePath, "../..");
65 | context.subscriptions.push(
66 | vscode.commands.registerCommand("init-script.openInitScript", () => openInitScript(context))
67 | );
68 | runInitFile(context, storagePath);
69 | }
70 |
71 | export function deactivate(): void {}
72 |
--------------------------------------------------------------------------------
/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/extension.test.ts:
--------------------------------------------------------------------------------
1 | import * as assert from 'assert';
2 | import { before } from 'mocha';
3 |
4 | // You can import and use all API from the 'vscode' module
5 | // as well as import your extension to test it
6 | import * as vscode from 'vscode';
7 | // import * as myExtension from '../extension';
8 |
9 | suite('Extension Test Suite', () => {
10 | before(() => {
11 | vscode.window.showInformationMessage('Start all tests.');
12 | });
13 |
14 | test('Sample test', () => {
15 | assert.equal(-1, [1, 2, 3].indexOf(5));
16 | assert.equal(-1, [1, 2, 3].indexOf(0));
17 | });
18 | });
19 |
--------------------------------------------------------------------------------
/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 | "strict": true /* enable all strict type-checking options */
12 | /* Additional Checks */
13 | // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
14 | // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
15 | // "noUnusedParameters": true, /* Report errors on unused parameters. */
16 | },
17 | "exclude": [
18 | "node_modules",
19 | ".vscode-test"
20 | ]
21 | }
--------------------------------------------------------------------------------