├── .DS_Store
├── .eslintrc.json
├── .gitignore
├── .gitmodules
├── .vscode
├── extensions.json
├── launch.json
└── tasks.json
├── .vscodeignore
├── CHANGELOG.md
├── LICENSE
├── README.md
├── expose-github-copilot-http-api-0.2.0.vsix
├── hack-extension.js
├── icon.png
├── package.json
├── src
├── extension.ts
└── test
│ ├── runTest.ts
│ └── suite
│ ├── extension.test.ts
│ └── index.ts
├── tsconfig.json
├── yarn.lock
└── yn-github-copilot.js
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/purocean/expose-github-copilot-http-api/2df2a5c0000bdfa9af5b0c34a920623683693e11/.DS_Store
--------------------------------------------------------------------------------
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "root": true,
3 | "parser": "@typescript-eslint/parser",
4 | "parserOptions": {
5 | "ecmaVersion": 6,
6 | "sourceType": "module"
7 | },
8 | "plugins": [
9 | "@typescript-eslint"
10 | ],
11 | "rules": {
12 | "@typescript-eslint/class-name-casing": "warn",
13 | "@typescript-eslint/semi": "warn",
14 | "curly": "warn",
15 | "eqeqeq": "warn",
16 | "no-throw-literal": "warn",
17 | "semi": "off"
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | *.log
3 | .vscode/settings.json
4 | out
5 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "drawio"]
2 | path = drawio
3 | url = https://github.com/jgraph/drawio.git
4 |
--------------------------------------------------------------------------------
/.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 | "dbaeumer.vscode-eslint"
6 | ]
7 | }
8 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | // A launch configuration that compiles the extension and then opens it inside a new window
2 | // Use IntelliSense to learn about possible attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | {
6 | "version": "0.2.0",
7 | "configurations": [
8 | {
9 | "name": "Run Extension",
10 | "type": "extensionHost",
11 | "request": "launch",
12 | "runtimeExecutable": "${execPath}",
13 | "args": [
14 | "--extensionDevelopmentPath=${workspaceFolder}"
15 | ],
16 | "outFiles": [
17 | "${workspaceFolder}/out/**/*.js"
18 | ],
19 | "preLaunchTask": "${defaultBuildTask}"
20 | },
21 | {
22 | "name": "Extension Tests",
23 | "type": "extensionHost",
24 | "request": "launch",
25 | "runtimeExecutable": "${execPath}",
26 | "args": [
27 | "--extensionDevelopmentPath=${workspaceFolder}",
28 | "--extensionTestsPath=${workspaceFolder}/out/test/suite/index"
29 | ],
30 | "outFiles": [
31 | "${workspaceFolder}/out/test/**/*.js"
32 | ],
33 | "preLaunchTask": "${defaultBuildTask}"
34 | }
35 | ]
36 | }
37 |
--------------------------------------------------------------------------------
/.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 | vsc-extension-quickstart.md
7 | **/tsconfig.json
8 | **/.eslintrc.json
9 | **/*.map
10 | **/*.ts
11 | yn-github-copilot.js
12 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/purocean/expose-github-copilot-http-api/2df2a5c0000bdfa9af5b0c34a920623683693e11/CHANGELOG.md
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 洋子
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # expose-github-copilot-http-api
2 |
3 | 将 VSCode 中的 Github Copilot 转化成 HTTP 接口,方便在其他场景使用。
4 |
5 | 参考文章:https://blog-purocean.vercel.app/hack-github-copilot/
6 |
7 | > [!NOTE]
8 | > 现在而今眼目下,Gthub Copilot 开放了很多,比如可以通过 https://www.npmjs.com/package/@github/copilot-language-server 来接入,本方法虽然可用(2025-02-12),但不建议再使用了
9 |
10 |
11 |
12 | ## Yank Note
13 |
14 | Yank Note 的 AI Copilot 扩展已自带这个适配器,破解后,直接填上地址即可工作
15 |
16 |
17 |
--------------------------------------------------------------------------------
/expose-github-copilot-http-api-0.2.0.vsix:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/purocean/expose-github-copilot-http-api/2df2a5c0000bdfa9af5b0c34a920623683693e11/expose-github-copilot-http-api-0.2.0.vsix
--------------------------------------------------------------------------------
/hack-extension.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs');
2 | const path = process.argv[2];
3 |
4 | const js = fs.readFileSync(path, 'utf8');
5 |
6 | const matches = js.match(/\(([a-zA-Z]+),"VSCodeCopilotExtensionApi"\)/);
7 | if (!matches) {
8 | throw new Error('Could not find extension api constructor [calculateInlineCompletions]');
9 | }
10 |
11 | const apiName = matches[1];
12 | const apiReg = new RegExp(`var ${apiName}=class ${apiName}\\{constructor\\([a-zA-Z]\\)\\{this.ctx=`);
13 |
14 | if (!fs.existsSync(path + '.bak')) {
15 | fs.copyFileSync(path, path + '.bak');
16 | }
17 |
18 | if (!apiReg.test(js)) {
19 | throw new Error('Could not find extension api constructor [apiReg]');
20 | }
21 |
22 | const replaced = js.replace(apiReg, (match) => {
23 | if (!match.includes('this.ctx=')) {
24 | throw new Error('Could not find extension api constructor [this.ctx=]');
25 | }
26 |
27 | const matches = js.match(/\(([a-zA-Z0-9]+),"calculateInlineCompletions"\)/);
28 | if (!matches) {
29 | throw new Error('Could not find extension api constructor [calculateInlineCompletions]');
30 | }
31 |
32 | const name = matches[1];
33 |
34 | return match.replace('this.ctx=', `this.calculateInlineCompletions=${name};this.ctx=`);
35 | });
36 |
37 |
38 | fs.writeFileSync(path, replaced, 'utf8');
39 |
40 | console.log(`replace ${path}`, js.length, replaced.length);
41 |
--------------------------------------------------------------------------------
/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/purocean/expose-github-copilot-http-api/2df2a5c0000bdfa9af5b0c34a920623683693e11/icon.png
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "expose-github-copilot-http-api",
3 | "displayName": "expose-github-copilot-http-api",
4 | "description": "expose-github-copilot-http-api",
5 | "version": "0.2.0",
6 | "license": "MIT",
7 | "publisher": "purocean",
8 | "bugs": {
9 | "url": "https://github.com/purocean/vscode-expose-github-copilot-http-api/issues"
10 | },
11 | "homepage": "https://github.com/purocean/vscode-expose-github-copilot-http-api",
12 | "repository": {
13 | "type": "git",
14 | "url": "https://github.com/purocean/vscode-expose-github-copilot-http-api.git"
15 | },
16 | "engines": {
17 | "vscode": "^1.84.1"
18 | },
19 | "icon": "icon.png",
20 | "categories": [
21 | "Other"
22 | ],
23 | "activationEvents": [
24 | "onStartupFinished"
25 | ],
26 | "main": "./out/extension.js",
27 | "extensionDependencies": ["github.copilot"],
28 | "contributes": {},
29 | "scripts": {
30 | "vscode:prepublish": "yarn run compile",
31 | "compile": "tsc -p ./",
32 | "lint": "eslint src --ext ts",
33 | "watch": "tsc -watch -p ./",
34 | "pretest": "yarn run compile && yarn run lint",
35 | "test": "node ./out/test/runTest.js"
36 | },
37 | "devDependencies": {
38 | "@types/glob": "^7.1.1",
39 | "@types/mocha": "^7.0.1",
40 | "@types/node": "^12.11.7",
41 | "@types/vscode": "^1.84.1",
42 | "@typescript-eslint/eslint-plugin": "^2.18.0",
43 | "@typescript-eslint/parser": "^2.18.0",
44 | "eslint": "^6.8.0",
45 | "glob": "^7.1.6",
46 | "mocha": "^7.0.1",
47 | "typescript": "^5.2.2",
48 | "vscode-test": "^1.3.0"
49 | },
50 | "dependencies": {
51 | "express": "^4.18.2"
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/src/extension.ts:
--------------------------------------------------------------------------------
1 | import * as vscode from 'vscode';
2 |
3 | export function activate(context: vscode.ExtensionContext) {
4 | const express = require('express');
5 | const app = express();
6 | app.use(express.json());
7 | const port = 3223;
8 |
9 | const copilot = vscode.extensions.getExtension('github.copilot');
10 |
11 | let inputContent = '';
12 |
13 | app.post('/calculateInlineCompletions', async (req: any, res: any) => {
14 | if (!copilot?.isActive || !copilot.exports || !copilot.exports.calculateInlineCompletions) {
15 | res.status(500);
16 | res.send({message: 'Copilot is not active or not be hacked'});
17 | return;
18 | }
19 |
20 | const { content, language, line, column, triggerKind } = req.body || {};
21 |
22 | if (!content || !language || typeof line !== 'number' || typeof column !== 'number') {
23 | res.status(400);
24 | res.send({message: 'Missing required parameters: content, language, line, column'});
25 | return;
26 | }
27 |
28 | inputContent = content;
29 |
30 | const api = copilot.exports;
31 |
32 | const uri = vscode.Uri.parse('expose-github-copilot-http-api:tmp-file-' + Date.now());
33 | const document = await vscode.workspace.openTextDocument(uri);
34 | await vscode.languages.setTextDocumentLanguage(document, language);
35 | const position = new vscode.Position(line, column);
36 | const cancellation = new vscode.CancellationTokenSource();
37 | const completionContext = {
38 | triggerKind: triggerKind ?? vscode.InlineCompletionTriggerKind.Automatic,
39 | };
40 |
41 | const completions = await api.calculateInlineCompletions(
42 | api.ctx,
43 | document,
44 | position,
45 | completionContext,
46 | cancellation.token
47 | );
48 |
49 | if (completions && completions.type === 'success') {
50 | const items = completions.value.map(({ telemetry, command, ...rest }: any) => rest);
51 | res.send({ type: 'success', items });
52 | } else {
53 | res.send(completions);
54 | }
55 | });
56 |
57 | app.listen(port, () => {
58 | console.log(`App listening on port ${port}`);
59 | });
60 |
61 | const myProvider = new (class implements vscode.TextDocumentContentProvider {
62 | provideTextDocumentContent(uri: vscode.Uri): string {
63 | return inputContent;
64 | }
65 | })();
66 |
67 | vscode.workspace.onDidCloseTextDocument((e) => {
68 | console.log("onDidCloseTextDocument", e.uri.toString());
69 | });
70 |
71 |
72 | vscode.workspace.registerTextDocumentContentProvider('expose-github-copilot-http-api', myProvider);
73 | }
74 |
--------------------------------------------------------------------------------
/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 |
3 | // You can import and use all API from the 'vscode' module
4 | // as well as import your extension to test it
5 | import * as vscode from 'vscode';
6 | // import * as myExtension from '../extension';
7 |
8 | suite('Extension Test Suite', () => {
9 | vscode.window.showInformationMessage('Start all tests.');
10 |
11 | test('Sample test', () => {
12 | assert.equal(-1, [1, 2, 3].indexOf(5));
13 | assert.equal(-1, [1, 2, 3].indexOf(0));
14 | });
15 | });
16 |
--------------------------------------------------------------------------------
/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 | console.error(err);
34 | e(err);
35 | }
36 | });
37 | });
38 | }
39 |
--------------------------------------------------------------------------------
/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 | }
22 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@babel/code-frame@^7.0.0":
6 | version "7.8.3"
7 | resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e"
8 | dependencies:
9 | "@babel/highlight" "^7.8.3"
10 |
11 | "@babel/highlight@^7.8.3":
12 | version "7.8.3"
13 | resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797"
14 | dependencies:
15 | chalk "^2.0.0"
16 | esutils "^2.0.2"
17 | js-tokens "^4.0.0"
18 |
19 | "@types/color-name@^1.1.1":
20 | version "1.1.1"
21 | resolved "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
22 |
23 | "@types/eslint-visitor-keys@^1.0.0":
24 | version "1.0.0"
25 | resolved "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d"
26 |
27 | "@types/events@*":
28 | version "3.0.0"
29 | resolved "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7"
30 |
31 | "@types/glob@^7.1.1":
32 | version "7.1.1"
33 | resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575"
34 | dependencies:
35 | "@types/events" "*"
36 | "@types/minimatch" "*"
37 | "@types/node" "*"
38 |
39 | "@types/json-schema@^7.0.3":
40 | version "7.0.4"
41 | resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339"
42 |
43 | "@types/minimatch@*":
44 | version "3.0.3"
45 | resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
46 |
47 | "@types/mocha@^7.0.1":
48 | version "7.0.2"
49 | resolved "https://registry.npmjs.org/@types/mocha/-/mocha-7.0.2.tgz#b17f16cf933597e10d6d78eae3251e692ce8b0ce"
50 |
51 | "@types/node@*":
52 | version "13.9.0"
53 | resolved "https://registry.npmjs.org/@types/node/-/node-13.9.0.tgz#5b6ee7a77faacddd7de719017d0bc12f52f81589"
54 |
55 | "@types/node@^12.11.7":
56 | version "12.12.29"
57 | resolved "https://registry.npmjs.org/@types/node/-/node-12.12.29.tgz#46275f028b4e463b9ac5fefc1d08bc66cc193f25"
58 |
59 | "@types/vscode@^1.84.1":
60 | version "1.84.1"
61 | resolved "https://registry.npmmirror.com/@types/vscode/-/vscode-1.84.1.tgz#2e89dc074743737209f1769f7e7762499edaca71"
62 | integrity sha512-DB10vBRLEPA/us7p3gQilU2Tq5HDu6JWTyCpD9qtb7MKWIvJS5In9HU3YgVGCXf/miwHJiY62aXwjtUSMpT8HA==
63 |
64 | "@typescript-eslint/eslint-plugin@^2.18.0":
65 | version "2.22.0"
66 | resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.22.0.tgz#218ce6d4aa0244c6a40baba39ca1e021b26bb017"
67 | dependencies:
68 | "@typescript-eslint/experimental-utils" "2.22.0"
69 | eslint-utils "^1.4.3"
70 | functional-red-black-tree "^1.0.1"
71 | regexpp "^3.0.0"
72 | tsutils "^3.17.1"
73 |
74 | "@typescript-eslint/experimental-utils@2.22.0":
75 | version "2.22.0"
76 | resolved "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.22.0.tgz#4d00c91fbaaa68e56e7869be284999a265707f85"
77 | dependencies:
78 | "@types/json-schema" "^7.0.3"
79 | "@typescript-eslint/typescript-estree" "2.22.0"
80 | eslint-scope "^5.0.0"
81 |
82 | "@typescript-eslint/parser@^2.18.0":
83 | version "2.22.0"
84 | resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.22.0.tgz#8eeb6cb6de873f655e64153397d4790898e149d0"
85 | dependencies:
86 | "@types/eslint-visitor-keys" "^1.0.0"
87 | "@typescript-eslint/experimental-utils" "2.22.0"
88 | "@typescript-eslint/typescript-estree" "2.22.0"
89 | eslint-visitor-keys "^1.1.0"
90 |
91 | "@typescript-eslint/typescript-estree@2.22.0":
92 | version "2.22.0"
93 | resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.22.0.tgz#a16ed45876abf743e1f5857e2f4a1c3199fd219e"
94 | dependencies:
95 | debug "^4.1.1"
96 | eslint-visitor-keys "^1.1.0"
97 | glob "^7.1.6"
98 | is-glob "^4.0.1"
99 | lodash "^4.17.15"
100 | semver "^6.3.0"
101 | tsutils "^3.17.1"
102 |
103 | accepts@~1.3.8:
104 | version "1.3.8"
105 | resolved "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
106 | integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
107 | dependencies:
108 | mime-types "~2.1.34"
109 | negotiator "0.6.3"
110 |
111 | acorn-jsx@^5.2.0:
112 | version "5.2.0"
113 | resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe"
114 |
115 | acorn@^7.1.0:
116 | version "7.1.1"
117 | resolved "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf"
118 |
119 | agent-base@4, agent-base@^4.3.0:
120 | version "4.3.0"
121 | resolved "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee"
122 | dependencies:
123 | es6-promisify "^5.0.0"
124 |
125 | ajv@^6.10.0, ajv@^6.10.2:
126 | version "6.12.6"
127 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
128 | dependencies:
129 | fast-deep-equal "^3.1.1"
130 | fast-json-stable-stringify "^2.0.0"
131 | json-schema-traverse "^0.4.1"
132 | uri-js "^4.2.2"
133 |
134 | ansi-colors@3.2.3:
135 | version "3.2.3"
136 | resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813"
137 |
138 | ansi-escapes@^4.2.1:
139 | version "4.3.1"
140 | resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61"
141 | dependencies:
142 | type-fest "^0.11.0"
143 |
144 | ansi-regex@^3.0.0:
145 | version "3.0.1"
146 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1"
147 |
148 | ansi-regex@^4.1.0:
149 | version "4.1.0"
150 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
151 |
152 | ansi-regex@^5.0.0:
153 | version "5.0.0"
154 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
155 |
156 | ansi-styles@^3.2.0, ansi-styles@^3.2.1:
157 | version "3.2.1"
158 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
159 | dependencies:
160 | color-convert "^1.9.0"
161 |
162 | ansi-styles@^4.1.0:
163 | version "4.2.1"
164 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359"
165 | dependencies:
166 | "@types/color-name" "^1.1.1"
167 | color-convert "^2.0.1"
168 |
169 | anymatch@~3.1.1:
170 | version "3.1.1"
171 | resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
172 | dependencies:
173 | normalize-path "^3.0.0"
174 | picomatch "^2.0.4"
175 |
176 | argparse@^1.0.7:
177 | version "1.0.10"
178 | resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
179 | dependencies:
180 | sprintf-js "~1.0.2"
181 |
182 | array-flatten@1.1.1:
183 | version "1.1.1"
184 | resolved "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
185 | integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==
186 |
187 | astral-regex@^1.0.0:
188 | version "1.0.0"
189 | resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
190 |
191 | balanced-match@^1.0.0:
192 | version "1.0.0"
193 | resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
194 |
195 | binary-extensions@^2.0.0:
196 | version "2.0.0"
197 | resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c"
198 |
199 | body-parser@1.20.1:
200 | version "1.20.1"
201 | resolved "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668"
202 | integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==
203 | dependencies:
204 | bytes "3.1.2"
205 | content-type "~1.0.4"
206 | debug "2.6.9"
207 | depd "2.0.0"
208 | destroy "1.2.0"
209 | http-errors "2.0.0"
210 | iconv-lite "0.4.24"
211 | on-finished "2.4.1"
212 | qs "6.11.0"
213 | raw-body "2.5.1"
214 | type-is "~1.6.18"
215 | unpipe "1.0.0"
216 |
217 | brace-expansion@^1.1.7:
218 | version "1.1.11"
219 | resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
220 | dependencies:
221 | balanced-match "^1.0.0"
222 | concat-map "0.0.1"
223 |
224 | braces@~3.0.2:
225 | version "3.0.2"
226 | resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
227 | dependencies:
228 | fill-range "^7.0.1"
229 |
230 | browser-stdout@1.3.1:
231 | version "1.3.1"
232 | resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
233 |
234 | bytes@3.1.2:
235 | version "3.1.2"
236 | resolved "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
237 | integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
238 |
239 | call-bind@^1.0.0:
240 | version "1.0.5"
241 | resolved "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513"
242 | integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==
243 | dependencies:
244 | function-bind "^1.1.2"
245 | get-intrinsic "^1.2.1"
246 | set-function-length "^1.1.1"
247 |
248 | callsites@^3.0.0:
249 | version "3.1.0"
250 | resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
251 |
252 | camelcase@^5.0.0:
253 | version "5.3.1"
254 | resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
255 |
256 | chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2:
257 | version "2.4.2"
258 | resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
259 | dependencies:
260 | ansi-styles "^3.2.1"
261 | escape-string-regexp "^1.0.5"
262 | supports-color "^5.3.0"
263 |
264 | chalk@^3.0.0:
265 | version "3.0.0"
266 | resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
267 | dependencies:
268 | ansi-styles "^4.1.0"
269 | supports-color "^7.1.0"
270 |
271 | chardet@^0.7.0:
272 | version "0.7.0"
273 | resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
274 |
275 | chokidar@3.3.0:
276 | version "3.3.0"
277 | resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz#12c0714668c55800f659e262d4962a97faf554a6"
278 | dependencies:
279 | anymatch "~3.1.1"
280 | braces "~3.0.2"
281 | glob-parent "~5.1.0"
282 | is-binary-path "~2.1.0"
283 | is-glob "~4.0.1"
284 | normalize-path "~3.0.0"
285 | readdirp "~3.2.0"
286 | optionalDependencies:
287 | fsevents "~2.1.1"
288 |
289 | cli-cursor@^3.1.0:
290 | version "3.1.0"
291 | resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
292 | dependencies:
293 | restore-cursor "^3.1.0"
294 |
295 | cli-width@^2.0.0:
296 | version "2.2.0"
297 | resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
298 |
299 | cliui@^5.0.0:
300 | version "5.0.0"
301 | resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
302 | dependencies:
303 | string-width "^3.1.0"
304 | strip-ansi "^5.2.0"
305 | wrap-ansi "^5.1.0"
306 |
307 | color-convert@^1.9.0:
308 | version "1.9.3"
309 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
310 | dependencies:
311 | color-name "1.1.3"
312 |
313 | color-convert@^2.0.1:
314 | version "2.0.1"
315 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
316 | dependencies:
317 | color-name "~1.1.4"
318 |
319 | color-name@1.1.3:
320 | version "1.1.3"
321 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
322 |
323 | color-name@~1.1.4:
324 | version "1.1.4"
325 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
326 |
327 | concat-map@0.0.1:
328 | version "0.0.1"
329 | resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
330 |
331 | content-disposition@0.5.4:
332 | version "0.5.4"
333 | resolved "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"
334 | integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==
335 | dependencies:
336 | safe-buffer "5.2.1"
337 |
338 | content-type@~1.0.4:
339 | version "1.0.5"
340 | resolved "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
341 | integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
342 |
343 | cookie-signature@1.0.6:
344 | version "1.0.6"
345 | resolved "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
346 | integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
347 |
348 | cookie@0.5.0:
349 | version "0.5.0"
350 | resolved "https://registry.npmmirror.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b"
351 | integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
352 |
353 | cross-spawn@^6.0.5:
354 | version "6.0.5"
355 | resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
356 | dependencies:
357 | nice-try "^1.0.4"
358 | path-key "^2.0.1"
359 | semver "^5.5.0"
360 | shebang-command "^1.2.0"
361 | which "^1.2.9"
362 |
363 | debug@2.6.9:
364 | version "2.6.9"
365 | resolved "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
366 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
367 | dependencies:
368 | ms "2.0.0"
369 |
370 | debug@3.1.0:
371 | version "3.1.0"
372 | resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
373 | dependencies:
374 | ms "2.0.0"
375 |
376 | debug@3.2.6, debug@^3.1.0:
377 | version "3.2.6"
378 | resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
379 | dependencies:
380 | ms "^2.1.1"
381 |
382 | debug@^4.0.1, debug@^4.1.1:
383 | version "4.1.1"
384 | resolved "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
385 | dependencies:
386 | ms "^2.1.1"
387 |
388 | decamelize@^1.2.0:
389 | version "1.2.0"
390 | resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
391 |
392 | deep-is@~0.1.3:
393 | version "0.1.3"
394 | resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
395 |
396 | define-data-property@^1.1.1:
397 | version "1.1.1"
398 | resolved "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3"
399 | integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==
400 | dependencies:
401 | get-intrinsic "^1.2.1"
402 | gopd "^1.0.1"
403 | has-property-descriptors "^1.0.0"
404 |
405 | define-properties@^1.1.2, define-properties@^1.1.3:
406 | version "1.1.3"
407 | resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
408 | dependencies:
409 | object-keys "^1.0.12"
410 |
411 | depd@2.0.0:
412 | version "2.0.0"
413 | resolved "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
414 | integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
415 |
416 | destroy@1.2.0:
417 | version "1.2.0"
418 | resolved "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
419 | integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
420 |
421 | diff@3.5.0:
422 | version "3.5.0"
423 | resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
424 |
425 | doctrine@^3.0.0:
426 | version "3.0.0"
427 | resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
428 | dependencies:
429 | esutils "^2.0.2"
430 |
431 | ee-first@1.1.1:
432 | version "1.1.1"
433 | resolved "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
434 | integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
435 |
436 | emoji-regex@^7.0.1:
437 | version "7.0.3"
438 | resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
439 |
440 | emoji-regex@^8.0.0:
441 | version "8.0.0"
442 | resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
443 |
444 | encodeurl@~1.0.2:
445 | version "1.0.2"
446 | resolved "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
447 | integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
448 |
449 | es-abstract@^1.17.0-next.1:
450 | version "1.17.4"
451 | resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz#e3aedf19706b20e7c2594c35fc0d57605a79e184"
452 | dependencies:
453 | es-to-primitive "^1.2.1"
454 | function-bind "^1.1.1"
455 | has "^1.0.3"
456 | has-symbols "^1.0.1"
457 | is-callable "^1.1.5"
458 | is-regex "^1.0.5"
459 | object-inspect "^1.7.0"
460 | object-keys "^1.1.1"
461 | object.assign "^4.1.0"
462 | string.prototype.trimleft "^2.1.1"
463 | string.prototype.trimright "^2.1.1"
464 |
465 | es-to-primitive@^1.2.1:
466 | version "1.2.1"
467 | resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
468 | dependencies:
469 | is-callable "^1.1.4"
470 | is-date-object "^1.0.1"
471 | is-symbol "^1.0.2"
472 |
473 | es6-promise@^4.0.3:
474 | version "4.2.8"
475 | resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a"
476 |
477 | es6-promisify@^5.0.0:
478 | version "5.0.0"
479 | resolved "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203"
480 | dependencies:
481 | es6-promise "^4.0.3"
482 |
483 | escape-html@~1.0.3:
484 | version "1.0.3"
485 | resolved "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
486 | integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
487 |
488 | escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5:
489 | version "1.0.5"
490 | resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
491 |
492 | eslint-scope@^5.0.0:
493 | version "5.0.0"
494 | resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9"
495 | dependencies:
496 | esrecurse "^4.1.0"
497 | estraverse "^4.1.1"
498 |
499 | eslint-utils@^1.4.3:
500 | version "1.4.3"
501 | resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
502 | dependencies:
503 | eslint-visitor-keys "^1.1.0"
504 |
505 | eslint-visitor-keys@^1.1.0:
506 | version "1.1.0"
507 | resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2"
508 |
509 | eslint@^6.8.0:
510 | version "6.8.0"
511 | resolved "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb"
512 | dependencies:
513 | "@babel/code-frame" "^7.0.0"
514 | ajv "^6.10.0"
515 | chalk "^2.1.0"
516 | cross-spawn "^6.0.5"
517 | debug "^4.0.1"
518 | doctrine "^3.0.0"
519 | eslint-scope "^5.0.0"
520 | eslint-utils "^1.4.3"
521 | eslint-visitor-keys "^1.1.0"
522 | espree "^6.1.2"
523 | esquery "^1.0.1"
524 | esutils "^2.0.2"
525 | file-entry-cache "^5.0.1"
526 | functional-red-black-tree "^1.0.1"
527 | glob-parent "^5.0.0"
528 | globals "^12.1.0"
529 | ignore "^4.0.6"
530 | import-fresh "^3.0.0"
531 | imurmurhash "^0.1.4"
532 | inquirer "^7.0.0"
533 | is-glob "^4.0.0"
534 | js-yaml "^3.13.1"
535 | json-stable-stringify-without-jsonify "^1.0.1"
536 | levn "^0.3.0"
537 | lodash "^4.17.14"
538 | minimatch "^3.0.4"
539 | mkdirp "^0.5.1"
540 | natural-compare "^1.4.0"
541 | optionator "^0.8.3"
542 | progress "^2.0.0"
543 | regexpp "^2.0.1"
544 | semver "^6.1.2"
545 | strip-ansi "^5.2.0"
546 | strip-json-comments "^3.0.1"
547 | table "^5.2.3"
548 | text-table "^0.2.0"
549 | v8-compile-cache "^2.0.3"
550 |
551 | espree@^6.1.2:
552 | version "6.2.0"
553 | resolved "https://registry.npmjs.org/espree/-/espree-6.2.0.tgz#349fef01a202bbab047748300deb37fa44da79d7"
554 | dependencies:
555 | acorn "^7.1.0"
556 | acorn-jsx "^5.2.0"
557 | eslint-visitor-keys "^1.1.0"
558 |
559 | esprima@^4.0.0:
560 | version "4.0.1"
561 | resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
562 |
563 | esquery@^1.0.1:
564 | version "1.1.0"
565 | resolved "https://registry.npmjs.org/esquery/-/esquery-1.1.0.tgz#c5c0b66f383e7656404f86b31334d72524eddb48"
566 | dependencies:
567 | estraverse "^4.0.0"
568 |
569 | esrecurse@^4.1.0:
570 | version "4.2.1"
571 | resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
572 | dependencies:
573 | estraverse "^4.1.0"
574 |
575 | estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1:
576 | version "4.3.0"
577 | resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
578 |
579 | esutils@^2.0.2:
580 | version "2.0.3"
581 | resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
582 |
583 | etag@~1.8.1:
584 | version "1.8.1"
585 | resolved "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
586 | integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
587 |
588 | express@^4.18.2:
589 | version "4.18.2"
590 | resolved "https://registry.npmmirror.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59"
591 | integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==
592 | dependencies:
593 | accepts "~1.3.8"
594 | array-flatten "1.1.1"
595 | body-parser "1.20.1"
596 | content-disposition "0.5.4"
597 | content-type "~1.0.4"
598 | cookie "0.5.0"
599 | cookie-signature "1.0.6"
600 | debug "2.6.9"
601 | depd "2.0.0"
602 | encodeurl "~1.0.2"
603 | escape-html "~1.0.3"
604 | etag "~1.8.1"
605 | finalhandler "1.2.0"
606 | fresh "0.5.2"
607 | http-errors "2.0.0"
608 | merge-descriptors "1.0.1"
609 | methods "~1.1.2"
610 | on-finished "2.4.1"
611 | parseurl "~1.3.3"
612 | path-to-regexp "0.1.7"
613 | proxy-addr "~2.0.7"
614 | qs "6.11.0"
615 | range-parser "~1.2.1"
616 | safe-buffer "5.2.1"
617 | send "0.18.0"
618 | serve-static "1.15.0"
619 | setprototypeof "1.2.0"
620 | statuses "2.0.1"
621 | type-is "~1.6.18"
622 | utils-merge "1.0.1"
623 | vary "~1.1.2"
624 |
625 | external-editor@^3.0.3:
626 | version "3.1.0"
627 | resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495"
628 | dependencies:
629 | chardet "^0.7.0"
630 | iconv-lite "^0.4.24"
631 | tmp "^0.0.33"
632 |
633 | fast-deep-equal@^3.1.1:
634 | version "3.1.3"
635 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
636 |
637 | fast-json-stable-stringify@^2.0.0:
638 | version "2.1.0"
639 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
640 |
641 | fast-levenshtein@~2.0.6:
642 | version "2.0.6"
643 | resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
644 |
645 | figures@^3.0.0:
646 | version "3.2.0"
647 | resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
648 | dependencies:
649 | escape-string-regexp "^1.0.5"
650 |
651 | file-entry-cache@^5.0.1:
652 | version "5.0.1"
653 | resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c"
654 | dependencies:
655 | flat-cache "^2.0.1"
656 |
657 | fill-range@^7.0.1:
658 | version "7.0.1"
659 | resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
660 | dependencies:
661 | to-regex-range "^5.0.1"
662 |
663 | finalhandler@1.2.0:
664 | version "1.2.0"
665 | resolved "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32"
666 | integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==
667 | dependencies:
668 | debug "2.6.9"
669 | encodeurl "~1.0.2"
670 | escape-html "~1.0.3"
671 | on-finished "2.4.1"
672 | parseurl "~1.3.3"
673 | statuses "2.0.1"
674 | unpipe "~1.0.0"
675 |
676 | find-up@3.0.0, find-up@^3.0.0:
677 | version "3.0.0"
678 | resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
679 | dependencies:
680 | locate-path "^3.0.0"
681 |
682 | flat-cache@^2.0.1:
683 | version "2.0.1"
684 | resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0"
685 | dependencies:
686 | flatted "^2.0.0"
687 | rimraf "2.6.3"
688 | write "1.0.3"
689 |
690 | flat@^4.1.0:
691 | version "4.1.0"
692 | resolved "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2"
693 | dependencies:
694 | is-buffer "~2.0.3"
695 |
696 | flatted@^2.0.0:
697 | version "2.0.1"
698 | resolved "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08"
699 |
700 | forwarded@0.2.0:
701 | version "0.2.0"
702 | resolved "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
703 | integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
704 |
705 | fresh@0.5.2:
706 | version "0.5.2"
707 | resolved "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
708 | integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==
709 |
710 | fs.realpath@^1.0.0:
711 | version "1.0.0"
712 | resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
713 |
714 | fsevents@~2.1.1:
715 | version "2.1.2"
716 | resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805"
717 |
718 | function-bind@^1.1.1:
719 | version "1.1.1"
720 | resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
721 |
722 | function-bind@^1.1.2:
723 | version "1.1.2"
724 | resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
725 | integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
726 |
727 | functional-red-black-tree@^1.0.1:
728 | version "1.0.1"
729 | resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
730 |
731 | get-caller-file@^2.0.1:
732 | version "2.0.5"
733 | resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
734 |
735 | get-intrinsic@^1.0.2, get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2:
736 | version "1.2.2"
737 | resolved "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b"
738 | integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==
739 | dependencies:
740 | function-bind "^1.1.2"
741 | has-proto "^1.0.1"
742 | has-symbols "^1.0.3"
743 | hasown "^2.0.0"
744 |
745 | glob-parent@^5.0.0, glob-parent@~5.1.0:
746 | version "5.1.2"
747 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
748 | dependencies:
749 | is-glob "^4.0.1"
750 |
751 | glob@7.1.3:
752 | version "7.1.3"
753 | resolved "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
754 | dependencies:
755 | fs.realpath "^1.0.0"
756 | inflight "^1.0.4"
757 | inherits "2"
758 | minimatch "^3.0.4"
759 | once "^1.3.0"
760 | path-is-absolute "^1.0.0"
761 |
762 | glob@^7.1.3, glob@^7.1.6:
763 | version "7.1.6"
764 | resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
765 | dependencies:
766 | fs.realpath "^1.0.0"
767 | inflight "^1.0.4"
768 | inherits "2"
769 | minimatch "^3.0.4"
770 | once "^1.3.0"
771 | path-is-absolute "^1.0.0"
772 |
773 | globals@^12.1.0:
774 | version "12.3.0"
775 | resolved "https://registry.npmjs.org/globals/-/globals-12.3.0.tgz#1e564ee5c4dded2ab098b0f88f24702a3c56be13"
776 | dependencies:
777 | type-fest "^0.8.1"
778 |
779 | gopd@^1.0.1:
780 | version "1.0.1"
781 | resolved "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
782 | integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==
783 | dependencies:
784 | get-intrinsic "^1.1.3"
785 |
786 | growl@1.10.5:
787 | version "1.10.5"
788 | resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"
789 |
790 | has-flag@^3.0.0:
791 | version "3.0.0"
792 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
793 |
794 | has-flag@^4.0.0:
795 | version "4.0.0"
796 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
797 |
798 | has-property-descriptors@^1.0.0:
799 | version "1.0.1"
800 | resolved "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340"
801 | integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==
802 | dependencies:
803 | get-intrinsic "^1.2.2"
804 |
805 | has-proto@^1.0.1:
806 | version "1.0.1"
807 | resolved "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0"
808 | integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==
809 |
810 | has-symbols@^1.0.0, has-symbols@^1.0.1:
811 | version "1.0.1"
812 | resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
813 |
814 | has-symbols@^1.0.3:
815 | version "1.0.3"
816 | resolved "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
817 | integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
818 |
819 | has@^1.0.3:
820 | version "1.0.3"
821 | resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
822 | dependencies:
823 | function-bind "^1.1.1"
824 |
825 | hasown@^2.0.0:
826 | version "2.0.0"
827 | resolved "https://registry.npmmirror.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c"
828 | integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==
829 | dependencies:
830 | function-bind "^1.1.2"
831 |
832 | he@1.2.0:
833 | version "1.2.0"
834 | resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
835 |
836 | http-errors@2.0.0:
837 | version "2.0.0"
838 | resolved "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3"
839 | integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==
840 | dependencies:
841 | depd "2.0.0"
842 | inherits "2.0.4"
843 | setprototypeof "1.2.0"
844 | statuses "2.0.1"
845 | toidentifier "1.0.1"
846 |
847 | http-proxy-agent@^2.1.0:
848 | version "2.1.0"
849 | resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405"
850 | dependencies:
851 | agent-base "4"
852 | debug "3.1.0"
853 |
854 | https-proxy-agent@^2.2.4:
855 | version "2.2.4"
856 | resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b"
857 | dependencies:
858 | agent-base "^4.3.0"
859 | debug "^3.1.0"
860 |
861 | iconv-lite@0.4.24, iconv-lite@^0.4.24:
862 | version "0.4.24"
863 | resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
864 | dependencies:
865 | safer-buffer ">= 2.1.2 < 3"
866 |
867 | ignore@^4.0.6:
868 | version "4.0.6"
869 | resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
870 |
871 | import-fresh@^3.0.0:
872 | version "3.2.1"
873 | resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66"
874 | dependencies:
875 | parent-module "^1.0.0"
876 | resolve-from "^4.0.0"
877 |
878 | imurmurhash@^0.1.4:
879 | version "0.1.4"
880 | resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
881 |
882 | inflight@^1.0.4:
883 | version "1.0.6"
884 | resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
885 | dependencies:
886 | once "^1.3.0"
887 | wrappy "1"
888 |
889 | inherits@2, inherits@2.0.4:
890 | version "2.0.4"
891 | resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
892 |
893 | inquirer@^7.0.0:
894 | version "7.0.6"
895 | resolved "https://registry.npmjs.org/inquirer/-/inquirer-7.0.6.tgz#ee4ff0ea7ecda5324656fe665878790f66df7d0c"
896 | dependencies:
897 | ansi-escapes "^4.2.1"
898 | chalk "^3.0.0"
899 | cli-cursor "^3.1.0"
900 | cli-width "^2.0.0"
901 | external-editor "^3.0.3"
902 | figures "^3.0.0"
903 | lodash "^4.17.15"
904 | mute-stream "0.0.8"
905 | run-async "^2.4.0"
906 | rxjs "^6.5.3"
907 | string-width "^4.1.0"
908 | strip-ansi "^6.0.0"
909 | through "^2.3.6"
910 |
911 | ipaddr.js@1.9.1:
912 | version "1.9.1"
913 | resolved "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
914 | integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
915 |
916 | is-binary-path@~2.1.0:
917 | version "2.1.0"
918 | resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
919 | dependencies:
920 | binary-extensions "^2.0.0"
921 |
922 | is-buffer@~2.0.3:
923 | version "2.0.4"
924 | resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623"
925 |
926 | is-callable@^1.1.4, is-callable@^1.1.5:
927 | version "1.1.5"
928 | resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab"
929 |
930 | is-date-object@^1.0.1:
931 | version "1.0.2"
932 | resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"
933 |
934 | is-extglob@^2.1.1:
935 | version "2.1.1"
936 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
937 |
938 | is-fullwidth-code-point@^2.0.0:
939 | version "2.0.0"
940 | resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
941 |
942 | is-fullwidth-code-point@^3.0.0:
943 | version "3.0.0"
944 | resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
945 |
946 | is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:
947 | version "4.0.1"
948 | resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
949 | dependencies:
950 | is-extglob "^2.1.1"
951 |
952 | is-number@^7.0.0:
953 | version "7.0.0"
954 | resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
955 |
956 | is-promise@^2.1.0:
957 | version "2.1.0"
958 | resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
959 |
960 | is-regex@^1.0.5:
961 | version "1.0.5"
962 | resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae"
963 | dependencies:
964 | has "^1.0.3"
965 |
966 | is-symbol@^1.0.2:
967 | version "1.0.3"
968 | resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937"
969 | dependencies:
970 | has-symbols "^1.0.1"
971 |
972 | isexe@^2.0.0:
973 | version "2.0.0"
974 | resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
975 |
976 | js-tokens@^4.0.0:
977 | version "4.0.0"
978 | resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
979 |
980 | js-yaml@3.13.1, js-yaml@^3.13.1:
981 | version "3.13.1"
982 | resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
983 | dependencies:
984 | argparse "^1.0.7"
985 | esprima "^4.0.0"
986 |
987 | json-schema-traverse@^0.4.1:
988 | version "0.4.1"
989 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
990 |
991 | json-stable-stringify-without-jsonify@^1.0.1:
992 | version "1.0.1"
993 | resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
994 |
995 | levn@^0.3.0, levn@~0.3.0:
996 | version "0.3.0"
997 | resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
998 | dependencies:
999 | prelude-ls "~1.1.2"
1000 | type-check "~0.3.2"
1001 |
1002 | locate-path@^3.0.0:
1003 | version "3.0.0"
1004 | resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
1005 | dependencies:
1006 | p-locate "^3.0.0"
1007 | path-exists "^3.0.0"
1008 |
1009 | lodash@^4.17.14, lodash@^4.17.15:
1010 | version "4.17.21"
1011 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
1012 |
1013 | log-symbols@3.0.0:
1014 | version "3.0.0"
1015 | resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4"
1016 | dependencies:
1017 | chalk "^2.4.2"
1018 |
1019 | media-typer@0.3.0:
1020 | version "0.3.0"
1021 | resolved "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
1022 | integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==
1023 |
1024 | merge-descriptors@1.0.1:
1025 | version "1.0.1"
1026 | resolved "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
1027 | integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==
1028 |
1029 | methods@~1.1.2:
1030 | version "1.1.2"
1031 | resolved "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
1032 | integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==
1033 |
1034 | mime-db@1.52.0:
1035 | version "1.52.0"
1036 | resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
1037 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
1038 |
1039 | mime-types@~2.1.24, mime-types@~2.1.34:
1040 | version "2.1.35"
1041 | resolved "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
1042 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
1043 | dependencies:
1044 | mime-db "1.52.0"
1045 |
1046 | mime@1.6.0:
1047 | version "1.6.0"
1048 | resolved "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
1049 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
1050 |
1051 | mimic-fn@^2.1.0:
1052 | version "2.1.0"
1053 | resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
1054 |
1055 | minimatch@3.0.4, minimatch@^3.0.4:
1056 | version "3.0.4"
1057 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
1058 | dependencies:
1059 | brace-expansion "^1.1.7"
1060 |
1061 | minimist@0.0.8:
1062 | version "0.0.8"
1063 | resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
1064 |
1065 | mkdirp@0.5.1, mkdirp@^0.5.1:
1066 | version "0.5.1"
1067 | resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
1068 | dependencies:
1069 | minimist "0.0.8"
1070 |
1071 | mocha@^7.0.1:
1072 | version "7.1.0"
1073 | resolved "https://registry.npmjs.org/mocha/-/mocha-7.1.0.tgz#c784f579ad0904d29229ad6cb1e2514e4db7d249"
1074 | dependencies:
1075 | ansi-colors "3.2.3"
1076 | browser-stdout "1.3.1"
1077 | chokidar "3.3.0"
1078 | debug "3.2.6"
1079 | diff "3.5.0"
1080 | escape-string-regexp "1.0.5"
1081 | find-up "3.0.0"
1082 | glob "7.1.3"
1083 | growl "1.10.5"
1084 | he "1.2.0"
1085 | js-yaml "3.13.1"
1086 | log-symbols "3.0.0"
1087 | minimatch "3.0.4"
1088 | mkdirp "0.5.1"
1089 | ms "2.1.1"
1090 | node-environment-flags "1.0.6"
1091 | object.assign "4.1.0"
1092 | strip-json-comments "2.0.1"
1093 | supports-color "6.0.0"
1094 | which "1.3.1"
1095 | wide-align "1.1.3"
1096 | yargs "13.3.0"
1097 | yargs-parser "13.1.1"
1098 | yargs-unparser "1.6.0"
1099 |
1100 | ms@2.0.0:
1101 | version "2.0.0"
1102 | resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
1103 |
1104 | ms@2.1.1:
1105 | version "2.1.1"
1106 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
1107 |
1108 | ms@2.1.3:
1109 | version "2.1.3"
1110 | resolved "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
1111 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
1112 |
1113 | ms@^2.1.1:
1114 | version "2.1.2"
1115 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
1116 |
1117 | mute-stream@0.0.8:
1118 | version "0.0.8"
1119 | resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
1120 |
1121 | natural-compare@^1.4.0:
1122 | version "1.4.0"
1123 | resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
1124 |
1125 | negotiator@0.6.3:
1126 | version "0.6.3"
1127 | resolved "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
1128 | integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
1129 |
1130 | nice-try@^1.0.4:
1131 | version "1.0.5"
1132 | resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
1133 |
1134 | node-environment-flags@1.0.6:
1135 | version "1.0.6"
1136 | resolved "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz#a30ac13621f6f7d674260a54dede048c3982c088"
1137 | dependencies:
1138 | object.getownpropertydescriptors "^2.0.3"
1139 | semver "^5.7.0"
1140 |
1141 | normalize-path@^3.0.0, normalize-path@~3.0.0:
1142 | version "3.0.0"
1143 | resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
1144 |
1145 | object-inspect@^1.7.0:
1146 | version "1.7.0"
1147 | resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67"
1148 |
1149 | object-inspect@^1.9.0:
1150 | version "1.13.1"
1151 | resolved "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2"
1152 | integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==
1153 |
1154 | object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1:
1155 | version "1.1.1"
1156 | resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
1157 |
1158 | object.assign@4.1.0, object.assign@^4.1.0:
1159 | version "4.1.0"
1160 | resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
1161 | dependencies:
1162 | define-properties "^1.1.2"
1163 | function-bind "^1.1.1"
1164 | has-symbols "^1.0.0"
1165 | object-keys "^1.0.11"
1166 |
1167 | object.getownpropertydescriptors@^2.0.3:
1168 | version "2.1.0"
1169 | resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649"
1170 | dependencies:
1171 | define-properties "^1.1.3"
1172 | es-abstract "^1.17.0-next.1"
1173 |
1174 | on-finished@2.4.1:
1175 | version "2.4.1"
1176 | resolved "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
1177 | integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
1178 | dependencies:
1179 | ee-first "1.1.1"
1180 |
1181 | once@^1.3.0:
1182 | version "1.4.0"
1183 | resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
1184 | dependencies:
1185 | wrappy "1"
1186 |
1187 | onetime@^5.1.0:
1188 | version "5.1.0"
1189 | resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5"
1190 | dependencies:
1191 | mimic-fn "^2.1.0"
1192 |
1193 | optionator@^0.8.3:
1194 | version "0.8.3"
1195 | resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
1196 | dependencies:
1197 | deep-is "~0.1.3"
1198 | fast-levenshtein "~2.0.6"
1199 | levn "~0.3.0"
1200 | prelude-ls "~1.1.2"
1201 | type-check "~0.3.2"
1202 | word-wrap "~1.2.3"
1203 |
1204 | os-tmpdir@~1.0.2:
1205 | version "1.0.2"
1206 | resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
1207 |
1208 | p-limit@^2.0.0:
1209 | version "2.2.2"
1210 | resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e"
1211 | dependencies:
1212 | p-try "^2.0.0"
1213 |
1214 | p-locate@^3.0.0:
1215 | version "3.0.0"
1216 | resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
1217 | dependencies:
1218 | p-limit "^2.0.0"
1219 |
1220 | p-try@^2.0.0:
1221 | version "2.2.0"
1222 | resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
1223 |
1224 | parent-module@^1.0.0:
1225 | version "1.0.1"
1226 | resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
1227 | dependencies:
1228 | callsites "^3.0.0"
1229 |
1230 | parseurl@~1.3.3:
1231 | version "1.3.3"
1232 | resolved "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
1233 | integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
1234 |
1235 | path-exists@^3.0.0:
1236 | version "3.0.0"
1237 | resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
1238 |
1239 | path-is-absolute@^1.0.0:
1240 | version "1.0.1"
1241 | resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
1242 |
1243 | path-key@^2.0.1:
1244 | version "2.0.1"
1245 | resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
1246 |
1247 | path-to-regexp@0.1.7:
1248 | version "0.1.7"
1249 | resolved "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
1250 | integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==
1251 |
1252 | picomatch@^2.0.4:
1253 | version "2.2.1"
1254 | resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz#21bac888b6ed8601f831ce7816e335bc779f0a4a"
1255 |
1256 | prelude-ls@~1.1.2:
1257 | version "1.1.2"
1258 | resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
1259 |
1260 | progress@^2.0.0:
1261 | version "2.0.3"
1262 | resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
1263 |
1264 | proxy-addr@~2.0.7:
1265 | version "2.0.7"
1266 | resolved "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
1267 | integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
1268 | dependencies:
1269 | forwarded "0.2.0"
1270 | ipaddr.js "1.9.1"
1271 |
1272 | punycode@^2.1.0:
1273 | version "2.1.1"
1274 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
1275 |
1276 | qs@6.11.0:
1277 | version "6.11.0"
1278 | resolved "https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a"
1279 | integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==
1280 | dependencies:
1281 | side-channel "^1.0.4"
1282 |
1283 | range-parser@~1.2.1:
1284 | version "1.2.1"
1285 | resolved "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
1286 | integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
1287 |
1288 | raw-body@2.5.1:
1289 | version "2.5.1"
1290 | resolved "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857"
1291 | integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==
1292 | dependencies:
1293 | bytes "3.1.2"
1294 | http-errors "2.0.0"
1295 | iconv-lite "0.4.24"
1296 | unpipe "1.0.0"
1297 |
1298 | readdirp@~3.2.0:
1299 | version "3.2.0"
1300 | resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz#c30c33352b12c96dfb4b895421a49fd5a9593839"
1301 | dependencies:
1302 | picomatch "^2.0.4"
1303 |
1304 | regexpp@^2.0.1:
1305 | version "2.0.1"
1306 | resolved "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
1307 |
1308 | regexpp@^3.0.0:
1309 | version "3.0.0"
1310 | resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.0.0.tgz#dd63982ee3300e67b41c1956f850aa680d9d330e"
1311 |
1312 | require-directory@^2.1.1:
1313 | version "2.1.1"
1314 | resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
1315 |
1316 | require-main-filename@^2.0.0:
1317 | version "2.0.0"
1318 | resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
1319 |
1320 | resolve-from@^4.0.0:
1321 | version "4.0.0"
1322 | resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
1323 |
1324 | restore-cursor@^3.1.0:
1325 | version "3.1.0"
1326 | resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
1327 | dependencies:
1328 | onetime "^5.1.0"
1329 | signal-exit "^3.0.2"
1330 |
1331 | rimraf@2.6.3:
1332 | version "2.6.3"
1333 | resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
1334 | dependencies:
1335 | glob "^7.1.3"
1336 |
1337 | rimraf@^2.6.3:
1338 | version "2.7.1"
1339 | resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
1340 | dependencies:
1341 | glob "^7.1.3"
1342 |
1343 | run-async@^2.4.0:
1344 | version "2.4.0"
1345 | resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8"
1346 | dependencies:
1347 | is-promise "^2.1.0"
1348 |
1349 | rxjs@^6.5.3:
1350 | version "6.5.4"
1351 | resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c"
1352 | dependencies:
1353 | tslib "^1.9.0"
1354 |
1355 | safe-buffer@5.2.1:
1356 | version "5.2.1"
1357 | resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
1358 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
1359 |
1360 | "safer-buffer@>= 2.1.2 < 3":
1361 | version "2.1.2"
1362 | resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
1363 |
1364 | semver@^5.5.0, semver@^5.7.0:
1365 | version "5.7.1"
1366 | resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
1367 |
1368 | semver@^6.1.2, semver@^6.3.0:
1369 | version "6.3.0"
1370 | resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
1371 |
1372 | send@0.18.0:
1373 | version "0.18.0"
1374 | resolved "https://registry.npmmirror.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be"
1375 | integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==
1376 | dependencies:
1377 | debug "2.6.9"
1378 | depd "2.0.0"
1379 | destroy "1.2.0"
1380 | encodeurl "~1.0.2"
1381 | escape-html "~1.0.3"
1382 | etag "~1.8.1"
1383 | fresh "0.5.2"
1384 | http-errors "2.0.0"
1385 | mime "1.6.0"
1386 | ms "2.1.3"
1387 | on-finished "2.4.1"
1388 | range-parser "~1.2.1"
1389 | statuses "2.0.1"
1390 |
1391 | serve-static@1.15.0:
1392 | version "1.15.0"
1393 | resolved "https://registry.npmmirror.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540"
1394 | integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==
1395 | dependencies:
1396 | encodeurl "~1.0.2"
1397 | escape-html "~1.0.3"
1398 | parseurl "~1.3.3"
1399 | send "0.18.0"
1400 |
1401 | set-blocking@^2.0.0:
1402 | version "2.0.0"
1403 | resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
1404 |
1405 | set-function-length@^1.1.1:
1406 | version "1.1.1"
1407 | resolved "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed"
1408 | integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==
1409 | dependencies:
1410 | define-data-property "^1.1.1"
1411 | get-intrinsic "^1.2.1"
1412 | gopd "^1.0.1"
1413 | has-property-descriptors "^1.0.0"
1414 |
1415 | setprototypeof@1.2.0:
1416 | version "1.2.0"
1417 | resolved "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
1418 | integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
1419 |
1420 | shebang-command@^1.2.0:
1421 | version "1.2.0"
1422 | resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
1423 | dependencies:
1424 | shebang-regex "^1.0.0"
1425 |
1426 | shebang-regex@^1.0.0:
1427 | version "1.0.0"
1428 | resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
1429 |
1430 | side-channel@^1.0.4:
1431 | version "1.0.4"
1432 | resolved "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
1433 | integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
1434 | dependencies:
1435 | call-bind "^1.0.0"
1436 | get-intrinsic "^1.0.2"
1437 | object-inspect "^1.9.0"
1438 |
1439 | signal-exit@^3.0.2:
1440 | version "3.0.2"
1441 | resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
1442 |
1443 | slice-ansi@^2.1.0:
1444 | version "2.1.0"
1445 | resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
1446 | dependencies:
1447 | ansi-styles "^3.2.0"
1448 | astral-regex "^1.0.0"
1449 | is-fullwidth-code-point "^2.0.0"
1450 |
1451 | sprintf-js@~1.0.2:
1452 | version "1.0.3"
1453 | resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
1454 |
1455 | statuses@2.0.1:
1456 | version "2.0.1"
1457 | resolved "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63"
1458 | integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
1459 |
1460 | "string-width@^1.0.2 || 2":
1461 | version "2.1.1"
1462 | resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
1463 | dependencies:
1464 | is-fullwidth-code-point "^2.0.0"
1465 | strip-ansi "^4.0.0"
1466 |
1467 | string-width@^3.0.0, string-width@^3.1.0:
1468 | version "3.1.0"
1469 | resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
1470 | dependencies:
1471 | emoji-regex "^7.0.1"
1472 | is-fullwidth-code-point "^2.0.0"
1473 | strip-ansi "^5.1.0"
1474 |
1475 | string-width@^4.1.0:
1476 | version "4.2.0"
1477 | resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5"
1478 | dependencies:
1479 | emoji-regex "^8.0.0"
1480 | is-fullwidth-code-point "^3.0.0"
1481 | strip-ansi "^6.0.0"
1482 |
1483 | string.prototype.trimleft@^2.1.1:
1484 | version "2.1.1"
1485 | resolved "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74"
1486 | dependencies:
1487 | define-properties "^1.1.3"
1488 | function-bind "^1.1.1"
1489 |
1490 | string.prototype.trimright@^2.1.1:
1491 | version "2.1.1"
1492 | resolved "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9"
1493 | dependencies:
1494 | define-properties "^1.1.3"
1495 | function-bind "^1.1.1"
1496 |
1497 | strip-ansi@^4.0.0:
1498 | version "4.0.0"
1499 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
1500 | dependencies:
1501 | ansi-regex "^3.0.0"
1502 |
1503 | strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
1504 | version "5.2.0"
1505 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
1506 | dependencies:
1507 | ansi-regex "^4.1.0"
1508 |
1509 | strip-ansi@^6.0.0:
1510 | version "6.0.0"
1511 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
1512 | dependencies:
1513 | ansi-regex "^5.0.0"
1514 |
1515 | strip-json-comments@2.0.1:
1516 | version "2.0.1"
1517 | resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
1518 |
1519 | strip-json-comments@^3.0.1:
1520 | version "3.0.1"
1521 | resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7"
1522 |
1523 | supports-color@6.0.0:
1524 | version "6.0.0"
1525 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a"
1526 | dependencies:
1527 | has-flag "^3.0.0"
1528 |
1529 | supports-color@^5.3.0:
1530 | version "5.5.0"
1531 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
1532 | dependencies:
1533 | has-flag "^3.0.0"
1534 |
1535 | supports-color@^7.1.0:
1536 | version "7.1.0"
1537 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1"
1538 | dependencies:
1539 | has-flag "^4.0.0"
1540 |
1541 | table@^5.2.3:
1542 | version "5.4.6"
1543 | resolved "https://registry.npmjs.org/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e"
1544 | dependencies:
1545 | ajv "^6.10.2"
1546 | lodash "^4.17.14"
1547 | slice-ansi "^2.1.0"
1548 | string-width "^3.0.0"
1549 |
1550 | text-table@^0.2.0:
1551 | version "0.2.0"
1552 | resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
1553 |
1554 | through@^2.3.6:
1555 | version "2.3.8"
1556 | resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
1557 |
1558 | tmp@^0.0.33:
1559 | version "0.0.33"
1560 | resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
1561 | dependencies:
1562 | os-tmpdir "~1.0.2"
1563 |
1564 | to-regex-range@^5.0.1:
1565 | version "5.0.1"
1566 | resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
1567 | dependencies:
1568 | is-number "^7.0.0"
1569 |
1570 | toidentifier@1.0.1:
1571 | version "1.0.1"
1572 | resolved "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
1573 | integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
1574 |
1575 | tslib@^1.8.1, tslib@^1.9.0:
1576 | version "1.11.1"
1577 | resolved "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35"
1578 |
1579 | tsutils@^3.17.1:
1580 | version "3.17.1"
1581 | resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759"
1582 | dependencies:
1583 | tslib "^1.8.1"
1584 |
1585 | type-check@~0.3.2:
1586 | version "0.3.2"
1587 | resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
1588 | dependencies:
1589 | prelude-ls "~1.1.2"
1590 |
1591 | type-fest@^0.11.0:
1592 | version "0.11.0"
1593 | resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1"
1594 |
1595 | type-fest@^0.8.1:
1596 | version "0.8.1"
1597 | resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
1598 |
1599 | type-is@~1.6.18:
1600 | version "1.6.18"
1601 | resolved "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
1602 | integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
1603 | dependencies:
1604 | media-typer "0.3.0"
1605 | mime-types "~2.1.24"
1606 |
1607 | typescript@^5.2.2:
1608 | version "5.2.2"
1609 | resolved "https://registry.npmmirror.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78"
1610 | integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==
1611 |
1612 | unpipe@1.0.0, unpipe@~1.0.0:
1613 | version "1.0.0"
1614 | resolved "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
1615 | integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
1616 |
1617 | uri-js@^4.2.2:
1618 | version "4.4.1"
1619 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
1620 | dependencies:
1621 | punycode "^2.1.0"
1622 |
1623 | utils-merge@1.0.1:
1624 | version "1.0.1"
1625 | resolved "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
1626 | integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==
1627 |
1628 | v8-compile-cache@^2.0.3:
1629 | version "2.1.0"
1630 | resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e"
1631 |
1632 | vary@~1.1.2:
1633 | version "1.1.2"
1634 | resolved "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
1635 | integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
1636 |
1637 | vscode-test@^1.3.0:
1638 | version "1.3.0"
1639 | resolved "https://registry.npmjs.org/vscode-test/-/vscode-test-1.3.0.tgz#3310ab385d9b887b4c82e8f52be1030e7cf9493d"
1640 | dependencies:
1641 | http-proxy-agent "^2.1.0"
1642 | https-proxy-agent "^2.2.4"
1643 | rimraf "^2.6.3"
1644 |
1645 | which-module@^2.0.0:
1646 | version "2.0.0"
1647 | resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
1648 |
1649 | which@1.3.1, which@^1.2.9:
1650 | version "1.3.1"
1651 | resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
1652 | dependencies:
1653 | isexe "^2.0.0"
1654 |
1655 | wide-align@1.1.3:
1656 | version "1.1.3"
1657 | resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
1658 | dependencies:
1659 | string-width "^1.0.2 || 2"
1660 |
1661 | word-wrap@~1.2.3:
1662 | version "1.2.3"
1663 | resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
1664 |
1665 | wrap-ansi@^5.1.0:
1666 | version "5.1.0"
1667 | resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
1668 | dependencies:
1669 | ansi-styles "^3.2.0"
1670 | string-width "^3.0.0"
1671 | strip-ansi "^5.0.0"
1672 |
1673 | wrappy@1:
1674 | version "1.0.2"
1675 | resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1676 |
1677 | write@1.0.3:
1678 | version "1.0.3"
1679 | resolved "https://registry.npmjs.org/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3"
1680 | dependencies:
1681 | mkdirp "^0.5.1"
1682 |
1683 | y18n@^4.0.0:
1684 | version "4.0.1"
1685 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4"
1686 |
1687 | yargs-parser@13.1.1, yargs-parser@^13.1.1:
1688 | version "13.1.1"
1689 | resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0"
1690 | dependencies:
1691 | camelcase "^5.0.0"
1692 | decamelize "^1.2.0"
1693 |
1694 | yargs-unparser@1.6.0:
1695 | version "1.6.0"
1696 | resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz#ef25c2c769ff6bd09e4b0f9d7c605fb27846ea9f"
1697 | dependencies:
1698 | flat "^4.1.0"
1699 | lodash "^4.17.15"
1700 | yargs "^13.3.0"
1701 |
1702 | yargs@13.3.0, yargs@^13.3.0:
1703 | version "13.3.0"
1704 | resolved "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83"
1705 | dependencies:
1706 | cliui "^5.0.0"
1707 | find-up "^3.0.0"
1708 | get-caller-file "^2.0.1"
1709 | require-directory "^2.1.1"
1710 | require-main-filename "^2.0.0"
1711 | set-blocking "^2.0.0"
1712 | string-width "^3.0.0"
1713 | which-module "^2.0.0"
1714 | y18n "^4.0.0"
1715 | yargs-parser "^13.1.1"
1716 |
--------------------------------------------------------------------------------
/yn-github-copilot.js:
--------------------------------------------------------------------------------
1 | // 这个文件不建议使用,现在 Yank Note 的 AI copilot 扩展已经自带这个适配器了,写上接口地址即可工作
2 | // https://github.com/purocean/yank-note-extension/tree/main/packages/extension-ai-copilot
3 |
4 | window.registerPlugin({
5 | name: 'yank-note-github-copilot',
6 | register: ctx => {
7 | const extensionId = 'yank-note-github-copilot'
8 | const enabled = ctx.lib.vue.ref(ctx.storage.get(`${extensionId}.enabled`) || true)
9 | const loading = ctx.lib.vue.ref(false)
10 |
11 | class CompletionProvider {
12 | monaco = undefined
13 | logger = ctx.utils.getLogger(extensionId)
14 |
15 | constructor (monaco) {
16 | this.monaco = monaco
17 | }
18 |
19 | freeInlineCompletions () {
20 | loading.value = false
21 | }
22 |
23 | handleItemDidShow () {
24 | loading.value = false
25 | }
26 |
27 | async provideInlineCompletions (
28 | _model,
29 | position,
30 | context,
31 | token,
32 | ) {
33 | if (!enabled.value) {
34 | return { items: [] }
35 | }
36 |
37 | const content = ctx.editor.getValue()
38 | if (content.length > 1024 * 512 || content.length < 4) {
39 | return []
40 | }
41 |
42 | await ctx.utils.sleep(1500)
43 |
44 | return {
45 | items: await this.provideSuggestions(content, position, context, token)
46 | }
47 | }
48 |
49 | async provideSuggestions (content, position, context, token) {
50 | if (token.isCancellationRequested) {
51 | return []
52 | }
53 |
54 | token.onCancellationRequested(() => {
55 | loading.value = false
56 | })
57 |
58 | try {
59 | const headers = { 'Content-Type': 'application/json' }
60 | const body = JSON.stringify({
61 | language: 'markdown',
62 | content,
63 | triggerKind: context.triggerKind,
64 | line: position.lineNumber - 1,
65 | column: position.column - 1,
66 | })
67 |
68 | loading.value = true
69 | const x = await ctx.api.proxyRequest(
70 | 'http://127.0.0.1:3223/calculateInlineCompletions',
71 | { headers, body: body, method: 'post' },
72 | true
73 | )
74 |
75 | const res = await x.json()
76 |
77 | if (token.isCancellationRequested) {
78 | return []
79 | }
80 |
81 | if (!res || res.type !== 'success' || !res.items) {
82 | return []
83 | }
84 |
85 | loading.value = false
86 | return res.items.map(x => {
87 | const range = new this.monaco.Range(
88 | x.range[0].line + 1,
89 | x.range[0].character + 1,
90 | x.range[1].line + 1,
91 | x.range[1].character + 1,
92 | )
93 |
94 | return {
95 | text: x.displayText,
96 | insertText: { snippet: x.insertText },
97 | range,
98 | }
99 | })
100 | } catch (error) {
101 | loading.value = false
102 | ctx.ui.useToast().show('warning', 'Github Copilot:' + (error.message || `${error}`), 5000)
103 | throw error
104 | }
105 | }
106 | }
107 |
108 | ctx.editor.whenEditorReady().then(({ monaco }) => {
109 | monaco.languages.registerInlineCompletionsProvider(
110 | 'markdown',
111 | new CompletionProvider(monaco)
112 | )
113 | })
114 |
115 |
116 | ctx.lib.vue.watchEffect(() => {
117 | ctx.storage.set(`${extensionId}.enabled`, enabled.value)
118 | })
119 |
120 | ctx.lib.vue.watch(() => [enabled.value, loading.value], () => {
121 | ctx.statusBar.refreshMenu()
122 | }, { immediate: true })
123 |
124 | ctx.statusBar.tapMenus(menus => {
125 | menus[extensionId] = {
126 | id: extensionId,
127 | position: 'right',
128 | order: -2048,
129 | title: loading.value ? 'AI-Loading' : enabled.value ? 'AI-On' : 'AI-Off',
130 | onClick: () => {
131 | enabled.value = !enabled.value
132 | },
133 | list: []
134 | }
135 | })
136 | }
137 | });
138 |
--------------------------------------------------------------------------------