├── .eslintrc.json ├── .gitignore ├── .vscode-test.mjs ├── .vscode ├── extensions.json ├── launch.json ├── settings.json └── tasks.json ├── .vscodeignore ├── .yarnrc ├── LICENSE.md ├── README.md ├── media ├── example.gif └── icon.png ├── package-lock.json ├── package.json ├── src ├── extension.ts └── test │ └── extension.test.ts ├── tsconfig.json ├── vsc-extension-quickstart.md └── yarn.lock /.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/naming-convention": [ 13 | "warn", 14 | { 15 | "selector": "import", 16 | "format": [ "camelCase", "PascalCase" ] 17 | } 18 | ], 19 | "@typescript-eslint/semi": "warn", 20 | "curly": "warn", 21 | "eqeqeq": "warn", 22 | "no-throw-literal": "warn", 23 | "semi": "off" 24 | }, 25 | "ignorePatterns": [ 26 | "out", 27 | "dist", 28 | "**/*.d.ts" 29 | ] 30 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | out 2 | dist 3 | node_modules 4 | .vscode-test/ 5 | *.vsix 6 | -------------------------------------------------------------------------------- /.vscode-test.mjs: -------------------------------------------------------------------------------- 1 | import { defineConfig } from '@vscode/test-cli'; 2 | 3 | export default defineConfig({ 4 | files: 'out/test/**/*.test.js', 5 | }); 6 | -------------------------------------------------------------------------------- /.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 | "ms-vscode.extension-test-runner" 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /.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 | "args": [ 13 | "--extensionDevelopmentPath=${workspaceFolder}" 14 | ], 15 | "outFiles": [ 16 | "${workspaceFolder}/out/**/*.js" 17 | ], 18 | "preLaunchTask": "${defaultBuildTask}" 19 | } 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /.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 | "i18n-ally.localesPaths": [] 12 | } -------------------------------------------------------------------------------- /.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 | src/** 4 | .gitignore 5 | .yarnrc 6 | vsc-extension-quickstart.md 7 | **/tsconfig.json 8 | **/.eslintrc.json 9 | **/*.map 10 | **/*.ts 11 | **/.vscode-test.* 12 | -------------------------------------------------------------------------------- /.yarnrc: -------------------------------------------------------------------------------- 1 | --ignore-engines true -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 amir alizadeh 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. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Flet Control Wrapper 2 | 3 | Enhance your Flet development experience in Visual Studio Code by easily wrapping selections of Flet code within a Control. 4 | 5 | ![Example](/media/example.gif) 6 | 7 | ## Usage 8 | To streamline your Flet UI development: 9 | 1. Highlight any Flet control or function within your code. 10 | 2. Trigger the wrap action: 11 | - On macOS, press `Cmd + .` 12 | - On Windows, press `Ctrl + .` 13 | 3. The selected code will be wrapped within a `content` or `controls` property. You're then free to rename the class as desired. 14 | 15 | ## Published 16 | [VSCode Marketplace Page](https://marketplace.visualstudio.com/items?itemName=sobytes.flet-control-wrap) 17 | 18 | ## What's New 19 | ### Version 0.0.2 20 | - **Add multiple wrap**: Support select multiple controls for wrap in `controls`. 21 | ### Version 0.0.1 22 | - **Initial Release**: First version of the Flet Control Wrapper, designed to simplify your Flet UI coding tasks in Visual Studio Code. -------------------------------------------------------------------------------- /media/example.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/50Bytes-dev/vscode-flet-wrap/a2ffb0181aaa677d13ed557c2830fe00bbd3c1e8/media/example.gif -------------------------------------------------------------------------------- /media/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/50Bytes-dev/vscode-flet-wrap/a2ffb0181aaa677d13ed557c2830fe00bbd3c1e8/media/icon.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "flet-control-wrap", 3 | "displayName": "Flet control wrap", 4 | "description": "Efficiently wrapping Flet controllers within other controllers for Visual Studio Code", 5 | "version": "0.0.2", 6 | "publisher": "sobytes", 7 | "icon": "media/icon.png", 8 | "engines": { 9 | "vscode": "^1.88.0" 10 | }, 11 | "categories": [ 12 | "Other" 13 | ], 14 | "activationEvents": [ 15 | "onLanguage:python" 16 | ], 17 | "repository": { 18 | "type": "git", 19 | "url": "https://github.com/50Bytes-dev/vscode-flet-wrap" 20 | }, 21 | "main": "./out/extension.js", 22 | "contributes": {}, 23 | "scripts": { 24 | "vscode:prepublish": "yarn run compile", 25 | "compile": "tsc -p ./", 26 | "watch": "tsc -watch -p ./", 27 | "pretest": "yarn run compile && yarn run lint", 28 | "lint": "eslint src --ext ts", 29 | "test": "vscode-test" 30 | }, 31 | "devDependencies": { 32 | "@types/mocha": "^10.0.6", 33 | "@types/node": "18.x", 34 | "@types/vscode": "^1.88.0", 35 | "@typescript-eslint/eslint-plugin": "^7.4.0", 36 | "@typescript-eslint/parser": "^7.4.0", 37 | "@vscode/test-cli": "^0.0.8", 38 | "@vscode/test-electron": "^2.3.9", 39 | "esbuild": "^0.20.2", 40 | "eslint": "^8.57.0", 41 | "typescript": "^5.3.3" 42 | }, 43 | "dependencies": { 44 | "python-ast": "^0.1.0" 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/extension.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import { parse, walk } from 'python-ast'; 3 | import { ErrorNode } from 'antlr4ts/tree/ErrorNode'; 4 | 5 | type CallbackFn = (text: string, controlName: string, indentation: string, defaultIndentation: string, textComma: string, endComma: string) => string; 6 | 7 | function getDefaultIndentation(editor: vscode.TextEditor) { 8 | const { insertSpaces, tabSize } = editor.options; 9 | return insertSpaces ? ' '.repeat(typeof tabSize === 'number' ? tabSize : 4) : '\t'; 10 | } 11 | 12 | function getIndentationOfSelection(editor: vscode.TextEditor): string { 13 | const selection = editor.selection; 14 | const firstLineOfSelection = editor.document.lineAt(selection.start.line).text; 15 | 16 | const match = firstLineOfSelection.match(/^(\s*)/); 17 | return match ? match[1] as string : ''; 18 | } 19 | 20 | function checkText(text: string) { 21 | const ast = parse(text); 22 | let argumentDepth: number | undefined; 23 | let correctText = true; 24 | let nodeCount = 0; 25 | 26 | walk({ 27 | enterAtom_expr: (ctx) => { 28 | if (!argumentDepth) { 29 | argumentDepth = ctx.depth(); 30 | } else if (ctx.depth() !== argumentDepth) { 31 | return; 32 | } 33 | if (ctx.childCount === 1) { 34 | correctText = false; 35 | } 36 | if (ctx.childCount === 2) { 37 | const lastChild: any = ctx.children![1]; 38 | const lastChildNode = lastChild.children[lastChild.childCount - 1]; 39 | if (lastChildNode.text === '(') { 40 | correctText = false; 41 | } 42 | if (lastChildNode instanceof ErrorNode) { 43 | correctText = false; 44 | } 45 | } 46 | nodeCount++; 47 | }, 48 | }, ast); 49 | 50 | return { 51 | nodeCount, 52 | correctText, 53 | }; 54 | } 55 | 56 | function getObjectRange(selection: vscode.Selection, document: vscode.TextDocument): vscode.Range | undefined { 57 | let text = document.getText(selection); 58 | if (text !== '') { 59 | const { nodeCount, correctText } = checkText(text); 60 | if (nodeCount > 1) { 61 | if (!correctText) { 62 | return; 63 | } else { 64 | return new vscode.Range(selection.start, selection.end); 65 | } 66 | } 67 | } 68 | 69 | text = document.getText(); 70 | let wordRange = document.getWordRangeAtPosition(selection.start, /[\w\._]+ *\(/); 71 | 72 | if (!wordRange) { 73 | return; 74 | } 75 | 76 | let wordStartPos = document.offsetAt(wordRange.start); 77 | let startPos = wordStartPos; 78 | let openBracketsCount = 0; 79 | let endPos = -1; 80 | 81 | for (let i = startPos; i >= 0; i++) { 82 | if (text[i] === '(') { 83 | startPos = i; 84 | openBracketsCount = 1; 85 | break; 86 | } 87 | if (text[i] === '\n') { 88 | return; 89 | } 90 | } 91 | 92 | for (let i = startPos + 1; i < text.length && openBracketsCount > 0; i++) { 93 | if (text[i] === '(') { 94 | openBracketsCount++; 95 | } else if (text[i] === ')') { 96 | openBracketsCount--; 97 | if (openBracketsCount === 0) { 98 | endPos = i; 99 | break; 100 | } 101 | } 102 | } 103 | 104 | if (endPos !== -1) { 105 | let start = document.positionAt(wordStartPos); 106 | let end = document.positionAt(endPos + 1); 107 | return new vscode.Range(start, end); 108 | } 109 | } 110 | 111 | function wrapWith( 112 | controlName: string = "control", 113 | callbackfn?: CallbackFn, 114 | ) { 115 | const editor = vscode.window.activeTextEditor; 116 | 117 | if (!editor) { 118 | return; 119 | } 120 | 121 | if (!callbackfn) { 122 | return; 123 | } 124 | 125 | const objectRange = getObjectRange(editor.selection, editor.document); 126 | if (!objectRange) { 127 | return; 128 | } 129 | const selection = new vscode.Selection(objectRange.start, objectRange.end); 130 | 131 | const defaultIndentation = getDefaultIndentation(editor); 132 | const indentation = getIndentationOfSelection(editor); 133 | const text = editor.document.getText(selection); 134 | const textComma = text.endsWith(',') ? '' : ','; 135 | const endComma = textComma ? '' : ','; 136 | 137 | const wrappedText = callbackfn(text, controlName, indentation, defaultIndentation, textComma, endComma); 138 | 139 | editor.edit(editBuilder => { 140 | editBuilder.replace(selection, wrappedText); 141 | }); 142 | 143 | const startOffset = editor.document.offsetAt(selection.start); 144 | const endOffset = startOffset + controlName.length; 145 | const start = editor.document.positionAt(startOffset); 146 | const end = editor.document.positionAt(endOffset); 147 | const newSelection = new vscode.Selection(start, end); 148 | editor.selection = newSelection; 149 | } 150 | 151 | function wrapWithContent() { 152 | return wrapWith( 153 | "Control", 154 | (text, controlName, indentation, defaultIndentation, textComma, endComma) => { 155 | return `${controlName}(` + 156 | `\n${indentation}${defaultIndentation}content=${text.replace(/\n/g, `\n${defaultIndentation}`)}${textComma}` + 157 | `\n${indentation})${endComma}`; 158 | }, 159 | ); 160 | } 161 | 162 | function wrapWithControls() { 163 | return wrapWith( 164 | "Control", 165 | (text, controlName, indentation, defaultIndentation, textComma, endComma) => { 166 | return `${controlName}(` + 167 | `\n${indentation}${defaultIndentation}controls=[` + 168 | `\n${indentation}${defaultIndentation.repeat(2)}${text.replace(/\n/g, `\n${defaultIndentation.repeat(2)}`)}${textComma}` + 169 | `\n${indentation}${defaultIndentation}]` + 170 | `\n${indentation})${endComma}`; 171 | }, 172 | ); 173 | } 174 | 175 | function getContentStartIndex(text: string) { 176 | const ast = parse(text); 177 | let isContent = false; 178 | let isControls = false; 179 | let argumentDepth: number | undefined; 180 | let contentStartIndex: number | undefined; 181 | 182 | walk({ 183 | enterArgument: (ctx) => { 184 | if (!argumentDepth) { 185 | argumentDepth = ctx.depth(); 186 | } else if (ctx.depth() !== argumentDepth) { 187 | return; 188 | } 189 | if (!ctx.children) { 190 | return; 191 | } 192 | if (ctx.children[0].text === "content" && !contentStartIndex) { 193 | isContent = true; 194 | const contentNode: any = ctx.children[2]; 195 | contentStartIndex = contentNode.start.startIndex; 196 | } 197 | if (ctx.children[0].text === "controls" && !contentStartIndex) { 198 | isControls = true; 199 | const controlsNode: any = ctx.children[2]; 200 | walk({ 201 | enterTestlist_comp: (ctx) => { 202 | if (!ctx.children) { 203 | return; 204 | } 205 | if (ctx.childCount > 2) { 206 | return; 207 | } 208 | if (!contentStartIndex) { 209 | contentStartIndex = ctx.start.startIndex; 210 | } 211 | } 212 | }, controlsNode); 213 | } 214 | } 215 | }, ast); 216 | 217 | return { contentStartIndex, isContent, isControls }; 218 | } 219 | 220 | function unwrapControl() { 221 | const editor = vscode.window.activeTextEditor; 222 | 223 | if (!editor) { 224 | vscode.window.showInformationMessage('No editor is active'); 225 | return; 226 | } 227 | 228 | const objectRange = getObjectRange(editor.selection, editor.document); 229 | if (!objectRange) { 230 | return; 231 | } 232 | 233 | const selection = new vscode.Selection(objectRange.start, objectRange.end); 234 | const text = editor.document.getText(selection); 235 | 236 | let defaultIndentation = getDefaultIndentation(editor); 237 | 238 | const { contentStartIndex, isContent, isControls } = getContentStartIndex(text); 239 | 240 | if (contentStartIndex === undefined) { 241 | return; 242 | } 243 | 244 | if (isControls) { 245 | defaultIndentation += defaultIndentation; 246 | } 247 | 248 | const contentStartOffset = editor.document.offsetAt(objectRange.start) + contentStartIndex; 249 | const contentStart = editor.document.positionAt(contentStartOffset); 250 | const contentSelection = new vscode.Selection(contentStart, contentStart); 251 | const contentRange = getObjectRange(contentSelection, editor.document); 252 | if (!contentRange) { 253 | return; 254 | } 255 | const contentObjectSelection = new vscode.Selection(contentRange.start, contentRange.end); 256 | 257 | const contentText = editor.document.getText(contentObjectSelection); 258 | const contentTextWithoutIndentation = contentText.replace(new RegExp(`^${defaultIndentation}`, 'gm'), ''); 259 | 260 | editor.edit(editBuilder => { 261 | editBuilder.replace(selection, contentTextWithoutIndentation); 262 | }); 263 | } 264 | 265 | export class WrapActionProvider implements vscode.CodeActionProvider { 266 | public provideCodeActions(document: vscode.TextDocument, range: vscode.Range | vscode.Selection): vscode.ProviderResult { 267 | 268 | let selection: vscode.Selection; 269 | if (range instanceof vscode.Range) { 270 | selection = new vscode.Selection(range.start, range.end); 271 | } else { 272 | selection = range; 273 | } 274 | 275 | const objectRange = getObjectRange(selection, document); 276 | if (!objectRange) { 277 | return; 278 | } 279 | 280 | const text = document.getText(objectRange); 281 | const { nodeCount } = checkText(text); 282 | const { contentStartIndex } = getContentStartIndex(text); 283 | 284 | return [ 285 | nodeCount === 1 && { 286 | command: { 287 | title: 'Wrap in content', 288 | command: 'flet.refactor.wrap.content', 289 | }, 290 | title: 'Wrap in content', 291 | kind: vscode.CodeActionKind.Refactor, 292 | }, 293 | { 294 | command: { 295 | title: 'Wrap in controls', 296 | command: 'flet.refactor.wrap.controls', 297 | }, 298 | title: 'Wrap in controls', 299 | kind: vscode.CodeActionKind.Refactor, 300 | }, 301 | (nodeCount === 1 && contentStartIndex !== undefined) && { 302 | command: { 303 | title: 'Remove wrapper', 304 | command: 'flet.refactor.unwrap', 305 | }, 306 | title: 'Remove wrapper', 307 | kind: vscode.CodeActionKind.Refactor, 308 | }, 309 | ].filter(Boolean) as vscode.ProviderResult; 310 | } 311 | } 312 | 313 | export function activate(context: vscode.ExtensionContext) { 314 | context.subscriptions.push(vscode.languages.registerCodeActionsProvider( 315 | "python", 316 | new WrapActionProvider(), 317 | { providedCodeActionKinds: [vscode.CodeActionKind.Refactor] } 318 | )); 319 | 320 | vscode.commands.registerCommand('flet.refactor.wrap.content', wrapWithContent); 321 | 322 | vscode.commands.registerCommand('flet.refactor.wrap.controls', wrapWithControls); 323 | 324 | vscode.commands.registerCommand('flet.refactor.unwrap', unwrapControl); 325 | } 326 | 327 | export function deactivate() { } 328 | -------------------------------------------------------------------------------- /src/test/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.strictEqual(-1, [1, 2, 3].indexOf(5)); 13 | assert.strictEqual(-1, [1, 2, 3].indexOf(0)); 14 | }); 15 | }); 16 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "Node16", 4 | "target": "ES2022", 5 | "outDir": "out", 6 | "lib": [ 7 | "ES2022" 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 | } 18 | -------------------------------------------------------------------------------- /vsc-extension-quickstart.md: -------------------------------------------------------------------------------- 1 | # Welcome to your VS Code Extension 2 | 3 | ## What's in the folder 4 | 5 | * This folder contains all of the files necessary for your extension. 6 | * `package.json` - this is the manifest file in which you declare your extension and command. 7 | * The sample plugin registers a command and defines its title and command name. With this information VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. 8 | * `src/extension.ts` - this is the main file where you will provide the implementation of your command. 9 | * The file exports one function, `activate`, which is called the very first time your extension is activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. 10 | * We pass the function containing the implementation of the command as the second parameter to `registerCommand`. 11 | 12 | ## Get up and running straight away 13 | 14 | * Press `F5` to open a new window with your extension loaded. 15 | * Run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World`. 16 | * Set breakpoints in your code inside `src/extension.ts` to debug your extension. 17 | * Find output from your extension in the debug console. 18 | 19 | ## Make changes 20 | 21 | * You can relaunch the extension from the debug toolbar after changing code in `src/extension.ts`. 22 | * You can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes. 23 | 24 | ## Explore the API 25 | 26 | * You can open the full set of our API when you open the file `node_modules/@types/vscode/index.d.ts`. 27 | 28 | ## Run tests 29 | 30 | * Install the [Extension Test Runner](https://marketplace.visualstudio.com/items?itemName=ms-vscode.extension-test-runner) 31 | * Run the "watch" task via the **Tasks: Run Task** command. Make sure this is running, or tests might not be discovered. 32 | * Open the Testing view from the activity bar and click the Run Test" button, or use the hotkey `Ctrl/Cmd + ; A` 33 | * See the output of the test result in the Test Results view. 34 | * Make changes to `src/test/extension.test.ts` or create new test files inside the `test` folder. 35 | * The provided test runner will only consider files matching the name pattern `**.test.ts`. 36 | * You can create folders inside the `test` folder to structure your tests any way you want. 37 | 38 | ## Go further 39 | 40 | * [Follow UX guidelines](https://code.visualstudio.com/api/ux-guidelines/overview) to create extensions that seamlessly integrate with VS Code's native interface and patterns. 41 | * Reduce the extension size and improve the startup time by [bundling your extension](https://code.visualstudio.com/api/working-with-extensions/bundling-extension). 42 | * [Publish your extension](https://code.visualstudio.com/api/working-with-extensions/publishing-extension) on the VS Code extension marketplace. 43 | * Automate builds by setting up [Continuous Integration](https://code.visualstudio.com/api/working-with-extensions/continuous-integration). 44 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@aashutoshrathi/word-wrap@^1.2.3": 6 | version "1.2.6" 7 | resolved "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz" 8 | integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== 9 | 10 | "@bcoe/v8-coverage@^0.2.3": 11 | version "0.2.3" 12 | resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" 13 | integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== 14 | 15 | "@esbuild/darwin-arm64@0.20.2": 16 | version "0.20.2" 17 | resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz" 18 | integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA== 19 | 20 | "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": 21 | version "4.4.0" 22 | resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" 23 | integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== 24 | dependencies: 25 | eslint-visitor-keys "^3.3.0" 26 | 27 | "@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": 28 | version "4.10.0" 29 | resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz" 30 | integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== 31 | 32 | "@eslint/eslintrc@^2.1.4": 33 | version "2.1.4" 34 | resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz" 35 | integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== 36 | dependencies: 37 | ajv "^6.12.4" 38 | debug "^4.3.2" 39 | espree "^9.6.0" 40 | globals "^13.19.0" 41 | ignore "^5.2.0" 42 | import-fresh "^3.2.1" 43 | js-yaml "^4.1.0" 44 | minimatch "^3.1.2" 45 | strip-json-comments "^3.1.1" 46 | 47 | "@eslint/js@8.57.0": 48 | version "8.57.0" 49 | resolved "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz" 50 | integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== 51 | 52 | "@humanwhocodes/config-array@^0.11.14": 53 | version "0.11.14" 54 | resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz" 55 | integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== 56 | dependencies: 57 | "@humanwhocodes/object-schema" "^2.0.2" 58 | debug "^4.3.1" 59 | minimatch "^3.0.5" 60 | 61 | "@humanwhocodes/module-importer@^1.0.1": 62 | version "1.0.1" 63 | resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" 64 | integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== 65 | 66 | "@humanwhocodes/object-schema@^2.0.2": 67 | version "2.0.3" 68 | resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz" 69 | integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== 70 | 71 | "@isaacs/cliui@^8.0.2": 72 | version "8.0.2" 73 | resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" 74 | integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== 75 | dependencies: 76 | string-width "^5.1.2" 77 | string-width-cjs "npm:string-width@^4.2.0" 78 | strip-ansi "^7.0.1" 79 | strip-ansi-cjs "npm:strip-ansi@^6.0.1" 80 | wrap-ansi "^8.1.0" 81 | wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" 82 | 83 | "@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": 84 | version "0.1.3" 85 | resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" 86 | integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== 87 | 88 | "@jridgewell/resolve-uri@^3.1.0": 89 | version "3.1.2" 90 | resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" 91 | integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== 92 | 93 | "@jridgewell/sourcemap-codec@^1.4.14": 94 | version "1.4.15" 95 | resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" 96 | integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== 97 | 98 | "@jridgewell/trace-mapping@^0.3.12": 99 | version "0.3.25" 100 | resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" 101 | integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== 102 | dependencies: 103 | "@jridgewell/resolve-uri" "^3.1.0" 104 | "@jridgewell/sourcemap-codec" "^1.4.14" 105 | 106 | "@nodelib/fs.scandir@2.1.5": 107 | version "2.1.5" 108 | resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" 109 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 110 | dependencies: 111 | "@nodelib/fs.stat" "2.0.5" 112 | run-parallel "^1.1.9" 113 | 114 | "@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": 115 | version "2.0.5" 116 | resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" 117 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 118 | 119 | "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": 120 | version "1.2.8" 121 | resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" 122 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 123 | dependencies: 124 | "@nodelib/fs.scandir" "2.1.5" 125 | fastq "^1.6.0" 126 | 127 | "@pkgjs/parseargs@^0.11.0": 128 | version "0.11.0" 129 | resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" 130 | integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== 131 | 132 | "@tootallnate/once@1": 133 | version "1.1.2" 134 | resolved "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz" 135 | integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== 136 | 137 | "@types/istanbul-lib-coverage@^2.0.1": 138 | version "2.0.6" 139 | resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz" 140 | integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== 141 | 142 | "@types/json-schema@^7.0.12": 143 | version "7.0.15" 144 | resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" 145 | integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== 146 | 147 | "@types/mocha@^10.0.2", "@types/mocha@^10.0.6": 148 | version "10.0.6" 149 | resolved "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.6.tgz" 150 | integrity sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg== 151 | 152 | "@types/node@18.x": 153 | version "18.19.29" 154 | resolved "https://registry.npmjs.org/@types/node/-/node-18.19.29.tgz" 155 | integrity sha512-5pAX7ggTmWZdhUrhRWLPf+5oM7F80bcKVCBbr0zwEkTNzTJL2CWQjznpFgHYy6GrzkYi2Yjy7DHKoynFxqPV8g== 156 | dependencies: 157 | undici-types "~5.26.4" 158 | 159 | "@types/semver@^7.5.0": 160 | version "7.5.8" 161 | resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz" 162 | integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== 163 | 164 | "@types/vscode@^1.88.0": 165 | version "1.88.0" 166 | resolved "https://registry.npmjs.org/@types/vscode/-/vscode-1.88.0.tgz" 167 | integrity sha512-rWY+Bs6j/f1lvr8jqZTyp5arRMfovdxolcqGi+//+cPDOh8SBvzXH90e7BiSXct5HJ9HGW6jATchbRTpTJpEkw== 168 | 169 | "@typescript-eslint/eslint-plugin@^7.4.0": 170 | version "7.5.0" 171 | resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.5.0.tgz" 172 | integrity sha512-HpqNTH8Du34nLxbKgVMGljZMG0rJd2O9ecvr2QLYp+7512ty1j42KnsFwspPXg1Vh8an9YImf6CokUBltisZFQ== 173 | dependencies: 174 | "@eslint-community/regexpp" "^4.5.1" 175 | "@typescript-eslint/scope-manager" "7.5.0" 176 | "@typescript-eslint/type-utils" "7.5.0" 177 | "@typescript-eslint/utils" "7.5.0" 178 | "@typescript-eslint/visitor-keys" "7.5.0" 179 | debug "^4.3.4" 180 | graphemer "^1.4.0" 181 | ignore "^5.2.4" 182 | natural-compare "^1.4.0" 183 | semver "^7.5.4" 184 | ts-api-utils "^1.0.1" 185 | 186 | "@typescript-eslint/parser@^7.0.0", "@typescript-eslint/parser@^7.4.0": 187 | version "7.5.0" 188 | resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.5.0.tgz" 189 | integrity sha512-cj+XGhNujfD2/wzR1tabNsidnYRaFfEkcULdcIyVBYcXjBvBKOes+mpMBP7hMpOyk+gBcfXsrg4NBGAStQyxjQ== 190 | dependencies: 191 | "@typescript-eslint/scope-manager" "7.5.0" 192 | "@typescript-eslint/types" "7.5.0" 193 | "@typescript-eslint/typescript-estree" "7.5.0" 194 | "@typescript-eslint/visitor-keys" "7.5.0" 195 | debug "^4.3.4" 196 | 197 | "@typescript-eslint/scope-manager@7.5.0": 198 | version "7.5.0" 199 | resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.5.0.tgz" 200 | integrity sha512-Z1r7uJY0MDeUlql9XJ6kRVgk/sP11sr3HKXn268HZyqL7i4cEfrdFuSSY/0tUqT37l5zT0tJOsuDP16kio85iA== 201 | dependencies: 202 | "@typescript-eslint/types" "7.5.0" 203 | "@typescript-eslint/visitor-keys" "7.5.0" 204 | 205 | "@typescript-eslint/type-utils@7.5.0": 206 | version "7.5.0" 207 | resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.5.0.tgz" 208 | integrity sha512-A021Rj33+G8mx2Dqh0nMO9GyjjIBK3MqgVgZ2qlKf6CJy51wY/lkkFqq3TqqnH34XyAHUkq27IjlUkWlQRpLHw== 209 | dependencies: 210 | "@typescript-eslint/typescript-estree" "7.5.0" 211 | "@typescript-eslint/utils" "7.5.0" 212 | debug "^4.3.4" 213 | ts-api-utils "^1.0.1" 214 | 215 | "@typescript-eslint/types@7.5.0": 216 | version "7.5.0" 217 | resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.5.0.tgz" 218 | integrity sha512-tv5B4IHeAdhR7uS4+bf8Ov3k793VEVHd45viRRkehIUZxm0WF82VPiLgHzA/Xl4TGPg1ZD49vfxBKFPecD5/mg== 219 | 220 | "@typescript-eslint/typescript-estree@7.5.0": 221 | version "7.5.0" 222 | resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.5.0.tgz" 223 | integrity sha512-YklQQfe0Rv2PZEueLTUffiQGKQneiIEKKnfIqPIOxgM9lKSZFCjT5Ad4VqRKj/U4+kQE3fa8YQpskViL7WjdPQ== 224 | dependencies: 225 | "@typescript-eslint/types" "7.5.0" 226 | "@typescript-eslint/visitor-keys" "7.5.0" 227 | debug "^4.3.4" 228 | globby "^11.1.0" 229 | is-glob "^4.0.3" 230 | minimatch "9.0.3" 231 | semver "^7.5.4" 232 | ts-api-utils "^1.0.1" 233 | 234 | "@typescript-eslint/utils@7.5.0": 235 | version "7.5.0" 236 | resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.5.0.tgz" 237 | integrity sha512-3vZl9u0R+/FLQcpy2EHyRGNqAS/ofJ3Ji8aebilfJe+fobK8+LbIFmrHciLVDxjDoONmufDcnVSF38KwMEOjzw== 238 | dependencies: 239 | "@eslint-community/eslint-utils" "^4.4.0" 240 | "@types/json-schema" "^7.0.12" 241 | "@types/semver" "^7.5.0" 242 | "@typescript-eslint/scope-manager" "7.5.0" 243 | "@typescript-eslint/types" "7.5.0" 244 | "@typescript-eslint/typescript-estree" "7.5.0" 245 | semver "^7.5.4" 246 | 247 | "@typescript-eslint/visitor-keys@7.5.0": 248 | version "7.5.0" 249 | resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.5.0.tgz" 250 | integrity sha512-mcuHM/QircmA6O7fy6nn2w/3ditQkj+SgtOc8DW3uQ10Yfj42amm2i+6F2K4YAOPNNTmE6iM1ynM6lrSwdendA== 251 | dependencies: 252 | "@typescript-eslint/types" "7.5.0" 253 | eslint-visitor-keys "^3.4.1" 254 | 255 | "@ungap/structured-clone@^1.2.0": 256 | version "1.2.0" 257 | resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" 258 | integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== 259 | 260 | "@vscode/test-cli@^0.0.8": 261 | version "0.0.8" 262 | resolved "https://registry.npmjs.org/@vscode/test-cli/-/test-cli-0.0.8.tgz" 263 | integrity sha512-sBSMSDzJChiiDjmys2Q6uI4SIoUYf0t6oDsQO3ypaQ7udha9YD4e2On9e9VE5OBayZMpxbgJX+NudmCwJMdOIg== 264 | dependencies: 265 | "@types/mocha" "^10.0.2" 266 | c8 "^9.1.0" 267 | chokidar "^3.5.3" 268 | enhanced-resolve "^5.15.0" 269 | glob "^10.3.10" 270 | minimatch "^9.0.3" 271 | mocha "^10.2.0" 272 | supports-color "^9.4.0" 273 | yargs "^17.7.2" 274 | 275 | "@vscode/test-electron@^2.3.9": 276 | version "2.3.9" 277 | resolved "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.3.9.tgz" 278 | integrity sha512-z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA== 279 | dependencies: 280 | http-proxy-agent "^4.0.1" 281 | https-proxy-agent "^5.0.0" 282 | jszip "^3.10.1" 283 | semver "^7.5.2" 284 | 285 | acorn-jsx@^5.3.2: 286 | version "5.3.2" 287 | resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" 288 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== 289 | 290 | "acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.9.0: 291 | version "8.11.3" 292 | resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz" 293 | integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== 294 | 295 | agent-base@6: 296 | version "6.0.2" 297 | resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" 298 | integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== 299 | dependencies: 300 | debug "4" 301 | 302 | ajv@^6.12.4: 303 | version "6.12.6" 304 | resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" 305 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 306 | dependencies: 307 | fast-deep-equal "^3.1.1" 308 | fast-json-stable-stringify "^2.0.0" 309 | json-schema-traverse "^0.4.1" 310 | uri-js "^4.2.2" 311 | 312 | ansi-colors@4.1.1: 313 | version "4.1.1" 314 | resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" 315 | integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== 316 | 317 | ansi-regex@^5.0.1: 318 | version "5.0.1" 319 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" 320 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 321 | 322 | ansi-regex@^6.0.1: 323 | version "6.0.1" 324 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" 325 | integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== 326 | 327 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 328 | version "4.3.0" 329 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" 330 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 331 | dependencies: 332 | color-convert "^2.0.1" 333 | 334 | ansi-styles@^6.1.0: 335 | version "6.2.1" 336 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" 337 | integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== 338 | 339 | antlr4ts@^0.5.0-alpha.3: 340 | version "0.5.0-alpha.4" 341 | resolved "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz" 342 | integrity sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ== 343 | 344 | anymatch@~3.1.2: 345 | version "3.1.3" 346 | resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" 347 | integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== 348 | dependencies: 349 | normalize-path "^3.0.0" 350 | picomatch "^2.0.4" 351 | 352 | argparse@^2.0.1: 353 | version "2.0.1" 354 | resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" 355 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 356 | 357 | array-union@^2.1.0: 358 | version "2.1.0" 359 | resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" 360 | integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== 361 | 362 | balanced-match@^1.0.0: 363 | version "1.0.2" 364 | resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" 365 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 366 | 367 | binary-extensions@^2.0.0: 368 | version "2.3.0" 369 | resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz" 370 | integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== 371 | 372 | brace-expansion@^1.1.7: 373 | version "1.1.11" 374 | resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" 375 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 376 | dependencies: 377 | balanced-match "^1.0.0" 378 | concat-map "0.0.1" 379 | 380 | brace-expansion@^2.0.1: 381 | version "2.0.1" 382 | resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" 383 | integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== 384 | dependencies: 385 | balanced-match "^1.0.0" 386 | 387 | braces@^3.0.2, braces@~3.0.2: 388 | version "3.0.2" 389 | resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" 390 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 391 | dependencies: 392 | fill-range "^7.0.1" 393 | 394 | browser-stdout@1.3.1: 395 | version "1.3.1" 396 | resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" 397 | integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== 398 | 399 | c8@^9.1.0: 400 | version "9.1.0" 401 | resolved "https://registry.npmjs.org/c8/-/c8-9.1.0.tgz" 402 | integrity sha512-mBWcT5iqNir1zIkzSPyI3NCR9EZCVI3WUD+AVO17MVWTSFNyUueXE82qTeampNtTr+ilN/5Ua3j24LgbCKjDVg== 403 | dependencies: 404 | "@bcoe/v8-coverage" "^0.2.3" 405 | "@istanbuljs/schema" "^0.1.3" 406 | find-up "^5.0.0" 407 | foreground-child "^3.1.1" 408 | istanbul-lib-coverage "^3.2.0" 409 | istanbul-lib-report "^3.0.1" 410 | istanbul-reports "^3.1.6" 411 | test-exclude "^6.0.0" 412 | v8-to-istanbul "^9.0.0" 413 | yargs "^17.7.2" 414 | yargs-parser "^21.1.1" 415 | 416 | callsites@^3.0.0: 417 | version "3.1.0" 418 | resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" 419 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 420 | 421 | camelcase@^6.0.0: 422 | version "6.3.0" 423 | resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" 424 | integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== 425 | 426 | chalk@^4.0.0, chalk@^4.1.0: 427 | version "4.1.2" 428 | resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" 429 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 430 | dependencies: 431 | ansi-styles "^4.1.0" 432 | supports-color "^7.1.0" 433 | 434 | chokidar@^3.5.3: 435 | version "3.6.0" 436 | resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" 437 | integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== 438 | dependencies: 439 | anymatch "~3.1.2" 440 | braces "~3.0.2" 441 | glob-parent "~5.1.2" 442 | is-binary-path "~2.1.0" 443 | is-glob "~4.0.1" 444 | normalize-path "~3.0.0" 445 | readdirp "~3.6.0" 446 | optionalDependencies: 447 | fsevents "~2.3.2" 448 | 449 | chokidar@3.5.3: 450 | version "3.5.3" 451 | resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" 452 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== 453 | dependencies: 454 | anymatch "~3.1.2" 455 | braces "~3.0.2" 456 | glob-parent "~5.1.2" 457 | is-binary-path "~2.1.0" 458 | is-glob "~4.0.1" 459 | normalize-path "~3.0.0" 460 | readdirp "~3.6.0" 461 | optionalDependencies: 462 | fsevents "~2.3.2" 463 | 464 | cliui@^7.0.2: 465 | version "7.0.4" 466 | resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" 467 | integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== 468 | dependencies: 469 | string-width "^4.2.0" 470 | strip-ansi "^6.0.0" 471 | wrap-ansi "^7.0.0" 472 | 473 | cliui@^8.0.1: 474 | version "8.0.1" 475 | resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" 476 | integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== 477 | dependencies: 478 | string-width "^4.2.0" 479 | strip-ansi "^6.0.1" 480 | wrap-ansi "^7.0.0" 481 | 482 | color-convert@^2.0.1: 483 | version "2.0.1" 484 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" 485 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 486 | dependencies: 487 | color-name "~1.1.4" 488 | 489 | color-name@~1.1.4: 490 | version "1.1.4" 491 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" 492 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 493 | 494 | concat-map@0.0.1: 495 | version "0.0.1" 496 | resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" 497 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 498 | 499 | convert-source-map@^2.0.0: 500 | version "2.0.0" 501 | resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" 502 | integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== 503 | 504 | core-util-is@~1.0.0: 505 | version "1.0.3" 506 | resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" 507 | integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== 508 | 509 | cross-spawn@^7.0.0, cross-spawn@^7.0.2: 510 | version "7.0.3" 511 | resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" 512 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 513 | dependencies: 514 | path-key "^3.1.0" 515 | shebang-command "^2.0.0" 516 | which "^2.0.1" 517 | 518 | debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@4, debug@4.3.4: 519 | version "4.3.4" 520 | resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" 521 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 522 | dependencies: 523 | ms "2.1.2" 524 | 525 | decamelize@^4.0.0: 526 | version "4.0.0" 527 | resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" 528 | integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== 529 | 530 | deep-is@^0.1.3: 531 | version "0.1.4" 532 | resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" 533 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== 534 | 535 | diff@5.0.0: 536 | version "5.0.0" 537 | resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" 538 | integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== 539 | 540 | dir-glob@^3.0.1: 541 | version "3.0.1" 542 | resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" 543 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== 544 | dependencies: 545 | path-type "^4.0.0" 546 | 547 | doctrine@^3.0.0: 548 | version "3.0.0" 549 | resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" 550 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 551 | dependencies: 552 | esutils "^2.0.2" 553 | 554 | eastasianwidth@^0.2.0: 555 | version "0.2.0" 556 | resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" 557 | integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== 558 | 559 | emoji-regex@^8.0.0: 560 | version "8.0.0" 561 | resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" 562 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 563 | 564 | emoji-regex@^9.2.2: 565 | version "9.2.2" 566 | resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" 567 | integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== 568 | 569 | enhanced-resolve@^5.15.0: 570 | version "5.16.0" 571 | resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz" 572 | integrity sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA== 573 | dependencies: 574 | graceful-fs "^4.2.4" 575 | tapable "^2.2.0" 576 | 577 | esbuild@^0.20.2: 578 | version "0.20.2" 579 | resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz" 580 | integrity sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g== 581 | optionalDependencies: 582 | "@esbuild/aix-ppc64" "0.20.2" 583 | "@esbuild/android-arm" "0.20.2" 584 | "@esbuild/android-arm64" "0.20.2" 585 | "@esbuild/android-x64" "0.20.2" 586 | "@esbuild/darwin-arm64" "0.20.2" 587 | "@esbuild/darwin-x64" "0.20.2" 588 | "@esbuild/freebsd-arm64" "0.20.2" 589 | "@esbuild/freebsd-x64" "0.20.2" 590 | "@esbuild/linux-arm" "0.20.2" 591 | "@esbuild/linux-arm64" "0.20.2" 592 | "@esbuild/linux-ia32" "0.20.2" 593 | "@esbuild/linux-loong64" "0.20.2" 594 | "@esbuild/linux-mips64el" "0.20.2" 595 | "@esbuild/linux-ppc64" "0.20.2" 596 | "@esbuild/linux-riscv64" "0.20.2" 597 | "@esbuild/linux-s390x" "0.20.2" 598 | "@esbuild/linux-x64" "0.20.2" 599 | "@esbuild/netbsd-x64" "0.20.2" 600 | "@esbuild/openbsd-x64" "0.20.2" 601 | "@esbuild/sunos-x64" "0.20.2" 602 | "@esbuild/win32-arm64" "0.20.2" 603 | "@esbuild/win32-ia32" "0.20.2" 604 | "@esbuild/win32-x64" "0.20.2" 605 | 606 | escalade@^3.1.1: 607 | version "3.1.2" 608 | resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz" 609 | integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== 610 | 611 | escape-string-regexp@^4.0.0, escape-string-regexp@4.0.0: 612 | version "4.0.0" 613 | resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" 614 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 615 | 616 | eslint-scope@^7.2.2: 617 | version "7.2.2" 618 | resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" 619 | integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== 620 | dependencies: 621 | esrecurse "^4.3.0" 622 | estraverse "^5.2.0" 623 | 624 | eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: 625 | version "3.4.3" 626 | resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" 627 | integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== 628 | 629 | "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", eslint@^8.56.0, eslint@^8.57.0: 630 | version "8.57.0" 631 | resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz" 632 | integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== 633 | dependencies: 634 | "@eslint-community/eslint-utils" "^4.2.0" 635 | "@eslint-community/regexpp" "^4.6.1" 636 | "@eslint/eslintrc" "^2.1.4" 637 | "@eslint/js" "8.57.0" 638 | "@humanwhocodes/config-array" "^0.11.14" 639 | "@humanwhocodes/module-importer" "^1.0.1" 640 | "@nodelib/fs.walk" "^1.2.8" 641 | "@ungap/structured-clone" "^1.2.0" 642 | ajv "^6.12.4" 643 | chalk "^4.0.0" 644 | cross-spawn "^7.0.2" 645 | debug "^4.3.2" 646 | doctrine "^3.0.0" 647 | escape-string-regexp "^4.0.0" 648 | eslint-scope "^7.2.2" 649 | eslint-visitor-keys "^3.4.3" 650 | espree "^9.6.1" 651 | esquery "^1.4.2" 652 | esutils "^2.0.2" 653 | fast-deep-equal "^3.1.3" 654 | file-entry-cache "^6.0.1" 655 | find-up "^5.0.0" 656 | glob-parent "^6.0.2" 657 | globals "^13.19.0" 658 | graphemer "^1.4.0" 659 | ignore "^5.2.0" 660 | imurmurhash "^0.1.4" 661 | is-glob "^4.0.0" 662 | is-path-inside "^3.0.3" 663 | js-yaml "^4.1.0" 664 | json-stable-stringify-without-jsonify "^1.0.1" 665 | levn "^0.4.1" 666 | lodash.merge "^4.6.2" 667 | minimatch "^3.1.2" 668 | natural-compare "^1.4.0" 669 | optionator "^0.9.3" 670 | strip-ansi "^6.0.1" 671 | text-table "^0.2.0" 672 | 673 | espree@^9.6.0, espree@^9.6.1: 674 | version "9.6.1" 675 | resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz" 676 | integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== 677 | dependencies: 678 | acorn "^8.9.0" 679 | acorn-jsx "^5.3.2" 680 | eslint-visitor-keys "^3.4.1" 681 | 682 | esquery@^1.4.2: 683 | version "1.5.0" 684 | resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" 685 | integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== 686 | dependencies: 687 | estraverse "^5.1.0" 688 | 689 | esrecurse@^4.3.0: 690 | version "4.3.0" 691 | resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" 692 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 693 | dependencies: 694 | estraverse "^5.2.0" 695 | 696 | estraverse@^5.1.0, estraverse@^5.2.0: 697 | version "5.3.0" 698 | resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" 699 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== 700 | 701 | esutils@^2.0.2: 702 | version "2.0.3" 703 | resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" 704 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 705 | 706 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 707 | version "3.1.3" 708 | resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" 709 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 710 | 711 | fast-glob@^3.2.9: 712 | version "3.3.2" 713 | resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" 714 | integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== 715 | dependencies: 716 | "@nodelib/fs.stat" "^2.0.2" 717 | "@nodelib/fs.walk" "^1.2.3" 718 | glob-parent "^5.1.2" 719 | merge2 "^1.3.0" 720 | micromatch "^4.0.4" 721 | 722 | fast-json-stable-stringify@^2.0.0: 723 | version "2.1.0" 724 | resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" 725 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 726 | 727 | fast-levenshtein@^2.0.6: 728 | version "2.0.6" 729 | resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" 730 | integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== 731 | 732 | fastq@^1.6.0: 733 | version "1.17.1" 734 | resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz" 735 | integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== 736 | dependencies: 737 | reusify "^1.0.4" 738 | 739 | file-entry-cache@^6.0.1: 740 | version "6.0.1" 741 | resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" 742 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== 743 | dependencies: 744 | flat-cache "^3.0.4" 745 | 746 | fill-range@^7.0.1: 747 | version "7.0.1" 748 | resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" 749 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 750 | dependencies: 751 | to-regex-range "^5.0.1" 752 | 753 | find-up@^5.0.0, find-up@5.0.0: 754 | version "5.0.0" 755 | resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" 756 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== 757 | dependencies: 758 | locate-path "^6.0.0" 759 | path-exists "^4.0.0" 760 | 761 | flat-cache@^3.0.4: 762 | version "3.2.0" 763 | resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz" 764 | integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== 765 | dependencies: 766 | flatted "^3.2.9" 767 | keyv "^4.5.3" 768 | rimraf "^3.0.2" 769 | 770 | flat@^5.0.2: 771 | version "5.0.2" 772 | resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" 773 | integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== 774 | 775 | flatted@^3.2.9: 776 | version "3.3.1" 777 | resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz" 778 | integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== 779 | 780 | foreground-child@^3.1.0, foreground-child@^3.1.1: 781 | version "3.1.1" 782 | resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz" 783 | integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== 784 | dependencies: 785 | cross-spawn "^7.0.0" 786 | signal-exit "^4.0.1" 787 | 788 | fs.realpath@^1.0.0: 789 | version "1.0.0" 790 | resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" 791 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== 792 | 793 | fsevents@~2.3.2: 794 | version "2.3.3" 795 | resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" 796 | integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== 797 | 798 | get-caller-file@^2.0.5: 799 | version "2.0.5" 800 | resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" 801 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 802 | 803 | glob-parent@^5.1.2, glob-parent@~5.1.2: 804 | version "5.1.2" 805 | resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" 806 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 807 | dependencies: 808 | is-glob "^4.0.1" 809 | 810 | glob-parent@^6.0.2: 811 | version "6.0.2" 812 | resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" 813 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== 814 | dependencies: 815 | is-glob "^4.0.3" 816 | 817 | glob@^10.3.10: 818 | version "10.3.12" 819 | resolved "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz" 820 | integrity sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg== 821 | dependencies: 822 | foreground-child "^3.1.0" 823 | jackspeak "^2.3.6" 824 | minimatch "^9.0.1" 825 | minipass "^7.0.4" 826 | path-scurry "^1.10.2" 827 | 828 | glob@^7.1.3, glob@^7.1.4: 829 | version "7.2.3" 830 | resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" 831 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== 832 | dependencies: 833 | fs.realpath "^1.0.0" 834 | inflight "^1.0.4" 835 | inherits "2" 836 | minimatch "^3.1.1" 837 | once "^1.3.0" 838 | path-is-absolute "^1.0.0" 839 | 840 | glob@8.1.0: 841 | version "8.1.0" 842 | resolved "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz" 843 | integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== 844 | dependencies: 845 | fs.realpath "^1.0.0" 846 | inflight "^1.0.4" 847 | inherits "2" 848 | minimatch "^5.0.1" 849 | once "^1.3.0" 850 | 851 | globals@^13.19.0: 852 | version "13.24.0" 853 | resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" 854 | integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== 855 | dependencies: 856 | type-fest "^0.20.2" 857 | 858 | globby@^11.1.0: 859 | version "11.1.0" 860 | resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" 861 | integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== 862 | dependencies: 863 | array-union "^2.1.0" 864 | dir-glob "^3.0.1" 865 | fast-glob "^3.2.9" 866 | ignore "^5.2.0" 867 | merge2 "^1.4.1" 868 | slash "^3.0.0" 869 | 870 | graceful-fs@^4.2.4: 871 | version "4.2.11" 872 | resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" 873 | integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== 874 | 875 | graphemer@^1.4.0: 876 | version "1.4.0" 877 | resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" 878 | integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== 879 | 880 | has-flag@^4.0.0: 881 | version "4.0.0" 882 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" 883 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 884 | 885 | he@1.2.0: 886 | version "1.2.0" 887 | resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" 888 | integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== 889 | 890 | html-escaper@^2.0.0: 891 | version "2.0.2" 892 | resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" 893 | integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== 894 | 895 | http-proxy-agent@^4.0.1: 896 | version "4.0.1" 897 | resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz" 898 | integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== 899 | dependencies: 900 | "@tootallnate/once" "1" 901 | agent-base "6" 902 | debug "4" 903 | 904 | https-proxy-agent@^5.0.0: 905 | version "5.0.1" 906 | resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" 907 | integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== 908 | dependencies: 909 | agent-base "6" 910 | debug "4" 911 | 912 | ignore@^5.2.0, ignore@^5.2.4: 913 | version "5.3.1" 914 | resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz" 915 | integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== 916 | 917 | immediate@~3.0.5: 918 | version "3.0.6" 919 | resolved "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz" 920 | integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== 921 | 922 | import-fresh@^3.2.1: 923 | version "3.3.0" 924 | resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" 925 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== 926 | dependencies: 927 | parent-module "^1.0.0" 928 | resolve-from "^4.0.0" 929 | 930 | imurmurhash@^0.1.4: 931 | version "0.1.4" 932 | resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" 933 | integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== 934 | 935 | inflight@^1.0.4: 936 | version "1.0.6" 937 | resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" 938 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== 939 | dependencies: 940 | once "^1.3.0" 941 | wrappy "1" 942 | 943 | inherits@~2.0.3, inherits@2: 944 | version "2.0.4" 945 | resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" 946 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 947 | 948 | is-binary-path@~2.1.0: 949 | version "2.1.0" 950 | resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" 951 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 952 | dependencies: 953 | binary-extensions "^2.0.0" 954 | 955 | is-extglob@^2.1.1: 956 | version "2.1.1" 957 | resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" 958 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 959 | 960 | is-fullwidth-code-point@^3.0.0: 961 | version "3.0.0" 962 | resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" 963 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 964 | 965 | is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: 966 | version "4.0.3" 967 | resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" 968 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 969 | dependencies: 970 | is-extglob "^2.1.1" 971 | 972 | is-number@^7.0.0: 973 | version "7.0.0" 974 | resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" 975 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 976 | 977 | is-path-inside@^3.0.3: 978 | version "3.0.3" 979 | resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" 980 | integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== 981 | 982 | is-plain-obj@^2.1.0: 983 | version "2.1.0" 984 | resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" 985 | integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== 986 | 987 | is-unicode-supported@^0.1.0: 988 | version "0.1.0" 989 | resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" 990 | integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== 991 | 992 | isarray@~1.0.0: 993 | version "1.0.0" 994 | resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" 995 | integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== 996 | 997 | isexe@^2.0.0: 998 | version "2.0.0" 999 | resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" 1000 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 1001 | 1002 | istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: 1003 | version "3.2.2" 1004 | resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz" 1005 | integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== 1006 | 1007 | istanbul-lib-report@^3.0.0, istanbul-lib-report@^3.0.1: 1008 | version "3.0.1" 1009 | resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz" 1010 | integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== 1011 | dependencies: 1012 | istanbul-lib-coverage "^3.0.0" 1013 | make-dir "^4.0.0" 1014 | supports-color "^7.1.0" 1015 | 1016 | istanbul-reports@^3.1.6: 1017 | version "3.1.7" 1018 | resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz" 1019 | integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g== 1020 | dependencies: 1021 | html-escaper "^2.0.0" 1022 | istanbul-lib-report "^3.0.0" 1023 | 1024 | jackspeak@^2.3.6: 1025 | version "2.3.6" 1026 | resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz" 1027 | integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== 1028 | dependencies: 1029 | "@isaacs/cliui" "^8.0.2" 1030 | optionalDependencies: 1031 | "@pkgjs/parseargs" "^0.11.0" 1032 | 1033 | js-yaml@^4.1.0, js-yaml@4.1.0: 1034 | version "4.1.0" 1035 | resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" 1036 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== 1037 | dependencies: 1038 | argparse "^2.0.1" 1039 | 1040 | json-buffer@3.0.1: 1041 | version "3.0.1" 1042 | resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" 1043 | integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== 1044 | 1045 | json-schema-traverse@^0.4.1: 1046 | version "0.4.1" 1047 | resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" 1048 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 1049 | 1050 | json-stable-stringify-without-jsonify@^1.0.1: 1051 | version "1.0.1" 1052 | resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" 1053 | integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== 1054 | 1055 | jszip@^3.10.1: 1056 | version "3.10.1" 1057 | resolved "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz" 1058 | integrity sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g== 1059 | dependencies: 1060 | lie "~3.3.0" 1061 | pako "~1.0.2" 1062 | readable-stream "~2.3.6" 1063 | setimmediate "^1.0.5" 1064 | 1065 | keyv@^4.5.3: 1066 | version "4.5.4" 1067 | resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" 1068 | integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== 1069 | dependencies: 1070 | json-buffer "3.0.1" 1071 | 1072 | levn@^0.4.1: 1073 | version "0.4.1" 1074 | resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" 1075 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== 1076 | dependencies: 1077 | prelude-ls "^1.2.1" 1078 | type-check "~0.4.0" 1079 | 1080 | lie@~3.3.0: 1081 | version "3.3.0" 1082 | resolved "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz" 1083 | integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== 1084 | dependencies: 1085 | immediate "~3.0.5" 1086 | 1087 | locate-path@^6.0.0: 1088 | version "6.0.0" 1089 | resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" 1090 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== 1091 | dependencies: 1092 | p-locate "^5.0.0" 1093 | 1094 | lodash.merge@^4.6.2: 1095 | version "4.6.2" 1096 | resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" 1097 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== 1098 | 1099 | log-symbols@4.1.0: 1100 | version "4.1.0" 1101 | resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" 1102 | integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== 1103 | dependencies: 1104 | chalk "^4.1.0" 1105 | is-unicode-supported "^0.1.0" 1106 | 1107 | lru-cache@^10.2.0: 1108 | version "10.2.0" 1109 | resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz" 1110 | integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== 1111 | 1112 | lru-cache@^6.0.0: 1113 | version "6.0.0" 1114 | resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" 1115 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 1116 | dependencies: 1117 | yallist "^4.0.0" 1118 | 1119 | make-dir@^4.0.0: 1120 | version "4.0.0" 1121 | resolved "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz" 1122 | integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== 1123 | dependencies: 1124 | semver "^7.5.3" 1125 | 1126 | merge2@^1.3.0, merge2@^1.4.1: 1127 | version "1.4.1" 1128 | resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" 1129 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 1130 | 1131 | micromatch@^4.0.4: 1132 | version "4.0.5" 1133 | resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" 1134 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== 1135 | dependencies: 1136 | braces "^3.0.2" 1137 | picomatch "^2.3.1" 1138 | 1139 | minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: 1140 | version "3.1.2" 1141 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" 1142 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 1143 | dependencies: 1144 | brace-expansion "^1.1.7" 1145 | 1146 | minimatch@^5.0.1: 1147 | version "5.1.6" 1148 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz" 1149 | integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== 1150 | dependencies: 1151 | brace-expansion "^2.0.1" 1152 | 1153 | minimatch@^9.0.1, minimatch@^9.0.3: 1154 | version "9.0.4" 1155 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz" 1156 | integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== 1157 | dependencies: 1158 | brace-expansion "^2.0.1" 1159 | 1160 | minimatch@5.0.1: 1161 | version "5.0.1" 1162 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz" 1163 | integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== 1164 | dependencies: 1165 | brace-expansion "^2.0.1" 1166 | 1167 | minimatch@9.0.3: 1168 | version "9.0.3" 1169 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" 1170 | integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== 1171 | dependencies: 1172 | brace-expansion "^2.0.1" 1173 | 1174 | "minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.4: 1175 | version "7.0.4" 1176 | resolved "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz" 1177 | integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== 1178 | 1179 | mocha@^10.2.0: 1180 | version "10.4.0" 1181 | resolved "https://registry.npmjs.org/mocha/-/mocha-10.4.0.tgz" 1182 | integrity sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA== 1183 | dependencies: 1184 | ansi-colors "4.1.1" 1185 | browser-stdout "1.3.1" 1186 | chokidar "3.5.3" 1187 | debug "4.3.4" 1188 | diff "5.0.0" 1189 | escape-string-regexp "4.0.0" 1190 | find-up "5.0.0" 1191 | glob "8.1.0" 1192 | he "1.2.0" 1193 | js-yaml "4.1.0" 1194 | log-symbols "4.1.0" 1195 | minimatch "5.0.1" 1196 | ms "2.1.3" 1197 | serialize-javascript "6.0.0" 1198 | strip-json-comments "3.1.1" 1199 | supports-color "8.1.1" 1200 | workerpool "6.2.1" 1201 | yargs "16.2.0" 1202 | yargs-parser "20.2.4" 1203 | yargs-unparser "2.0.0" 1204 | 1205 | ms@2.1.2: 1206 | version "2.1.2" 1207 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" 1208 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1209 | 1210 | ms@2.1.3: 1211 | version "2.1.3" 1212 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" 1213 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 1214 | 1215 | natural-compare@^1.4.0: 1216 | version "1.4.0" 1217 | resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" 1218 | integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== 1219 | 1220 | normalize-path@^3.0.0, normalize-path@~3.0.0: 1221 | version "3.0.0" 1222 | resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" 1223 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 1224 | 1225 | once@^1.3.0: 1226 | version "1.4.0" 1227 | resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" 1228 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 1229 | dependencies: 1230 | wrappy "1" 1231 | 1232 | optionator@^0.9.3: 1233 | version "0.9.3" 1234 | resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz" 1235 | integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== 1236 | dependencies: 1237 | "@aashutoshrathi/word-wrap" "^1.2.3" 1238 | deep-is "^0.1.3" 1239 | fast-levenshtein "^2.0.6" 1240 | levn "^0.4.1" 1241 | prelude-ls "^1.2.1" 1242 | type-check "^0.4.0" 1243 | 1244 | p-limit@^3.0.2: 1245 | version "3.1.0" 1246 | resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" 1247 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 1248 | dependencies: 1249 | yocto-queue "^0.1.0" 1250 | 1251 | p-locate@^5.0.0: 1252 | version "5.0.0" 1253 | resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" 1254 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== 1255 | dependencies: 1256 | p-limit "^3.0.2" 1257 | 1258 | pako@~1.0.2: 1259 | version "1.0.11" 1260 | resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" 1261 | integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== 1262 | 1263 | parent-module@^1.0.0: 1264 | version "1.0.1" 1265 | resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" 1266 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 1267 | dependencies: 1268 | callsites "^3.0.0" 1269 | 1270 | path-exists@^4.0.0: 1271 | version "4.0.0" 1272 | resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" 1273 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 1274 | 1275 | path-is-absolute@^1.0.0: 1276 | version "1.0.1" 1277 | resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" 1278 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== 1279 | 1280 | path-key@^3.1.0: 1281 | version "3.1.1" 1282 | resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" 1283 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 1284 | 1285 | path-scurry@^1.10.2: 1286 | version "1.10.2" 1287 | resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz" 1288 | integrity sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA== 1289 | dependencies: 1290 | lru-cache "^10.2.0" 1291 | minipass "^5.0.0 || ^6.0.2 || ^7.0.0" 1292 | 1293 | path-type@^4.0.0: 1294 | version "4.0.0" 1295 | resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" 1296 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== 1297 | 1298 | picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: 1299 | version "2.3.1" 1300 | resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" 1301 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 1302 | 1303 | prelude-ls@^1.2.1: 1304 | version "1.2.1" 1305 | resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" 1306 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== 1307 | 1308 | process-nextick-args@~2.0.0: 1309 | version "2.0.1" 1310 | resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" 1311 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== 1312 | 1313 | punycode@^2.1.0: 1314 | version "2.3.1" 1315 | resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" 1316 | integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== 1317 | 1318 | python-ast@^0.1.0: 1319 | version "0.1.0" 1320 | resolved "https://registry.npmjs.org/python-ast/-/python-ast-0.1.0.tgz" 1321 | integrity sha512-uMPE7HRMfsbHtQYPg/+EH9MJkynLfLr+0VJbeBgJHpt2wuDgf5hZrEczOIGNFKaO0W1HWiL7bSxA/EOOo70mIQ== 1322 | dependencies: 1323 | antlr4ts "^0.5.0-alpha.3" 1324 | 1325 | queue-microtask@^1.2.2: 1326 | version "1.2.3" 1327 | resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" 1328 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 1329 | 1330 | randombytes@^2.1.0: 1331 | version "2.1.0" 1332 | resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" 1333 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== 1334 | dependencies: 1335 | safe-buffer "^5.1.0" 1336 | 1337 | readable-stream@~2.3.6: 1338 | version "2.3.8" 1339 | resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" 1340 | integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== 1341 | dependencies: 1342 | core-util-is "~1.0.0" 1343 | inherits "~2.0.3" 1344 | isarray "~1.0.0" 1345 | process-nextick-args "~2.0.0" 1346 | safe-buffer "~5.1.1" 1347 | string_decoder "~1.1.1" 1348 | util-deprecate "~1.0.1" 1349 | 1350 | readdirp@~3.6.0: 1351 | version "3.6.0" 1352 | resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" 1353 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 1354 | dependencies: 1355 | picomatch "^2.2.1" 1356 | 1357 | require-directory@^2.1.1: 1358 | version "2.1.1" 1359 | resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" 1360 | integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== 1361 | 1362 | resolve-from@^4.0.0: 1363 | version "4.0.0" 1364 | resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" 1365 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 1366 | 1367 | reusify@^1.0.4: 1368 | version "1.0.4" 1369 | resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" 1370 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 1371 | 1372 | rimraf@^3.0.2: 1373 | version "3.0.2" 1374 | resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" 1375 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 1376 | dependencies: 1377 | glob "^7.1.3" 1378 | 1379 | run-parallel@^1.1.9: 1380 | version "1.2.0" 1381 | resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" 1382 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 1383 | dependencies: 1384 | queue-microtask "^1.2.2" 1385 | 1386 | safe-buffer@^5.1.0: 1387 | version "5.2.1" 1388 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" 1389 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1390 | 1391 | safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1392 | version "5.1.2" 1393 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" 1394 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 1395 | 1396 | semver@^7.5.2, semver@^7.5.3, semver@^7.5.4: 1397 | version "7.6.0" 1398 | resolved "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz" 1399 | integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== 1400 | dependencies: 1401 | lru-cache "^6.0.0" 1402 | 1403 | serialize-javascript@6.0.0: 1404 | version "6.0.0" 1405 | resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" 1406 | integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== 1407 | dependencies: 1408 | randombytes "^2.1.0" 1409 | 1410 | setimmediate@^1.0.5: 1411 | version "1.0.5" 1412 | resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" 1413 | integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== 1414 | 1415 | shebang-command@^2.0.0: 1416 | version "2.0.0" 1417 | resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" 1418 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 1419 | dependencies: 1420 | shebang-regex "^3.0.0" 1421 | 1422 | shebang-regex@^3.0.0: 1423 | version "3.0.0" 1424 | resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" 1425 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 1426 | 1427 | signal-exit@^4.0.1: 1428 | version "4.1.0" 1429 | resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" 1430 | integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== 1431 | 1432 | slash@^3.0.0: 1433 | version "3.0.0" 1434 | resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" 1435 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== 1436 | 1437 | string_decoder@~1.1.1: 1438 | version "1.1.1" 1439 | resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" 1440 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 1441 | dependencies: 1442 | safe-buffer "~5.1.0" 1443 | 1444 | "string-width-cjs@npm:string-width@^4.2.0": 1445 | version "4.2.3" 1446 | resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" 1447 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 1448 | dependencies: 1449 | emoji-regex "^8.0.0" 1450 | is-fullwidth-code-point "^3.0.0" 1451 | strip-ansi "^6.0.1" 1452 | 1453 | string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: 1454 | version "4.2.3" 1455 | resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" 1456 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 1457 | dependencies: 1458 | emoji-regex "^8.0.0" 1459 | is-fullwidth-code-point "^3.0.0" 1460 | strip-ansi "^6.0.1" 1461 | 1462 | string-width@^5.0.1, string-width@^5.1.2: 1463 | version "5.1.2" 1464 | resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" 1465 | integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== 1466 | dependencies: 1467 | eastasianwidth "^0.2.0" 1468 | emoji-regex "^9.2.2" 1469 | strip-ansi "^7.0.1" 1470 | 1471 | "strip-ansi-cjs@npm:strip-ansi@^6.0.1": 1472 | version "6.0.1" 1473 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" 1474 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 1475 | dependencies: 1476 | ansi-regex "^5.0.1" 1477 | 1478 | strip-ansi@^6.0.0, strip-ansi@^6.0.1: 1479 | version "6.0.1" 1480 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" 1481 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 1482 | dependencies: 1483 | ansi-regex "^5.0.1" 1484 | 1485 | strip-ansi@^7.0.1: 1486 | version "7.1.0" 1487 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz" 1488 | integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== 1489 | dependencies: 1490 | ansi-regex "^6.0.1" 1491 | 1492 | strip-json-comments@^3.1.1, strip-json-comments@3.1.1: 1493 | version "3.1.1" 1494 | resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" 1495 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 1496 | 1497 | supports-color@^7.1.0: 1498 | version "7.2.0" 1499 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" 1500 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1501 | dependencies: 1502 | has-flag "^4.0.0" 1503 | 1504 | supports-color@^9.4.0: 1505 | version "9.4.0" 1506 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz" 1507 | integrity sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw== 1508 | 1509 | supports-color@8.1.1: 1510 | version "8.1.1" 1511 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" 1512 | integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== 1513 | dependencies: 1514 | has-flag "^4.0.0" 1515 | 1516 | tapable@^2.2.0: 1517 | version "2.2.1" 1518 | resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz" 1519 | integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== 1520 | 1521 | test-exclude@^6.0.0: 1522 | version "6.0.0" 1523 | resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" 1524 | integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== 1525 | dependencies: 1526 | "@istanbuljs/schema" "^0.1.2" 1527 | glob "^7.1.4" 1528 | minimatch "^3.0.4" 1529 | 1530 | text-table@^0.2.0: 1531 | version "0.2.0" 1532 | resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" 1533 | integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== 1534 | 1535 | to-regex-range@^5.0.1: 1536 | version "5.0.1" 1537 | resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" 1538 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1539 | dependencies: 1540 | is-number "^7.0.0" 1541 | 1542 | ts-api-utils@^1.0.1: 1543 | version "1.3.0" 1544 | resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz" 1545 | integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== 1546 | 1547 | type-check@^0.4.0, type-check@~0.4.0: 1548 | version "0.4.0" 1549 | resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" 1550 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== 1551 | dependencies: 1552 | prelude-ls "^1.2.1" 1553 | 1554 | type-fest@^0.20.2: 1555 | version "0.20.2" 1556 | resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" 1557 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== 1558 | 1559 | typescript@^5.3.3, typescript@>=4.2.0: 1560 | version "5.4.4" 1561 | resolved "https://registry.npmjs.org/typescript/-/typescript-5.4.4.tgz" 1562 | integrity sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw== 1563 | 1564 | undici-types@~5.26.4: 1565 | version "5.26.5" 1566 | resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" 1567 | integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== 1568 | 1569 | uri-js@^4.2.2: 1570 | version "4.4.1" 1571 | resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" 1572 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 1573 | dependencies: 1574 | punycode "^2.1.0" 1575 | 1576 | util-deprecate@~1.0.1: 1577 | version "1.0.2" 1578 | resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" 1579 | integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== 1580 | 1581 | v8-to-istanbul@^9.0.0: 1582 | version "9.2.0" 1583 | resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz" 1584 | integrity sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA== 1585 | dependencies: 1586 | "@jridgewell/trace-mapping" "^0.3.12" 1587 | "@types/istanbul-lib-coverage" "^2.0.1" 1588 | convert-source-map "^2.0.0" 1589 | 1590 | which@^2.0.1: 1591 | version "2.0.2" 1592 | resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" 1593 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 1594 | dependencies: 1595 | isexe "^2.0.0" 1596 | 1597 | workerpool@6.2.1: 1598 | version "6.2.1" 1599 | resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz" 1600 | integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== 1601 | 1602 | "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": 1603 | version "7.0.0" 1604 | resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" 1605 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 1606 | dependencies: 1607 | ansi-styles "^4.0.0" 1608 | string-width "^4.1.0" 1609 | strip-ansi "^6.0.0" 1610 | 1611 | wrap-ansi@^7.0.0: 1612 | version "7.0.0" 1613 | resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" 1614 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 1615 | dependencies: 1616 | ansi-styles "^4.0.0" 1617 | string-width "^4.1.0" 1618 | strip-ansi "^6.0.0" 1619 | 1620 | wrap-ansi@^8.1.0: 1621 | version "8.1.0" 1622 | resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" 1623 | integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== 1624 | dependencies: 1625 | ansi-styles "^6.1.0" 1626 | string-width "^5.0.1" 1627 | strip-ansi "^7.0.1" 1628 | 1629 | wrappy@1: 1630 | version "1.0.2" 1631 | resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" 1632 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 1633 | 1634 | y18n@^5.0.5: 1635 | version "5.0.8" 1636 | resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" 1637 | integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== 1638 | 1639 | yallist@^4.0.0: 1640 | version "4.0.0" 1641 | resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" 1642 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 1643 | 1644 | yargs-parser@^20.2.2: 1645 | version "20.2.9" 1646 | resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" 1647 | integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== 1648 | 1649 | yargs-parser@^21.1.1: 1650 | version "21.1.1" 1651 | resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" 1652 | integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== 1653 | 1654 | yargs-parser@20.2.4: 1655 | version "20.2.4" 1656 | resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" 1657 | integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== 1658 | 1659 | yargs-unparser@2.0.0: 1660 | version "2.0.0" 1661 | resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" 1662 | integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== 1663 | dependencies: 1664 | camelcase "^6.0.0" 1665 | decamelize "^4.0.0" 1666 | flat "^5.0.2" 1667 | is-plain-obj "^2.1.0" 1668 | 1669 | yargs@^17.7.2: 1670 | version "17.7.2" 1671 | resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" 1672 | integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== 1673 | dependencies: 1674 | cliui "^8.0.1" 1675 | escalade "^3.1.1" 1676 | get-caller-file "^2.0.5" 1677 | require-directory "^2.1.1" 1678 | string-width "^4.2.3" 1679 | y18n "^5.0.5" 1680 | yargs-parser "^21.1.1" 1681 | 1682 | yargs@16.2.0: 1683 | version "16.2.0" 1684 | resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" 1685 | integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== 1686 | dependencies: 1687 | cliui "^7.0.2" 1688 | escalade "^3.1.1" 1689 | get-caller-file "^2.0.5" 1690 | require-directory "^2.1.1" 1691 | string-width "^4.2.0" 1692 | y18n "^5.0.5" 1693 | yargs-parser "^20.2.2" 1694 | 1695 | yocto-queue@^0.1.0: 1696 | version "0.1.0" 1697 | resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" 1698 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== 1699 | --------------------------------------------------------------------------------