diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 0136a39f3..000000000 --- a/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -gulpfile.ts -.eslintrc.js diff --git a/.nvmrc b/.nvmrc index d4b7699d3..2bd5a0a98 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -20.18.1 +22 diff --git a/.vscode-test.mjs b/.vscode-test.mjs new file mode 100644 index 000000000..5b8a8ae40 --- /dev/null +++ b/.vscode-test.mjs @@ -0,0 +1,6 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See LICENSE.md in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +export { azExtTestConfig as default } from '@microsoft/vscode-azext-eng/vscode-test'; // Other configurations exist diff --git a/.vscode/extensions.json b/.vscode/extensions.json index a9572562e..304e7d875 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,6 +1,7 @@ { "recommendations": [ "dbaeumer.vscode-eslint", + "connor4312.esbuild-problem-matchers", "ms-azuretools.vscode-azureresourcegroups" ] } diff --git a/.vscode/launch.json b/.vscode/launch.json index 402650c8d..c22b475e0 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -6,102 +6,49 @@ "name": "Launch Extension", "type": "extensionHost", "request": "launch", - "runtimeExecutable": "${execPath}", "args": [ "--extensionDevelopmentPath=${workspaceFolder}" ], "outFiles": [ - "${workspaceFolder}/out/**/*.js" + "${workspaceFolder}/dist/**/*.{js,mjs,cjs}", ], - "preLaunchTask": "${defaultBuildTask}", + "preLaunchTask": "Watch: ESBuild", "env": { - "DEBUGTELEMETRY": "v", - "NODE_DEBUG": "" + "DEBUGTELEMETRY": "v" } }, { "name": "Launch Extension + Host", "type": "extensionHost", "request": "launch", - "runtimeExecutable": "${execPath}", "args": [ "--extensionDevelopmentPath=${workspaceFolder}", "--extensionDevelopmentPath=${workspaceFolder}/../vscode-azureresourcegroups" ], "outFiles": [ - "${workspaceFolder}/out/**/*.js" + "${workspaceFolder}/dist/**/*.{js,mjs,cjs}", ], - "preLaunchTask": "${defaultBuildTask}", + "preLaunchTask": "Watch: ESBuild", "env": { - "DEBUGTELEMETRY": "v", - "NODE_DEBUG": "" - } - }, - { - "name": "Launch Extension (webpack)", - "type": "extensionHost", - "request": "launch", - "runtimeExecutable": "${execPath}", - "args": [ - "--extensionDevelopmentPath=${workspaceFolder}" - ], - "outFiles": [ - "${workspaceFolder}/dist/**/*.js" - ], - "preLaunchTask": "npm: webpack", - "env": { - "DEBUGTELEMETRY": "v", - "NODE_DEBUG": "", - "DEBUG_WEBPACK": "1" + "DEBUGTELEMETRY": "v" } }, { "name": "Launch Tests", "type": "extensionHost", "request": "launch", - "runtimeExecutable": "${execPath}", - "args": [ - "--extensionDevelopmentPath=${workspaceFolder}", - "--extensionTestsPath=${workspaceFolder}/out/test/index", - "${workspaceFolder}/test/test.code-workspace" - ], + "testConfiguration": "${workspaceFolder}/.vscode-test.mjs", "outFiles": [ - "${workspaceFolder}/out/**/*.js" + "${workspaceFolder}/dist/**/*.{js,mjs,cjs}", + "${workspaceFolder}/test/**/*.{ts,mts,cts}", // We are using TSX so out files *are* the source files ], - "preLaunchTask": "${defaultBuildTask}", + "preLaunchTask": "Watch: ESBuild", "env": { - "MOCHA_grep": "", // RegExp of tests to run (empty for all) - "MOCHA_timeout": "0", // Disable time-outs "DEBUGTELEMETRY": "v", - "NODE_DEBUG": "", "FUNC_PATH": "func", "AZFUNC_UPDATE_BACKUP_TEMPLATES": "", "AzCode_EnableLongRunningTestsLocal": "", } - }, - { - "name": "Launch Tests (webpack)", - "type": "extensionHost", - "request": "launch", - "runtimeExecutable": "${execPath}", - "args": [ - "--extensionDevelopmentPath=${workspaceFolder}", - "--extensionTestsPath=${workspaceFolder}/dist/test/index", - "${workspaceFolder}/test/test.code-workspace" - ], - "outFiles": [ - "${workspaceFolder}/dist/**/*.js" - ], - "preLaunchTask": "npm: webpack", - "env": { - "MOCHA_grep": "", // RegExp of tests to run (empty for all) - "MOCHA_timeout": "0", // Disable time-outs - "DEBUGTELEMETRY": "v", - "NODE_DEBUG": "", - "DEBUG_WEBPACK": "1", - "ENABLE_LONG_RUNNING_TESTS": "", - "FUNC_PATH": "func" - } } ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index 6edb54fcb..62004225b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -17,7 +17,5 @@ "**/node_modules": true, ".vscode-test": true, "resources/backup*Templates": true - }, - "typescript.preferences.importModuleSpecifier": "relative", - "typescript.tsdk": "node_modules/typescript/lib" + } } diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 5c4125cd9..7ddcc1d43 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -2,22 +2,43 @@ "version": "2.0.0", "tasks": [ { - "type": "npm", - "script": "compile", + "label": "Watch: ESBuild", + "type": "shell", + "command": "npm", + "args": [ + "run", + "build:esbuild", + "--", + "--watch", + ], + "problemMatcher": "$esbuild-watch", + "presentation": { + "reveal": "silent", + }, "group": { "kind": "build", - "isDefault": true }, "isBackground": true, + }, + { + "label": "Watch: Check Types", + "type": "shell", + "command": "npm", + "args": [ + "run", + "build:check", + "--", + "--watch", + ], + "problemMatcher": "$tsc-watch", "presentation": { - "reveal": "never" + "revealProblems": "onProblem", }, - "problemMatcher": "$tsc-watch" + "group": { + "kind": "build", + "isDefault": true, + }, + "isBackground": true, }, - { - "type": "npm", - "script": "lint", - "problemMatcher": "$eslint-stylish" - } ] } diff --git a/esbuild.mjs b/esbuild.mjs new file mode 100644 index 000000000..44f86dc33 --- /dev/null +++ b/esbuild.mjs @@ -0,0 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { autoEsbuildOrWatch, autoSelectEsbuildConfig } from '@microsoft/vscode-azext-eng/esbuild'; + +await autoEsbuildOrWatch(autoSelectEsbuildConfig()); diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 000000000..27aca9661 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,49 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See LICENSE.md in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { azExtEslintRecommended } from '@microsoft/vscode-azext-eng/eslint'; // Other configurations exist +import { defineConfig } from 'eslint/config'; + +export default defineConfig([ + { + ignores: ['test/**', 'webpack.config.js', '.eslintrc.js', 'scripts/**'], + }, + ...azExtEslintRecommended, + { + rules: { + '@typescript-eslint/no-namespace': 'off', + 'no-useless-escape': 'off', + 'no-unused-vars': 'off', + '@typescript-eslint/no-empty-object-type': 'off', + '@typescript-eslint/no-require-imports': 'off', + 'no-case-declarations': 'off', + 'no-template-curly-in-string': 'off', // Used for VS Code task variable substitution patterns + '@typescript-eslint/no-unused-vars': [ + 'error', + { + argsIgnorePattern: '^_', + varsIgnorePattern: '^_', + caughtErrorsIgnorePattern: '^_', + }, + ], + '@typescript-eslint/naming-convention': [ + 'error', + { + selector: 'default', + format: ['camelCase', 'PascalCase', 'snake_case', 'UPPER_CASE'], + leadingUnderscore: 'allow' + }, + { + selector: 'objectLiteralProperty', + format: null, + filter: { + regex: '^(Content-Type|Cache-Control|x-functions-key|api-version)$', + match: true + } + }, + ] + } + }, +]); diff --git a/extension.bundle.ts b/extension.bundle.ts deleted file mode 100644 index 8c4c823f2..000000000 --- a/extension.bundle.ts +++ /dev/null @@ -1,58 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See LICENSE.md in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -/** - * This is the external face of extension.bundle.js, the main webpack bundle for the extension. - * Anything needing to be exposed outside of the extension sources must be exported from here, because - * everything else will be in private modules in extension.bundle.js. - */ - -// Exports for tests -// The tests are not packaged with the webpack bundle and therefore only have access to code exported from this file. -// -// The tests should import '../extension.bundle'. At design-time they live in tests/ and so will pick up this file (extension.bundle.ts). -// At runtime the tests live in dist/tests and will therefore pick up the main webpack bundle at dist/extension.bundle.js. -export { createAzureClient, createGenericClient } from '@microsoft/vscode-azext-azureutils'; -export { AzExtTreeDataProvider, DialogResponses, IActionContext, nonNullValue, parseError, registerOnActionStartHandler } from '@microsoft/vscode-azext-utils'; -export * from './src/commands/addBinding/addBinding'; -export * from './src/commands/copyFunctionUrl'; -export * from './src/commands/createFunction/createFunction'; -export * from './src/commands/createFunction/dotnetSteps/DotnetNamespaceStep'; -export * from './src/commands/createFunctionApp/createFunctionApp'; -export * from './src/commands/createNewProject/createNewProject'; -export * from './src/commands/createNewProject/ProjectCreateStep/JavaScriptProjectCreateStep'; -export * from './src/commands/deleteFunctionApp'; -export * from './src/commands/deploy/deploy'; -export * from './src/commands/deploy/verifyAppSettings'; -export * from './src/commands/initProjectForVSCode/initProjectForVSCode'; -export * from './src/constants'; -export * from './src/utils/durableUtils'; -// Export activate/deactivate for main.js -export { activateInternal, deactivateInternal } from './src/extension'; -export * from './src/extensionVariables'; -export * from './src/funcConfig/function'; -export * from './src/funcCoreTools/hasMinFuncCliVersion'; -export * from './src/FuncVersion'; -export * from './src/templates/CentralTemplateProvider'; -export * from './src/templates/IFunctionTemplate'; -export * from './src/templates/script/getScriptResourcesLanguage'; -export * from './src/templates/TemplateProviderBase'; -export * from './src/tree/AzureAccountTreeItemWithProjects'; -export * from './src/utils/cpUtils'; -export * from './src/utils/delay'; -export * from './src/utils/envUtils'; -export * from './src/utils/fs'; -export * from './src/utils/nonNull'; -export * from './src/utils/nugetUtils'; -export * from './src/utils/parseJson'; -export * from './src/utils/requestUtils'; -export * from './src/utils/venvUtils'; -export * from './src/utils/workspace'; -export * from './src/vsCodeConfig/extensions'; -export * from './src/vsCodeConfig/launch'; -export * from './src/vsCodeConfig/settings'; -export * from './src/vsCodeConfig/tasks'; - -// NOTE: The auto-fix action "source.organizeImports" does weird things with this file, but there doesn't seem to be a way to disable it on a per-file basis so we'll just let it happen diff --git a/gulpfile.ts b/gulpfile.ts deleted file mode 100644 index 65262d4e9..000000000 --- a/gulpfile.ts +++ /dev/null @@ -1,142 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -import * as msRest from '@azure/ms-rest-js'; -import { gulp_webpack } from '@microsoft/vscode-azext-dev'; -import { exec } from 'child_process'; -import * as extract from 'extract-zip'; -import * as fse from 'fs-extra'; -import * as gulp from 'gulp'; -import * as https from 'https'; -import * as os from 'os'; -import * as path from 'path'; - -async function prepareForWebpack(): Promise { - const mainJsPath: string = path.join(__dirname, 'main.js'); - let contents: string = (await fse.readFile(mainJsPath)).toString(); - contents = contents - .replace('out/src/extension', 'dist/extension.bundle') - .replace(', true /* ignoreBundle */', ''); - await fse.writeFile(mainJsPath, contents); -} - -let downloadLink: string; -async function getFuncLink() { - const client = new msRest.ServiceClient(); - const cliFeed = JSON.parse((await client.sendRequest({ method: 'GET', url: 'https://aka.ms/V00v5v' })).bodyAsText as string); - const version = cliFeed.tags['v4-prerelease'].release; - console.log(`Func cli feed version: ${version}`); - const cliRelease = cliFeed.releases[version].coreTools.find((rel) => { - return rel.Architecture === 'x64' && ( - matchesCliFeedOS(rel.OperatingSystem) || - matchesCliFeedOS(rel.OS) - ); - }); - - downloadLink = cliRelease.downloadLink; - console.log(`Func downloadLink: ${downloadLink}`); -} - -function matchesCliFeedOS(platform: string) { - switch (process.platform) { - case 'win32': - return platform === 'Windows'; - case 'darwin': - return platform === 'MacOS'; - default: - return platform === 'Linux'; - } -} - -async function cleanReadme() { - const readmePath: string = path.join(__dirname, 'README.md'); - let data: string = (await fse.readFile(readmePath)).toString(); - data = data.replace(/.*?/gis, ''); - await fse.writeFile(readmePath, data); -} - -const funcDir = path.join(os.homedir(), 'tools', 'func'); -const funcZip = 'funccli.zip'; -const funcExecutable = process.platform === 'win32' ? 'func.exe' : 'func'; - -async function downloadFuncCli() { - if (fse.pathExistsSync(funcDir)) { - console.log('Removing old install of func.'); - fse.removeSync(funcDir); - } - - const funcZipPath = path.join(funcDir, funcZip); - await fse.ensureFile(funcZipPath); - - try { - await download(downloadLink, funcZipPath); - console.log('Successfully downloaded the func CLI zip at ' + funcZipPath); - } catch (e) { - console.log('Failed to download the func CLI zip at ' + funcZipPath); - console.error(e); - throw e; - } -} - -function download(url: string, targetPath: string): Promise { - return new Promise((resolve, reject) => { - const request = https.get(url, (response) => { - if (response.statusCode !== 200) { - reject(new Error('Request for func CLI responded with status code: ' + response.statusCode)); - return; - } - response.on('error', (error) => reject(new Error('Response error: ' + error.message))); - - const pipeline = response.pipe(fse.createWriteStream(targetPath)); - pipeline.on('error', (error) => reject(new Error('Write error: ' + error.message))); - pipeline.on('finish', resolve); - }); - - request.on('error', (error) => reject(new Error('Failed to make GET request: ' + error.message))); - }); -} - -async function extractFuncCli() { - const funcZipPath: string = path.join(funcDir, funcZip); - - try { - // Extract - await extract(funcZipPath, { dir: funcDir }); - console.log('Successfully extracted func CLI.'); - - // chmod +x - console.log('Setting executable permissions...'); - await fse.chmod(path.join(funcDir, funcExecutable), 755); - console.log('Successfully set executable permissions.'); - } catch (e) { - console.log('Failed to install func CLI.') - console.error(e); - throw e; - } finally { - await fse.remove(funcZipPath); - } -} - -async function printFuncVersion() { - const funcExecutablePath = path.join(funcDir, funcExecutable); - - await new Promise((resolve, reject) => { - exec(`"${funcExecutablePath}" --version`, (error, stdout, stderr) => { - if (stderr || error) { - const failed = new Error(`Failed to verify: ${stderr || error}`); - console.error(failed); - reject(failed); - } else { - console.log(`Verified func CLI version:\n${stdout}`); - resolve(); - } - }); - }); -} - -exports['webpack-dev'] = gulp.series(prepareForWebpack, () => gulp_webpack('development')); -exports['webpack-prod'] = gulp.series(prepareForWebpack, () => gulp_webpack('production')); -exports.preTest = gulp.series(getFuncLink, downloadFuncCli, extractFuncCli, printFuncVersion); -exports.cleanReadme = cleanReadme; diff --git a/main.js b/main.js index 01717236a..cc52cc9d0 100644 --- a/main.js +++ b/main.js @@ -16,10 +16,11 @@ let perfStats = { Object.defineProperty(exports, "__esModule", { value: true }); -const extension = require('./out/src/extension'); +// eslint-disable-next-line @typescript-eslint/no-var-requires +const extension = require("./dist/extension.bundle"); async function activate(ctx) { - return await extension.activateInternal(ctx, perfStats, true /* ignoreBundle */); + return await extension.activateInternal(ctx, perfStats); } async function deactivate(ctx) { diff --git a/package-lock.json b/package-lock.json index 857d351e0..9ada712d7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,10 +21,10 @@ "@azure/core-client": "^1.7.3", "@azure/core-rest-pipeline": "^1.11.0", "@azure/storage-blob": "^12.5.0", - "@microsoft/vscode-azext-azureappservice": "^3.6.10", - "@microsoft/vscode-azext-azureappsettings": "^0.2.11", - "@microsoft/vscode-azext-azureutils": "^3.5.2", - "@microsoft/vscode-azext-utils": "^3.5.0", + "@microsoft/vscode-azext-azureappservice": "^4.0.1", + "@microsoft/vscode-azext-azureappsettings": "^1.0.0", + "@microsoft/vscode-azext-azureutils": "^4.0.1", + "@microsoft/vscode-azext-utils": "^4.0.3", "@microsoft/vscode-azureresources-api": "^2.6.2", "@microsoft/vscode-container-client": "^0.3.0", "cross-fetch": "^4.0.0", @@ -38,6 +38,7 @@ "ps-tree": "^1.1.1", "semver": "^7.7.3", "vscode-nls": "^4.1.1", + "vscode-uri": "^3.1.0", "websocket": "^1.0.29", "xml2js": "^0.5.0", "xregexp": "4.3.0" @@ -45,40 +46,44 @@ "devDependencies": { "@azure/arm-msi": "^2.1.0", "@azure/arm-resources": "^5.2.0", - "@microsoft/eslint-config-azuretools": "^0.2.2", "@microsoft/vscode-azext-dev": "^2.1.2", + "@microsoft/vscode-azext-eng": "^1.0.0-alpha.10", "@types/fs-extra": "^8.1.0", - "@types/gulp": "^4.0.10", - "@types/mocha": "^8.2.2", - "@types/node": "^16.18.36", + "@types/node": "^22.0.0", "@types/ps-tree": "^1.1.0", "@types/semver": "^5.5.0", "@types/vscode": "^1.104.0", "@types/websocket": "^1.0.0", "@types/xml2js": "^0.4.5", "@types/xregexp": "4.3.0", - "@typescript-eslint/eslint-plugin": "^5.59.11", - "@vscode/test-electron": "^2.3.8", - "@vscode/vsce": "^2.19.0", - "copy-webpack-plugin": "^13.0.1", - "eslint": "^8.42.0", - "eslint-plugin-import": "^2.27.5", - "gulp": "^5.0.0", - "husky": "^7.0.2", - "mocha": "^10.0.0", - "mocha-junit-reporter": "^2.0.0", - "mocha-multi-reporters": "^1.5.1", - "ts-node": "^10.9.1", - "typescript": "^5.9.2", - "vscode-azurekudu": "^0.2.0", - "vscode-jsonrpc": "^8.2.1", - "webpack": "^5.96.1", - "webpack-cli": "^4.6.0" + "@vscode/test-cli": "*", + "@vscode/test-electron": "*", + "@vscode/vsce": "*", + "esbuild": "*", + "esbuild-plugin-copy": "*", + "husky": "^7.0.2" }, "engines": { "vscode": "^1.104.0" } }, + "node_modules/@azu/format-text": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@azu/format-text/-/format-text-1.0.2.tgz", + "integrity": "sha512-Swi4N7Edy1Eqq82GxgEECXSSLyn6GOb5htRFPzBDdUkECGXtlf12ynO5oJSpWKPwCaUssOu7NfhDcCWpIC6Ywg==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@azu/style-format": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@azu/style-format/-/style-format-1.0.1.tgz", + "integrity": "sha512-AHcTojlNBdD/3/KxIKlg8sxIWHfOtQszLvOpagLTO+bjC3u7SAszu1lf//u7JJC50aUSH+BVWDD/KvaA6Gfn5g==", + "dev": true, + "license": "WTFPL", + "dependencies": { + "@azu/format-text": "^1.0.1" + } + }, "node_modules/@azure/abort-controller": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz", @@ -126,6 +131,7 @@ "version": "9.0.0", "resolved": "https://registry.npmjs.org/@azure/arm-authorization/-/arm-authorization-9.0.0.tgz", "integrity": "sha512-GdiCA8IA1gO+qcCbFEPj+iLC4+3ByjfKzmeAnkP7MdlL84Yo30Huo/EwbZzwRjYybXYUBuFxGPBB+yeTT4Ebxg==", + "license": "MIT", "dependencies": { "@azure/core-auth": "^1.3.0", "@azure/core-client": "^1.7.0", @@ -141,6 +147,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/@azure/arm-authorization-profile-2020-09-01-hybrid/-/arm-authorization-profile-2020-09-01-hybrid-2.1.0.tgz", "integrity": "sha512-uOXhcj6Dv+TB8Yn2fguQQhoBZhafTf0ir5/QIZ8C7Rb2vS0nLcnoeesWRj9jmS0SerE7y2AF3qEhrowEZotX1Q==", + "license": "MIT", "dependencies": { "@azure/core-auth": "^1.3.0", "@azure/core-client": "^1.6.1", @@ -271,6 +278,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/@azure/arm-resources-subscriptions/-/arm-resources-subscriptions-2.1.0.tgz", "integrity": "sha512-vKiu/3Yh84IV3IuJJ+0Fgs/ZQpvuGzoZ3dAoBksIV++Uu/Qz9RcQVz7pj+APWYIuODuR9I0eGKswZvzynzekug==", + "license": "MIT", "dependencies": { "@azure/core-auth": "^1.3.0", "@azure/core-client": "^1.7.0", @@ -337,6 +345,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/@azure/arm-storage-profile-2020-09-01-hybrid/-/arm-storage-profile-2020-09-01-hybrid-2.1.0.tgz", "integrity": "sha512-XZYoBWQP9BkQPde5DA7xIiOJVE+6Eeo755VfRqymN42gRn/X6GOcZ0X5x0qvLVxXZcwpFRKblRpkmxGi0FpIxg==", + "license": "MIT", "dependencies": { "@azure/abort-controller": "^1.0.0", "@azure/core-auth": "^1.3.0", @@ -636,55 +645,6 @@ "integrity": "sha512-dG76W7ElfLi+fbTjnZVGj+M9e0BIEJmRxU6fHaUQ12bZBe8EJKYb2GV50YWNaP2uJiVQ5+7nXEVj1VN1UQtaEw==", "peer": true }, - "node_modules/@azure/ms-rest-js": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@azure/ms-rest-js/-/ms-rest-js-2.7.0.tgz", - "integrity": "sha512-ngbzWbqF+NmztDOpLBVDxYM+XLcUj7nKhxGbSU9WtIsXfRB//cf2ZbAG5HkOrhU9/wd/ORRB6lM/d69RKVjiyA==", - "dev": true, - "dependencies": { - "@azure/core-auth": "^1.1.4", - "abort-controller": "^3.0.0", - "form-data": "^2.5.0", - "node-fetch": "^2.6.7", - "tslib": "^1.10.0", - "tunnel": "0.0.6", - "uuid": "^8.3.2", - "xml2js": "^0.5.0" - } - }, - "node_modules/@azure/ms-rest-js/node_modules/form-data": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.5.tgz", - "integrity": "sha512-jqdObeR2rxZZbPSGL+3VckHMYtu+f9//KXBsVny6JSX/pa38Fy+bGjuG8eW/H6USNQWhLi8Num++cU2yOCNz4A==", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.35", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/@azure/ms-rest-js/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@azure/ms-rest-js/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/@azure/msal-browser": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-4.7.0.tgz", @@ -763,6 +723,31 @@ "node": ">=18.0.0" } }, + "node_modules/@babel/code-frame": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.28.6.tgz", + "integrity": "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/runtime-corejs3": { "version": "7.26.10", "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.26.10.tgz", @@ -775,195 +760,819 @@ "node": ">=6.9.0" } }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "node_modules/@bcoe/v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz", + "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==", "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=18" } }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", + "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", + "cpu": [ + "ppc64" + ], "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "node_modules/@esbuild/android-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", + "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", + "cpu": [ + "arm" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=10.0.0" + "node": ">=18" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.0.tgz", - "integrity": "sha512-RoV8Xs9eNwiDvhv7M+xcL4PWyRyIXRY/FLp3buU4h1EYfdF7unWUy3dOjPqb3C7rMUewIcqwW850PgS8h1o1yg==", + "node_modules/@esbuild/android-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", + "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "node": ">=18" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "node_modules/@esbuild/android-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", + "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", + "cpu": [ + "x64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=18" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", + "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=18" } }, - "node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", + "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", + "cpu": [ + "x64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=18" } }, - "node_modules/@gulpjs/messages": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@gulpjs/messages/-/messages-1.1.0.tgz", - "integrity": "sha512-Ys9sazDatyTgZVb4xPlDufLweJ/Os2uHWOv+Caxvy2O85JcnT4M3vc73bi8pdLWlv3fdWQz3pdI9tVwo8rQQSg==", + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", + "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", + "cpu": [ + "arm64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=10.13.0" + "node": ">=18" } }, - "node_modules/@gulpjs/to-absolute-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@gulpjs/to-absolute-glob/-/to-absolute-glob-4.0.0.tgz", - "integrity": "sha512-kjotm7XJrJ6v+7knhPaRgaT6q8F8K2jiafwYdNHLzmV0uGLuZY43FK6smNSHUPrhq5kX2slCUy+RGG/xGqmIKA==", + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", + "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "is-negated-glob": "^1.0.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=10.13.0" + "node": ">=18" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@esbuild/linux-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", + "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10.10.0" + "node": ">=18" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", + "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", + "cpu": [ + "arm64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "node": ">=18" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", + "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", + "cpu": [ + "ia32" + ], "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.0.0" + "node": ">=18" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", + "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", + "cpu": [ + "loong64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.0.0" + "node": ">=18" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", + "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", + "cpu": [ + "mips64el" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.0.0" + "node": ">=18" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", + "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", + "cpu": [ + "ppc64" + ], "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", + "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", + "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", + "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", + "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", + "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", + "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", + "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", + "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", + "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", + "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", + "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", + "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", + "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", + "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.1", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", + "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/brace-expansion": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@isaacs/balanced-match": "^4.0.1" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", @@ -993,11 +1602,12 @@ "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==" }, "node_modules/@microsoft/1ds-core-js": { - "version": "4.3.9", - "resolved": "https://registry.npmjs.org/@microsoft/1ds-core-js/-/1ds-core-js-4.3.9.tgz", - "integrity": "sha512-T8s5qROH7caBNiFrUpN8vgC6wg7QysVPryZKprgl3kLQQPpoMFM6ffIYvUWD74KM9fWWLU7vzFFNBWDBsrTyWg==", + "version": "4.3.11", + "resolved": "https://registry.npmjs.org/@microsoft/1ds-core-js/-/1ds-core-js-4.3.11.tgz", + "integrity": "sha512-QyQE/YzFYB+31WEpX9hvDoXZOIXA7308Z5uuL1mSsyDSkNPl24hBWz9O3vZL+/p9shy756eKLI2nFLwwIAhXyw==", + "license": "MIT", "dependencies": { - "@microsoft/applicationinsights-core-js": "3.3.9", + "@microsoft/applicationinsights-core-js": "3.3.11", "@microsoft/applicationinsights-shims": "3.0.1", "@microsoft/dynamicproto-js": "^2.0.3", "@nevware21/ts-async": ">= 0.5.4 < 2.x", @@ -1005,11 +1615,12 @@ } }, "node_modules/@microsoft/1ds-post-js": { - "version": "4.3.9", - "resolved": "https://registry.npmjs.org/@microsoft/1ds-post-js/-/1ds-post-js-4.3.9.tgz", - "integrity": "sha512-BvxI4CW8Ws+gfXKy+Y/9pmEXp88iU1GYVjkUfqXP7La59VHARTumlG5iIgMVvaifOrvSW7G6knvQM++0tEfMBQ==", + "version": "4.3.11", + "resolved": "https://registry.npmjs.org/@microsoft/1ds-post-js/-/1ds-post-js-4.3.11.tgz", + "integrity": "sha512-V0ZeeALy/Pj8HWgNHDsK+yDeCYnJ9bCgTWhcrna/ZiAT+sGfWs6mDBjAVcG03uP7TDjdWLf8w79lgbXJ3+s3DA==", + "license": "MIT", "dependencies": { - "@microsoft/1ds-core-js": "4.3.9", + "@microsoft/1ds-core-js": "4.3.11", "@microsoft/applicationinsights-shims": "3.0.1", "@microsoft/dynamicproto-js": "^2.0.3", "@nevware21/ts-async": ">= 0.5.4 < 2.x", @@ -1017,12 +1628,13 @@ } }, "node_modules/@microsoft/applicationinsights-channel-js": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-channel-js/-/applicationinsights-channel-js-3.3.9.tgz", - "integrity": "sha512-/yEgSe6vT2ycQJkXu6VF04TB5XBurk46ECV7uo6KkNhWyDEctAk1VDWB7EqXYdwLhKMbNOYX1pvz7fj43fGNqg==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-channel-js/-/applicationinsights-channel-js-3.3.11.tgz", + "integrity": "sha512-0ex/mxTf5R+P5WSvdU8Hgbeg8VzQ0XvcnjKQdmQy05ycScnKevt8an3DEPikOFqOKDi59L5hUETZlcdhesnVtg==", + "license": "MIT", "dependencies": { - "@microsoft/applicationinsights-common": "3.3.9", - "@microsoft/applicationinsights-core-js": "3.3.9", + "@microsoft/applicationinsights-common": "3.3.11", + "@microsoft/applicationinsights-core-js": "3.3.11", "@microsoft/applicationinsights-shims": "3.0.1", "@microsoft/dynamicproto-js": "^2.0.3", "@nevware21/ts-async": ">= 0.5.4 < 2.x", @@ -1033,11 +1645,12 @@ } }, "node_modules/@microsoft/applicationinsights-common": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-common/-/applicationinsights-common-3.3.9.tgz", - "integrity": "sha512-IgruOuDBxmBK9jYo7SqLJG7Z9OwmAmlvHET49srpN6pqQlEjRpjD1nfA3Ps4RSEbF89a/ad2phQaBp8jvm122g==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-common/-/applicationinsights-common-3.3.11.tgz", + "integrity": "sha512-OIe5vL56lkmIsRsI21QqbGpF8gF/UzUP4mlEhGWyG2UMskdtWrY+c+xAynyNDsAjhKKge+Rrs/xkpC0Fo0QrhQ==", + "license": "MIT", "dependencies": { - "@microsoft/applicationinsights-core-js": "3.3.9", + "@microsoft/applicationinsights-core-js": "3.3.11", "@microsoft/applicationinsights-shims": "3.0.1", "@microsoft/dynamicproto-js": "^2.0.3", "@nevware21/ts-utils": ">= 0.11.8 < 2.x" @@ -1047,9 +1660,10 @@ } }, "node_modules/@microsoft/applicationinsights-core-js": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-3.3.9.tgz", - "integrity": "sha512-xliiE9H09xCycndlua4QjajN8q5k/ET6VCv+e0Jjodxr9+cmoOP/6QY9dun9ptokuwR8TK0qOaIJ8z4fgslVSA==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-3.3.11.tgz", + "integrity": "sha512-WlBY1sKDNL62T++NifgFCyDuOoNUNrVILfnHubOzgU/od7MFEQYWU8EZyDcBC/+Z8e3TD6jfixurYtWoUC+6Eg==", + "license": "MIT", "dependencies": { "@microsoft/applicationinsights-shims": "3.0.1", "@microsoft/dynamicproto-js": "^2.0.3", @@ -1064,18 +1678,20 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-shims/-/applicationinsights-shims-3.0.1.tgz", "integrity": "sha512-DKwboF47H1nb33rSUfjqI6ryX29v+2QWcTrRvcQDA32AZr5Ilkr7whOOSsD1aBzwqX0RJEIP1Z81jfE3NBm/Lg==", + "license": "MIT", "dependencies": { "@nevware21/ts-utils": ">= 0.9.4 < 2.x" } }, "node_modules/@microsoft/applicationinsights-web-basic": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-web-basic/-/applicationinsights-web-basic-3.3.9.tgz", - "integrity": "sha512-8tLaAgsCpWjoaxit546RqeuECnHQPBLnOZhzTYG76oPG1ku7dNXaRNieuZLbO+XmAtg/oxntKLAVoPND8NRgcA==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-web-basic/-/applicationinsights-web-basic-3.3.11.tgz", + "integrity": "sha512-pdxXWT0khRDSubK66ZhVG2DXkJwtqyrcil+iDD2pVaZP+fFHXunJI6/MhEdjgk6j3jpASt8SSq9xWVYOqrBbpA==", + "license": "MIT", "dependencies": { - "@microsoft/applicationinsights-channel-js": "3.3.9", - "@microsoft/applicationinsights-common": "3.3.9", - "@microsoft/applicationinsights-core-js": "3.3.9", + "@microsoft/applicationinsights-channel-js": "3.3.11", + "@microsoft/applicationinsights-common": "3.3.11", + "@microsoft/applicationinsights-core-js": "3.3.11", "@microsoft/applicationinsights-shims": "3.0.1", "@microsoft/dynamicproto-js": "^2.0.3", "@nevware21/ts-async": ">= 0.5.4 < 2.x", @@ -1089,28 +1705,15 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-2.0.3.tgz", "integrity": "sha512-JTWTU80rMy3mdxOjjpaiDQsTLZ6YSGGqsjURsY6AUQtIj0udlF/jYmhdLZu8693ZIC0T1IwYnFa0+QeiMnziBA==", + "license": "MIT", "dependencies": { "@nevware21/ts-utils": ">= 0.10.4 < 2.x" } }, - "node_modules/@microsoft/eslint-config-azuretools": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@microsoft/eslint-config-azuretools/-/eslint-config-azuretools-0.2.4.tgz", - "integrity": "sha512-ZhZ9o56djwaHio1HSUKLi3noVgWBt+ox6kjimDyWO4q1FHXvKIPMJZhhjpLz72Wn+E1bUOb7+zXUUmijC6K9uQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/parser": "^5.51.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": ">=5", - "eslint": ">=8", - "eslint-plugin-import": ">=2" - } - }, "node_modules/@microsoft/vscode-azext-azureappservice": { - "version": "3.6.10", - "resolved": "https://registry.npmjs.org/@microsoft/vscode-azext-azureappservice/-/vscode-azext-azureappservice-3.6.10.tgz", - "integrity": "sha512-xqGEYhNZhxmN97j8cW+i1Suh1l6DxxsZDVa+uAjrE1xnKcVgzMpuYywN9/5/+1JXJewMHrbixuHh5knrKB16mA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@microsoft/vscode-azext-azureappservice/-/vscode-azext-azureappservice-4.0.1.tgz", + "integrity": "sha512-KJ3UDLmt/apDdjWqaXDtACmanm1M2NyIM6CbCcXnCs3yyTvqTsGVzrobIqMfcukq1nf2HJYHqiE1+nnFjo2edA==", "license": "MIT", "dependencies": { "@azure/abort-controller": "^1.0.4", @@ -1118,13 +1721,11 @@ "@azure/arm-appservice": "^15.0.0", "@azure/arm-operationalinsights": "^8.0.1", "@azure/arm-resourcegraph": "^5.0.0-beta.3", - "@azure/arm-resources-subscriptions": "^2.0.1", - "@azure/core-client": "^1.7.2", "@azure/core-rest-pipeline": "^1.10.3", "@azure/storage-blob": "^12.3.0", - "@microsoft/vscode-azext-azureutils": "^3.5.2", - "@microsoft/vscode-azext-github": "^1.0.7", - "@microsoft/vscode-azext-utils": "^3.4.2", + "@microsoft/vscode-azext-azureutils": "^4.0.0", + "@microsoft/vscode-azext-github": "^2.0.0", + "@microsoft/vscode-azext-utils": "^4.0.3", "dayjs": "^1.11.2", "fs-extra": "^10.0.0", "p-retry": "^3.0.1", @@ -1133,9 +1734,12 @@ "ws": "^8.5.0", "yazl": "^2.5.1" }, + "engines": { + "vscode": "^1.105.0" + }, "peerDependencies": { "@azure/ms-rest-azure-env": "^2.0.0", - "@microsoft/vscode-azext-azureappsettings": "^0.2.11" + "@microsoft/vscode-azext-azureappsettings": "^1.0.0" } }, "node_modules/@microsoft/vscode-azext-azureappservice/node_modules/fs-extra": { @@ -1190,17 +1794,23 @@ } }, "node_modules/@microsoft/vscode-azext-azureappsettings": { - "version": "0.2.11", - "resolved": "https://registry.npmjs.org/@microsoft/vscode-azext-azureappsettings/-/vscode-azext-azureappsettings-0.2.11.tgz", - "integrity": "sha512-zu6RedxoVEgOTyTqyeo5HHPowK3aEYyD9if96b3TF3fkiuxuRlR/19V0qmoKxF6w8nYYhuUDScL2i+zlcu9+xQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@microsoft/vscode-azext-azureappsettings/-/vscode-azext-azureappsettings-1.0.0.tgz", + "integrity": "sha512-uvTOZtgONxkKD88t6aOAlzTVKDQqGbAzNePsozhiffX4EAxLs6HXX98FUlKI+AHctQFlrny+y2UMmYnH87nNsA==", + "license": "MIT", + "peer": true, "dependencies": { - "@microsoft/vscode-azext-utils": "^3.4.2" + "@microsoft/vscode-azext-utils": "^4.0.0" + }, + "engines": { + "vscode": "^1.105.0" } }, "node_modules/@microsoft/vscode-azext-azureutils": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@microsoft/vscode-azext-azureutils/-/vscode-azext-azureutils-3.5.2.tgz", - "integrity": "sha512-0jAkM2jAdrVq+lR5yNNQnL/O7Vp6yQo5l0oAyVcddp6WB2bUQrWUUZo1YeTaWl/23MMadWtFmhM4RRJPGWoYoQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@microsoft/vscode-azext-azureutils/-/vscode-azext-azureutils-4.0.1.tgz", + "integrity": "sha512-lJq5PxwKZagJkqjBfyac7YCSjb2K3UVwj8CJLm16ejrrnFop/q2qoLC52Sfi0ahA0Y0uqAPWzM4ToAZwbBrk0A==", + "license": "MIT", "dependencies": { "@azure/arm-authorization": "^9.0.0", "@azure/arm-authorization-profile-2020-09-01-hybrid": "^2.1.0", @@ -1213,9 +1823,24 @@ "@azure/core-client": "^1.6.0", "@azure/core-rest-pipeline": "^1.9.0", "@azure/logger": "^1.0.4", - "@microsoft/vscode-azext-utils": "^3.4.2", - "semver": "^7.3.7", - "uuid": "^9.0.0" + "@microsoft/vscode-azext-utils": "^4.0.3", + "@microsoft/vscode-azureresources-api": "^3.0.0", + "semver": "^7.3.7" + }, + "engines": { + "vscode": "^1.105.0" + }, + "peerDependencies": { + "@azure/ms-rest-azure-env": "^2.0.0" + } + }, + "node_modules/@microsoft/vscode-azext-azureutils/node_modules/@microsoft/vscode-azureresources-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@microsoft/vscode-azureresources-api/-/vscode-azureresources-api-3.0.0.tgz", + "integrity": "sha512-IfivhAfLjUQtIJa3kqfZPJanb9m3XVBgRmYrFQtnRp6GWeKGKhkyMC44MunodtX0k4C7A1LmG3lM4z38sxCcpQ==", + "license": "MIT", + "engines": { + "vscode": "^1.105.0" }, "peerDependencies": { "@azure/ms-rest-azure-env": "^2.0.0" @@ -1364,92 +1989,361 @@ "minimist": "^1.2.6" }, "bin": { - "mkdirp": "bin/cmd.js" + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/@microsoft/vscode-azext-dev/node_modules/mocha-junit-reporter": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/mocha-junit-reporter/-/mocha-junit-reporter-1.23.3.tgz", + "integrity": "sha512-ed8LqbRj1RxZfjt/oC9t12sfrWsjZ3gNnbhV1nuj9R/Jb5/P3Xb4duv2eCfCDMYH+fEu0mqca7m4wsiVjsxsvA==", + "dev": true, + "dependencies": { + "debug": "^2.2.0", + "md5": "^2.1.0", + "mkdirp": "~0.5.1", + "strip-ansi": "^4.0.0", + "xml": "^1.0.0" + }, + "peerDependencies": { + "mocha": ">=2.2.5" + } + }, + "node_modules/@microsoft/vscode-azext-dev/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/@microsoft/vscode-azext-dev/node_modules/path-type": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", + "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@microsoft/vscode-azext-dev/node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@microsoft/vscode-azext-dev/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@microsoft/vscode-azext-eng": { + "version": "1.0.0-alpha.10", + "resolved": "https://registry.npmjs.org/@microsoft/vscode-azext-eng/-/vscode-azext-eng-1.0.0-alpha.10.tgz", + "integrity": "sha512-db3QETzhS1D1+LH12JKFgIFneXZMtGE0MLNdc2+7SZ60VDGh+9am/eYlwLrFhfETSXxT6mwvVyIgetU3MsNVaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tony.ganchev/eslint-plugin-header": "^3.2.0", + "@types/chai": "^5.2.3", + "@types/chai-as-promised": "^8.0.2", + "@types/mocha": "^10.0.10", + "chai": "^6.2.1", + "chai-as-promised": "^8.0.2", + "eslint": "^9.39.1", + "mocha": "^11.7.5", + "tsx": "^4.21.0", + "typescript": "~5.9", + "typescript-eslint": "^8.48.1" + }, + "peerDependencies": { + "@vscode/test-cli": "^0.0.12", + "@vscode/test-electron": "^2.5.2", + "@vscode/vsce": "^3.7.1", + "esbuild": "^0.27.1", + "esbuild-plugin-copy": "^2.1.1" + }, + "peerDependenciesMeta": { + "@vscode/test-cli": { + "optional": true + }, + "@vscode/test-electron": { + "optional": true + }, + "@vscode/vsce": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "esbuild-plugin-copy": { + "optional": true + } + } + }, + "node_modules/@microsoft/vscode-azext-eng/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@microsoft/vscode-azext-eng/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@microsoft/vscode-azext-eng/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@microsoft/vscode-azext-eng/node_modules/diff": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz", + "integrity": "sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/@microsoft/vscode-azext-eng/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@microsoft/vscode-azext-eng/node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@microsoft/vscode-azext-eng/node_modules/mocha": { + "version": "11.7.5", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-11.7.5.tgz", + "integrity": "sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig==", + "dev": true, + "license": "MIT", + "dependencies": { + "browser-stdout": "^1.3.1", + "chokidar": "^4.0.1", + "debug": "^4.3.5", + "diff": "^7.0.0", + "escape-string-regexp": "^4.0.0", + "find-up": "^5.0.0", + "glob": "^10.4.5", + "he": "^1.2.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "log-symbols": "^4.1.0", + "minimatch": "^9.0.5", + "ms": "^2.1.3", + "picocolors": "^1.1.1", + "serialize-javascript": "^6.0.2", + "strip-json-comments": "^3.1.1", + "supports-color": "^8.1.1", + "workerpool": "^9.2.0", + "yargs": "^17.7.2", + "yargs-parser": "^21.1.1", + "yargs-unparser": "^2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@microsoft/vscode-azext-dev/node_modules/mocha-junit-reporter": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/mocha-junit-reporter/-/mocha-junit-reporter-1.23.3.tgz", - "integrity": "sha512-ed8LqbRj1RxZfjt/oC9t12sfrWsjZ3gNnbhV1nuj9R/Jb5/P3Xb4duv2eCfCDMYH+fEu0mqca7m4wsiVjsxsvA==", + "node_modules/@microsoft/vscode-azext-eng/node_modules/mocha/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { - "debug": "^2.2.0", - "md5": "^2.1.0", - "mkdirp": "~0.5.1", - "strip-ansi": "^4.0.0", - "xml": "^1.0.0" + "brace-expansion": "^2.0.1" }, - "peerDependencies": { - "mocha": ">=2.2.5" + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@microsoft/vscode-azext-dev/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/@microsoft/vscode-azext-dev/node_modules/path-type": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", - "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", + "node_modules/@microsoft/vscode-azext-eng/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">= 14.18.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@microsoft/vscode-azext-dev/node_modules/slash": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", - "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "node_modules/@microsoft/vscode-azext-eng/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=14.16" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/@microsoft/vscode-azext-dev/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "node_modules/@microsoft/vscode-azext-eng/node_modules/workerpool": { + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-9.3.4.tgz", + "integrity": "sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@microsoft/vscode-azext-eng/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": "^3.0.0" + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" }, "engines": { - "node": ">=4" + "node": ">=12" + } + }, + "node_modules/@microsoft/vscode-azext-eng/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" } }, "node_modules/@microsoft/vscode-azext-github": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@microsoft/vscode-azext-github/-/vscode-azext-github-1.0.7.tgz", - "integrity": "sha512-/k34/ksBnBuXaxJ9sqxM0IoU2pjJGHz3w3Rokh8JgTRStGf5Z9I8bBu/HBHgMFeh2kK02X+QRxT1TFCaGMFVOQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@microsoft/vscode-azext-github/-/vscode-azext-github-2.0.0.tgz", + "integrity": "sha512-yc6I52WdOSMnDlEsx12LHoq5ySaBcc5lh/h4VEVF0T48/3JFv00tahXRi2b/kKFaZdGXeXDoBc//PINQWhTutg==", + "license": "MIT", "dependencies": { - "@microsoft/vscode-azext-utils": "^3.4.2", + "@microsoft/vscode-azext-utils": "^4.0.0", "@octokit/rest": "^20.1.2" + }, + "engines": { + "vscode": "^1.105.0" } }, "node_modules/@microsoft/vscode-azext-utils": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@microsoft/vscode-azext-utils/-/vscode-azext-utils-3.5.0.tgz", - "integrity": "sha512-kxm+ogmTr8YtXI/hNNxZgXFNTq9XPxvi67TS1l9ghYt6xNQfUpId6sfTpp1hlFtsxt/N0aL5Yhki+m45CKdLiA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@microsoft/vscode-azext-utils/-/vscode-azext-utils-4.0.3.tgz", + "integrity": "sha512-Qli06TAOPqW91cRtHI17jIW344ew487FF+YydZ4pM0o0zomi9VR9yJjZ+1vVnhHmTZuFTUCrI6w+I8JByWxM5w==", + "license": "MIT", "dependencies": { - "@microsoft/vscode-azureresources-api": "^2.6.2", + "@microsoft/vscode-azureresources-api": "^3.0.0", "@vscode/extension-telemetry": "^0.9.6", "dayjs": "^1.11.2", "escape-string-regexp": "^2.0.0", - "html-to-text": "^8.2.0", + "html-to-text": "^9.0.0", "semver": "^7.3.7", - "uuid": "^9.0.0", - "vscode-tas-client": "^0.1.84", - "vscode-uri": "^3.0.6" + "vscode-tas-client": "^0.1.84" + }, + "engines": { + "vscode": "^1.105.0" + }, + "peerDependencies": { + "@azure/ms-rest-azure-env": "^2.0.0" + } + }, + "node_modules/@microsoft/vscode-azext-utils/node_modules/@microsoft/vscode-azureresources-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@microsoft/vscode-azureresources-api/-/vscode-azureresources-api-3.0.0.tgz", + "integrity": "sha512-IfivhAfLjUQtIJa3kqfZPJanb9m3XVBgRmYrFQtnRp6GWeKGKhkyMC44MunodtX0k4C7A1LmG3lM4z38sxCcpQ==", + "license": "MIT", + "engines": { + "vscode": "^1.105.0" }, "peerDependencies": { "@azure/ms-rest-azure-env": "^2.0.0" @@ -1459,6 +2353,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "license": "MIT", "engines": { "node": ">=8" } @@ -1483,17 +2378,19 @@ } }, "node_modules/@nevware21/ts-async": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@nevware21/ts-async/-/ts-async-0.5.4.tgz", - "integrity": "sha512-IBTyj29GwGlxfzXw2NPnzty+w0Adx61Eze1/lknH/XIVdxtF9UnOpk76tnrHXWa6j84a1RR9hsOcHQPFv9qJjA==", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@nevware21/ts-async/-/ts-async-0.5.5.tgz", + "integrity": "sha512-vwqaL05iJPjLeh5igPi8MeeAu10i+Aq7xko1fbo9F5Si6MnVN5505qaV7AhSdk5MCBJVT/UYMk3kgInNjDb4Ig==", + "license": "MIT", "dependencies": { - "@nevware21/ts-utils": ">= 0.11.6 < 2.x" + "@nevware21/ts-utils": ">= 0.12.2 < 2.x" } }, "node_modules/@nevware21/ts-utils": { "version": "0.12.5", "resolved": "https://registry.npmjs.org/@nevware21/ts-utils/-/ts-utils-0.12.5.tgz", - "integrity": "sha512-JPQZWPKQJjj7kAftdEZL0XDFfbMgXCGiUAZe0d7EhLC3QlXTlZdSckGqqRIQ2QNl0VTEZyZUvRBw6Ednw089Fw==" + "integrity": "sha512-JPQZWPKQJjj7kAftdEZL0XDFfbMgXCGiUAZe0d7EhLC3QlXTlZdSckGqqRIQ2QNl0VTEZyZUvRBw6Ednw089Fw==", + "license": "MIT" }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", @@ -1531,6 +2428,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", + "license": "MIT", "engines": { "node": ">= 18" } @@ -1539,6 +2437,8 @@ "version": "5.2.2", "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.2.tgz", "integrity": "sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==", + "license": "MIT", + "peer": true, "dependencies": { "@octokit/auth-token": "^4.0.0", "@octokit/graphql": "^7.1.0", @@ -1556,6 +2456,7 @@ "version": "9.0.6", "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.6.tgz", "integrity": "sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==", + "license": "MIT", "dependencies": { "@octokit/types": "^13.1.0", "universal-user-agent": "^6.0.0" @@ -1568,6 +2469,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.1.tgz", "integrity": "sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==", + "license": "MIT", "dependencies": { "@octokit/request": "^8.4.1", "@octokit/types": "^13.0.0", @@ -1580,12 +2482,14 @@ "node_modules/@octokit/openapi-types": { "version": "24.2.0", "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", - "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==" + "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==", + "license": "MIT" }, "node_modules/@octokit/plugin-paginate-rest": { "version": "11.4.4-cjs.2", "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.4.4-cjs.2.tgz", "integrity": "sha512-2dK6z8fhs8lla5PaOTgqfCGBxgAv/le+EhPs27KklPhm1bKObpu6lXzwfUEQ16ajXzqNrKMujsFyo9K2eaoISw==", + "license": "MIT", "dependencies": { "@octokit/types": "^13.7.0" }, @@ -1600,6 +2504,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-4.0.1.tgz", "integrity": "sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA==", + "license": "MIT", "engines": { "node": ">= 18" }, @@ -1611,6 +2516,7 @@ "version": "13.3.2-cjs.1", "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.3.2-cjs.1.tgz", "integrity": "sha512-VUjIjOOvF2oELQmiFpWA1aOPdawpyaCUqcEBc/UOUnj3Xp6DJGrJ1+bjUIIDzdHjnFNO6q57ODMfdEZnoBkCwQ==", + "license": "MIT", "dependencies": { "@octokit/types": "^13.8.0" }, @@ -1625,83 +2531,306 @@ "version": "8.4.1", "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.1.tgz", "integrity": "sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==", + "license": "MIT", + "dependencies": { + "@octokit/endpoint": "^9.0.6", + "@octokit/request-error": "^5.1.1", + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/request-error": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz", + "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==", + "license": "MIT", + "dependencies": { + "@octokit/types": "^13.1.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/rest": { + "version": "20.1.2", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-20.1.2.tgz", + "integrity": "sha512-GmYiltypkHHtihFwPRxlaorG5R9VAHuk/vbszVoRTGXnAsY60wYLkh/E2XiFmdZmqrisw+9FaazS1i5SbdWYgA==", + "license": "MIT", + "dependencies": { + "@octokit/core": "^5.0.2", + "@octokit/plugin-paginate-rest": "11.4.4-cjs.2", + "@octokit/plugin-request-log": "^4.0.0", + "@octokit/plugin-rest-endpoint-methods": "13.3.2-cjs.1" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/types": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", + "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", + "license": "MIT", + "dependencies": { + "@octokit/openapi-types": "^24.2.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@secretlint/config-creator": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/config-creator/-/config-creator-10.2.2.tgz", + "integrity": "sha512-BynOBe7Hn3LJjb3CqCHZjeNB09s/vgf0baBaHVw67w7gHF0d25c3ZsZ5+vv8TgwSchRdUCRrbbcq5i2B1fJ2QQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/types": "^10.2.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/config-loader": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/config-loader/-/config-loader-10.2.2.tgz", + "integrity": "sha512-ndjjQNgLg4DIcMJp4iaRD6xb9ijWQZVbd9694Ol2IszBIbGPPkwZHzJYKICbTBmh6AH/pLr0CiCaWdGJU7RbpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/profiler": "^10.2.2", + "@secretlint/resolver": "^10.2.2", + "@secretlint/types": "^10.2.2", + "ajv": "^8.17.1", + "debug": "^4.4.1", + "rc-config-loader": "^4.1.3" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/config-loader/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@secretlint/config-loader/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/@secretlint/core": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/core/-/core-10.2.2.tgz", + "integrity": "sha512-6rdwBwLP9+TO3rRjMVW1tX+lQeo5gBbxl1I5F8nh8bgGtKwdlCMhMKsBWzWg1ostxx/tIG7OjZI0/BxsP8bUgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/profiler": "^10.2.2", + "@secretlint/types": "^10.2.2", + "debug": "^4.4.1", + "structured-source": "^4.0.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/formatter": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/formatter/-/formatter-10.2.2.tgz", + "integrity": "sha512-10f/eKV+8YdGKNQmoDUD1QnYL7TzhI2kzyx95vsJKbEa8akzLAR5ZrWIZ3LbcMmBLzxlSQMMccRmi05yDQ5YDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/resolver": "^10.2.2", + "@secretlint/types": "^10.2.2", + "@textlint/linter-formatter": "^15.2.0", + "@textlint/module-interop": "^15.2.0", + "@textlint/types": "^15.2.0", + "chalk": "^5.4.1", + "debug": "^4.4.1", + "pluralize": "^8.0.0", + "strip-ansi": "^7.1.0", + "table": "^6.9.0", + "terminal-link": "^4.0.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/formatter/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@secretlint/formatter/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@secretlint/formatter/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@secretlint/node": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/node/-/node-10.2.2.tgz", + "integrity": "sha512-eZGJQgcg/3WRBwX1bRnss7RmHHK/YlP/l7zOQsrjexYt6l+JJa5YhUmHbuGXS94yW0++3YkEJp0kQGYhiw1DMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/config-loader": "^10.2.2", + "@secretlint/core": "^10.2.2", + "@secretlint/formatter": "^10.2.2", + "@secretlint/profiler": "^10.2.2", + "@secretlint/source-creator": "^10.2.2", + "@secretlint/types": "^10.2.2", + "debug": "^4.4.1", + "p-map": "^7.0.3" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/profiler": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/profiler/-/profiler-10.2.2.tgz", + "integrity": "sha512-qm9rWfkh/o8OvzMIfY8a5bCmgIniSpltbVlUVl983zDG1bUuQNd1/5lUEeWx5o/WJ99bXxS7yNI4/KIXfHexig==", + "dev": true, + "license": "MIT" + }, + "node_modules/@secretlint/resolver": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/resolver/-/resolver-10.2.2.tgz", + "integrity": "sha512-3md0cp12e+Ae5V+crPQYGd6aaO7ahw95s28OlULGyclyyUtf861UoRGS2prnUrKh7MZb23kdDOyGCYb9br5e4w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@secretlint/secretlint-formatter-sarif": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/secretlint-formatter-sarif/-/secretlint-formatter-sarif-10.2.2.tgz", + "integrity": "sha512-ojiF9TGRKJJw308DnYBucHxkpNovDNu1XvPh7IfUp0A12gzTtxuWDqdpuVezL7/IP8Ua7mp5/VkDMN9OLp1doQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@octokit/endpoint": "^9.0.6", - "@octokit/request-error": "^5.1.1", - "@octokit/types": "^13.1.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" + "node-sarif-builder": "^3.2.0" } }, - "node_modules/@octokit/request-error": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz", - "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==", + "node_modules/@secretlint/secretlint-rule-no-dotenv": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/secretlint-rule-no-dotenv/-/secretlint-rule-no-dotenv-10.2.2.tgz", + "integrity": "sha512-KJRbIShA9DVc5Va3yArtJ6QDzGjg3PRa1uYp9As4RsyKtKSSZjI64jVca57FZ8gbuk4em0/0Jq+uy6485wxIdg==", + "dev": true, + "license": "MIT", "dependencies": { - "@octokit/types": "^13.1.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" + "@secretlint/types": "^10.2.2" }, "engines": { - "node": ">= 18" + "node": ">=20.0.0" } }, - "node_modules/@octokit/rest": { - "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-20.1.2.tgz", - "integrity": "sha512-GmYiltypkHHtihFwPRxlaorG5R9VAHuk/vbszVoRTGXnAsY60wYLkh/E2XiFmdZmqrisw+9FaazS1i5SbdWYgA==", - "dependencies": { - "@octokit/core": "^5.0.2", - "@octokit/plugin-paginate-rest": "11.4.4-cjs.2", - "@octokit/plugin-request-log": "^4.0.0", - "@octokit/plugin-rest-endpoint-methods": "13.3.2-cjs.1" - }, + "node_modules/@secretlint/secretlint-rule-preset-recommend": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/secretlint-rule-preset-recommend/-/secretlint-rule-preset-recommend-10.2.2.tgz", + "integrity": "sha512-K3jPqjva8bQndDKJqctnGfwuAxU2n9XNCPtbXVI5JvC7FnQiNg/yWlQPbMUlBXtBoBGFYp08A94m6fvtc9v+zA==", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 18" + "node": ">=20.0.0" } }, - "node_modules/@octokit/types": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", - "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", + "node_modules/@secretlint/source-creator": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/source-creator/-/source-creator-10.2.2.tgz", + "integrity": "sha512-h6I87xJfwfUTgQ7irWq7UTdq/Bm1RuQ/fYhA3dtTIAop5BwSFmZyrchph4WcoEvbN460BWKmk4RYSvPElIIvxw==", + "dev": true, + "license": "MIT", "dependencies": { - "@octokit/openapi-types": "^24.2.0" + "@secretlint/types": "^10.2.2", + "istextorbinary": "^9.5.0" + }, + "engines": { + "node": ">=20.0.0" } }, - "node_modules/@rtsao/scc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", - "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", - "dev": true + "node_modules/@secretlint/types": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/types/-/types-10.2.2.tgz", + "integrity": "sha512-Nqc90v4lWCXyakD6xNyNACBJNJ0tNCwj2WNk/7ivyacYHxiITVgmLUFXTBOeCdy79iz6HtN9Y31uw/jbLrdOAg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } }, "node_modules/@selderee/plugin-htmlparser2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.6.0.tgz", - "integrity": "sha512-J3jpy002TyBjd4N/p6s+s90eX42H2eRhK3SbsZuvTDv977/E8p2U3zikdiehyJja66do7FlxLomZLPlvl2/xaA==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.11.0.tgz", + "integrity": "sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==", + "license": "MIT", "dependencies": { - "domhandler": "^4.2.0", - "selderee": "^0.6.0" + "domhandler": "^5.0.3", + "selderee": "^0.11.0" }, "funding": { "url": "https://ko-fi.com/killymxi" } }, - "node_modules/@selderee/plugin-htmlparser2/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, "node_modules/@sindresorhus/merge-streams": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", @@ -1715,29 +2844,104 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", - "dev": true + "node_modules/@textlint/ast-node-types": { + "version": "15.5.1", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-15.5.1.tgz", + "integrity": "sha512-2ABQSaQoM9u9fycXLJKcCv4XQulJWTUSwjo6F0i/ujjqOH8/AZ2A0RDKKbAddqxDhuabVB20lYoEsZZgzehccg==", + "dev": true, + "license": "MIT" }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true + "node_modules/@textlint/linter-formatter": { + "version": "15.5.1", + "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-15.5.1.tgz", + "integrity": "sha512-7wfzpcQtk7TZ3UJO2deTI71mJCm4VvPGUmSwE4iuH6FoaxpdWpwSBiMLcZtjYrt/oIFOtNz0uf5rI+xJiHTFww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azu/format-text": "^1.0.2", + "@azu/style-format": "^1.0.1", + "@textlint/module-interop": "15.5.1", + "@textlint/resolver": "15.5.1", + "@textlint/types": "15.5.1", + "chalk": "^4.1.2", + "debug": "^4.4.3", + "js-yaml": "^4.1.1", + "lodash": "^4.17.21", + "pluralize": "^2.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "table": "^6.9.0", + "text-table": "^0.2.0" + } }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true + "node_modules/@textlint/linter-formatter/node_modules/pluralize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-2.0.0.tgz", + "integrity": "sha512-TqNZzQCD4S42De9IfnnBvILN7HAW7riLqsCyp8lgjXeysyPlX5HhqKAcJHHHb9XskE4/a+7VGC9zzx8Ls0jOAw==", + "dev": true, + "license": "MIT" }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true + "node_modules/@textlint/module-interop": { + "version": "15.5.1", + "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-15.5.1.tgz", + "integrity": "sha512-Y1jcFGCKNSmHxwsLO3mshOfLYX4Wavq2+w5BG6x5lGgZv0XrF1xxURRhbnhns4LzCu0fAcx6W+3V8/1bkyTZCw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/resolver": { + "version": "15.5.1", + "resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-15.5.1.tgz", + "integrity": "sha512-CVHxMIm8iNGccqM12CQ/ycvh+HjJId4RyC6as5ynCcp2E1Uy1TCe0jBWOpmLsbT4Nx15Ke29BmspyByawuIRyA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/types": { + "version": "15.5.1", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-15.5.1.tgz", + "integrity": "sha512-IY1OVZZk8LOOrbapYCsaeH7XSJT89HVukixDT8CoiWMrKGCTCZ3/Kzoa3DtMMbY8jtY777QmPOVCNnR+8fF6YQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/ast-node-types": "15.5.1" + } + }, + "node_modules/@tony.ganchev/eslint-plugin-header": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@tony.ganchev/eslint-plugin-header/-/eslint-plugin-header-3.2.0.tgz", + "integrity": "sha512-/Ke4Yht9x9YmFpdts6KAG0d/rxMnktSHTKtX0wBNz0A3ZdEiOSE7rrK3F6MpMB8fjQXdm3xD/mN1plyFGF3OJA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=7.7.0" + } + }, + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, + "node_modules/@types/chai-as-promised": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-8.0.2.tgz", + "integrity": "sha512-meQ1wDr1K5KRCSvG2lX7n7/5wf70BeptTKst0axGvnN6zqaVpRqegoIbugiAPSqOW9K9aL8gDVrm7a2LXOtn2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "*" + } + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" }, "node_modules/@types/eslint": { "version": "9.6.1", @@ -1765,12 +2969,6 @@ "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true }, - "node_modules/@types/expect": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz", - "integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==", - "dev": true - }, "node_modules/@types/fs-extra": { "version": "8.1.5", "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.5.tgz", @@ -1790,28 +2988,12 @@ "@types/node": "*" } }, - "node_modules/@types/glob-stream": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@types/glob-stream/-/glob-stream-8.0.2.tgz", - "integrity": "sha512-kyuRfGE+yiSJWzSO3t74rXxdZNdYfLcllO0IUha4eX1fl40pm9L02Q/TEc3mykTLjoWz4STBNwYnUWdFu3I0DA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/picomatch": "*", - "@types/streamx": "*" - } - }, - "node_modules/@types/gulp": { - "version": "4.0.17", - "resolved": "https://registry.npmjs.org/@types/gulp/-/gulp-4.0.17.tgz", - "integrity": "sha512-+pKQynu2C/HS16kgmDlAicjtFYP8kaa86eE9P0Ae7GB5W29we/E2TIdbOWtEZD5XkpY+jr8fyqfwO6SWZecLpQ==", + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", "dev": true, - "dependencies": { - "@types/node": "*", - "@types/undertaker": ">=1.2.6", - "@types/vinyl-fs": "*", - "chokidar": "^3.3.1" - } + "license": "MIT" }, "node_modules/@types/json-schema": { "version": "7.0.15", @@ -1819,12 +3001,6 @@ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, "node_modules/@types/minimatch": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", @@ -1832,22 +3008,28 @@ "dev": true }, "node_modules/@types/mocha": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz", - "integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==", - "dev": true + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", + "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { - "version": "16.18.126", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.126.tgz", - "integrity": "sha512-OTcgaiwfGFBKacvfwuHzzn1KLxH/er8mluiy8/uM3sGXHaRe73RrSIj01jow9t4kJEW633Ov+cOexXeiApTyAw==", - "devOptional": true + "version": "22.19.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.7.tgz", + "integrity": "sha512-MciR4AKGHWl7xwxkBa6xUGxQJ4VBOmPTF7sL+iGzuahOFaO0jHCsuEfS80pan1ef4gWId1oWOweIhrDEYLuaOw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } }, - "node_modules/@types/picomatch": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/picomatch/-/picomatch-3.0.2.tgz", - "integrity": "sha512-n0i8TD3UDB7paoMMxA3Y65vUncFJXjcUf7lQY7YyKGl6031FNjfsLs6pdLFCy2GNFxItPJG8GvvpbZc2skH7WA==", - "dev": true + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true, + "license": "MIT" }, "node_modules/@types/ps-tree": { "version": "1.1.6", @@ -1860,59 +3042,19 @@ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" }, + "node_modules/@types/sarif": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@types/sarif/-/sarif-2.1.7.tgz", + "integrity": "sha512-kRz0VEkJqWLf1LLVN4pT1cg1Z9wAuvI6L97V3m2f5B76Tg8d413ddvLBPTEHAZJlnn4XSvu0FkZtViCQGVyrXQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/semver": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz", "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==", "dev": true }, - "node_modules/@types/streamx": { - "version": "2.9.5", - "resolved": "https://registry.npmjs.org/@types/streamx/-/streamx-2.9.5.tgz", - "integrity": "sha512-IHYsa6jYrck8VEdSwpY141FTTf6D7boPeMq9jy4qazNrFMA4VbRz/sw5LSsfR7jwdDcx0QKWkUexZvsWBC2eIQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/undertaker": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@types/undertaker/-/undertaker-1.2.11.tgz", - "integrity": "sha512-j1Z0V2ByRHr8ZK7eOeGq0LGkkdthNFW0uAZGY22iRkNQNL9/vAV0yFPr1QN3FM/peY5bxs9P+1f0PYJTQVa5iA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/undertaker-registry": "*", - "async-done": "~1.3.2" - } - }, - "node_modules/@types/undertaker-registry": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@types/undertaker-registry/-/undertaker-registry-1.0.4.tgz", - "integrity": "sha512-tW77pHh2TU4uebWXWeEM5laiw8BuJ7pyJYDh6xenOs75nhny2kVgwYbegJ4BoLMYsIrXaBpKYaPdYO3/udG+hg==", - "dev": true - }, - "node_modules/@types/vinyl": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.12.tgz", - "integrity": "sha512-Sr2fYMBUVGYq8kj3UthXFAu5UN6ZW+rYr4NACjZQJvHvj+c8lYv0CahmZ2P/r7iUkN44gGUBwqxZkrKXYPb7cw==", - "dev": true, - "dependencies": { - "@types/expect": "^1.20.4", - "@types/node": "*" - } - }, - "node_modules/@types/vinyl-fs": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/vinyl-fs/-/vinyl-fs-3.0.5.tgz", - "integrity": "sha512-ckYz9giHgV6U10RFuf9WsDQ3X86EFougapxHmmoxLK7e6ICQqO8CE+4V/3lBN148V5N1pb4nQMmMjyScleVsig==", - "dev": true, - "dependencies": { - "@types/glob-stream": "*", - "@types/node": "*", - "@types/vinyl": "*" - } - }, "node_modules/@types/vscode": { "version": "1.104.0", "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.104.0.tgz", @@ -1952,229 +3094,301 @@ "@types/node": "*" } }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "node_modules/@typescript-eslint/project-service": { + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.53.1.tgz", + "integrity": "sha512-WYC4FB5Ra0xidsmlPb+1SsnaSKPmS3gsjIARwbEkHkoWloQmuzcfypljaJcR78uyLA1h8sHdWWPHSLDI+MtNog==", "dev": true, + "license": "MIT", "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "@typescript-eslint/tsconfig-utils": "^8.53.1", + "@typescript-eslint/types": "^8.53.1", + "debug": "^4.4.3" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "node_modules/@typescript-eslint/project-service/node_modules/@typescript-eslint/types": { + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.1.tgz", + "integrity": "sha512-jr/swrr2aRmUAUjW5/zQHbMaui//vQlsZcJKijZf3M26bnmLj8LyZUpj8/Rd6uzaek06OWsqdofN/Thenm5O8A==", "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.53.1.tgz", + "integrity": "sha512-qfvLXS6F6b1y43pnf0pPbXJ+YoXIC7HKg0UGZ27uMIemKMKA6XH2DTxsEDdpdN29D+vHV07x/pnlPNVLhdhWiA==", + "dev": true, + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@vscode/extension-telemetry": { + "version": "0.9.9", + "resolved": "https://registry.npmjs.org/@vscode/extension-telemetry/-/extension-telemetry-0.9.9.tgz", + "integrity": "sha512-WG/H+H/JRMPnpbXMufXgXlaeJwKszXfAanOERV/nkXBbYyNw0KR84JjUjSg+TgkzYEF/ttRoHTP6fFZWkXdoDQ==", + "license": "MIT", + "dependencies": { + "@microsoft/1ds-core-js": "^4.3.4", + "@microsoft/1ds-post-js": "^4.3.4", + "@microsoft/applicationinsights-web-basic": "^3.3.4" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "engines": { + "vscode": "^1.75.0" + } + }, + "node_modules/@vscode/test-cli": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/@vscode/test-cli/-/test-cli-0.0.12.tgz", + "integrity": "sha512-iYN0fDg29+a2Xelle/Y56Xvv7Nc8Thzq4VwpzAF/SIE6918rDicqfsQxV6w1ttr2+SOm+10laGuY9FG2ptEKsQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/mocha": "^10.0.10", + "c8": "^10.1.3", + "chokidar": "^3.6.0", + "enhanced-resolve": "^5.18.3", + "glob": "^10.3.10", + "minimatch": "^9.0.3", + "mocha": "^11.7.4", + "supports-color": "^10.2.2", + "yargs": "^17.7.2" + }, + "bin": { + "vscode-test": "out/bin.mjs" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@vscode/test-cli/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "node_modules/@vscode/test-cli/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "license": "ISC", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=12" + } + }, + "node_modules/@vscode/test-cli/node_modules/diff": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz", + "integrity": "sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/@vscode/test-cli/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "node_modules/@vscode/test-cli/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=16 || 14 >=14.17" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vscode/test-cli/node_modules/mocha": { + "version": "11.7.5", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-11.7.5.tgz", + "integrity": "sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig==", + "dev": true, + "license": "MIT", + "dependencies": { + "browser-stdout": "^1.3.1", + "chokidar": "^4.0.1", + "debug": "^4.3.5", + "diff": "^7.0.0", + "escape-string-regexp": "^4.0.0", + "find-up": "^5.0.0", + "glob": "^10.4.5", + "he": "^1.2.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "log-symbols": "^4.1.0", + "minimatch": "^9.0.5", + "ms": "^2.1.3", + "picocolors": "^1.1.1", + "serialize-javascript": "^6.0.2", + "strip-json-comments": "^3.1.1", + "supports-color": "^8.1.1", + "workerpool": "^9.2.0", + "yargs": "^17.7.2", + "yargs-parser": "^21.1.1", + "yargs-unparser": "^2.0.0" }, - "peerDependencies": { - "eslint": "*" + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "node_modules/@vscode/test-cli/node_modules/mocha/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">= 14.16.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "node_modules/@vscode/test-cli/node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "has-flag": "^4.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "node_modules/@vscode/test-cli/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">= 14.18.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@typescript-eslint/utils/node_modules/@types/semver": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", - "dev": true + "node_modules/@vscode/test-cli/node_modules/workerpool": { + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-9.3.4.tgz", + "integrity": "sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg==", + "dev": true, + "license": "Apache-2.0" }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "node_modules/@vscode/test-cli/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=12" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", - "dev": true - }, - "node_modules/@vscode/extension-telemetry": { - "version": "0.9.9", - "resolved": "https://registry.npmjs.org/@vscode/extension-telemetry/-/extension-telemetry-0.9.9.tgz", - "integrity": "sha512-WG/H+H/JRMPnpbXMufXgXlaeJwKszXfAanOERV/nkXBbYyNw0KR84JjUjSg+TgkzYEF/ttRoHTP6fFZWkXdoDQ==", - "dependencies": { - "@microsoft/1ds-core-js": "^4.3.4", - "@microsoft/1ds-post-js": "^4.3.4", - "@microsoft/applicationinsights-web-basic": "^3.3.4" - }, + "node_modules/@vscode/test-cli/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", "engines": { - "vscode": "^1.75.0" + "node": ">=12" } }, "node_modules/@vscode/test-electron": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.4.1.tgz", - "integrity": "sha512-Gc6EdaLANdktQ1t+zozoBVRynfIsMKMc94Svu1QreOBC8y76x4tvaK32TljrLi1LI2+PK58sDVbL7ALdqf3VRQ==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.5.2.tgz", + "integrity": "sha512-8ukpxv4wYe0iWMRQU18jhzJOHkeGKbnw7xWRX3Zw1WJA4cEKbHcmmLPdPrPtL6rhDcrlCZN+xKRpv09n4gRHYg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "http-proxy-agent": "^7.0.2", "https-proxy-agent": "^7.0.5", "jszip": "^3.10.1", - "ora": "^7.0.1", + "ora": "^8.1.0", "semver": "^7.6.2" }, "engines": { @@ -2182,30 +3396,37 @@ } }, "node_modules/@vscode/vsce": { - "version": "2.32.0", - "resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-2.32.0.tgz", - "integrity": "sha512-3EFJfsgrSftIqt3EtdRcAygy/OJ3hstyI1cDmIgkU9CFZW5C+3djr6mfosndCUqcVYuyjmxOK1xmFp/Bq7+NIg==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-3.7.1.tgz", + "integrity": "sha512-OTm2XdMt2YkpSn2Nx7z2EJtSuhRHsTPYsSK59hr3v8jRArK+2UEoju4Jumn1CmpgoBLGI6ReHLJ/czYltNUW3g==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "@azure/identity": "^4.1.0", + "@secretlint/node": "^10.1.2", + "@secretlint/secretlint-formatter-sarif": "^10.1.2", + "@secretlint/secretlint-rule-no-dotenv": "^10.1.2", + "@secretlint/secretlint-rule-preset-recommend": "^10.1.2", "@vscode/vsce-sign": "^2.0.0", "azure-devops-node-api": "^12.5.0", - "chalk": "^2.4.2", + "chalk": "^4.1.2", "cheerio": "^1.0.0-rc.9", "cockatiel": "^3.1.2", - "commander": "^6.2.1", + "commander": "^12.1.0", "form-data": "^4.0.0", - "glob": "^7.0.6", + "glob": "^11.0.0", "hosted-git-info": "^4.0.2", "jsonc-parser": "^3.2.0", "leven": "^3.1.0", - "markdown-it": "^12.3.2", + "markdown-it": "^14.1.0", "mime": "^1.3.4", "minimatch": "^3.0.3", "parse-semver": "^1.1.1", "read": "^1.0.7", + "secretlint": "^10.1.2", "semver": "^7.5.2", - "tmp": "^0.2.1", + "tmp": "^0.2.3", "typed-rest-client": "^1.8.4", "url-join": "^4.0.1", "xml2js": "^0.5.0", @@ -2216,7 +3437,7 @@ "vsce": "vsce" }, "engines": { - "node": ">= 16" + "node": ">= 20" }, "optionalDependencies": { "keytar": "^7.7.0" @@ -2357,12 +3578,95 @@ "win32" ] }, + "node_modules/@vscode/vsce/node_modules/glob": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz", + "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "foreground-child": "^3.3.1", + "jackspeak": "^4.1.1", + "minimatch": "^10.1.1", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vscode/vsce/node_modules/glob/node_modules/minimatch": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", + "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/brace-expansion": "^5.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vscode/vsce/node_modules/jackspeak": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz", + "integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@vscode/vsce/node_modules/jsonc-parser": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", "dev": true }, + "node_modules/@vscode/vsce/node_modules/lru-cache": { + "version": "11.2.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", + "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@vscode/vsce/node_modules/path-scurry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", + "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@webassemblyjs/ast": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", @@ -2509,42 +3813,6 @@ "@xtuc/long": "4.2.2" } }, - "node_modules/@webpack-cli/configtest": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", - "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", - "dev": true, - "peerDependencies": { - "webpack": "4.x.x || 5.x.x", - "webpack-cli": "4.x.x" - } - }, - "node_modules/@webpack-cli/info": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", - "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", - "dev": true, - "dependencies": { - "envinfo": "^7.7.3" - }, - "peerDependencies": { - "webpack-cli": "4.x.x" - } - }, - "node_modules/@webpack-cli/serve": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", - "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", - "dev": true, - "peerDependencies": { - "webpack-cli": "4.x.x" - }, - "peerDependenciesMeta": { - "webpack-dev-server": { - "optional": true - } - } - }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -2557,23 +3825,13 @@ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dev": true, - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, + "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2586,22 +3844,11 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/acorn-walk": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", - "dev": true, - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/agent-base": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", @@ -2674,198 +3921,81 @@ "node": ">=6" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", - "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", - "dev": true, - "dependencies": { - "call-bound": "^1.0.3", - "is-array-buffer": "^3.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "node_modules/ansi-escapes": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.2.0.tgz", + "integrity": "sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" + "environment": "^1.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "engines": { - "node": ">=8" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", - "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/array.prototype.flat": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", - "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 8" } }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", - "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", - "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "is-array-buffer": "^3.0.4" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, "node_modules/assert": { @@ -2881,54 +4011,24 @@ "util": "^0.12.5" } }, - "node_modules/async-done": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", - "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^2.0.0", - "stream-exhaust": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/async-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", - "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/async-settle": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-2.0.0.tgz", - "integrity": "sha512-Obu/KE8FurfQRN6ODdHN9LuXqwC+JFIM9NRyZqJJ4ZfLJmIYN9Rg0/kb+wF70VV5+fJusTMQlJ1t5rF7J/ETdg==", + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true, - "dependencies": { - "async-done": "^2.0.0" - }, + "license": "MIT", "engines": { - "node": ">= 10.13.0" + "node": ">=12" } }, - "node_modules/async-settle/node_modules/async-done": { + "node_modules/astral-regex": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-2.0.0.tgz", - "integrity": "sha512-j0s3bzYq9yKIVLKGE/tWlCpa3PfFLcrDZLTSVdnnCTGagXuXBJO4SsY9Xdk/fQBirCkH4evW5xOeJXqlAQFdsw==", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, - "dependencies": { - "end-of-stream": "^1.4.4", - "once": "^1.4.0", - "stream-exhaust": "^1.0.2" - }, + "license": "MIT", "engines": { - "node": ">= 10.13.0" + "node": ">=8" } }, "node_modules/asynckit": { @@ -2962,53 +4062,12 @@ "typed-rest-client": "^1.8.4" } }, - "node_modules/b4a": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", - "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", - "dev": true - }, - "node_modules/bach": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bach/-/bach-2.0.1.tgz", - "integrity": "sha512-A7bvGMGiTOxGMpNupYl9HQTf0FFDNF4VCmks4PJpFyN1AX2pdKuxuwdvUz2Hu388wcgp+OvGFNsumBfFNkR7eg==", - "dev": true, - "dependencies": { - "async-done": "^2.0.0", - "async-settle": "^2.0.0", - "now-and-later": "^3.0.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/bach/node_modules/async-done": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-2.0.0.tgz", - "integrity": "sha512-j0s3bzYq9yKIVLKGE/tWlCpa3PfFLcrDZLTSVdnnCTGagXuXBJO4SsY9Xdk/fQBirCkH4evW5xOeJXqlAQFdsw==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.4.4", - "once": "^1.4.0", - "stream-exhaust": "^1.0.2" - }, - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "node_modules/bare-events": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz", - "integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==", - "dev": true, - "optional": true - }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -3027,12 +4086,14 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "optional": true }, "node_modules/before-after-hook": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==" + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", + "license": "Apache-2.0" }, "node_modules/binary-extensions": { "version": "2.3.0", @@ -3046,29 +4107,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bl": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", - "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", - "dev": true, - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bl/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "node_modules/binaryextensions": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-6.11.0.tgz", + "integrity": "sha512-sXnYK/Ij80TO3lcqZVV2YgfKN5QjUWIRk/XSm2J/4bd/lPko3lvk0O4ZppH6m+6hB2/GTu+ptNwVFe1xh+QLQw==", "dev": true, + "license": "Artistic-2.0", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "editions": "^6.21.0" }, "engines": { - "node": ">= 6" + "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" } }, "node_modules/boolbase": { @@ -3077,6 +4129,13 @@ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "dev": true }, + "node_modules/boundary": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/boundary/-/boundary-2.0.0.tgz", + "integrity": "sha512-rJKn5ooC9u8q13IMCrW0RSp31pxBCHE3y9V/tp3TdWSLf8Em3p6Di4NBpfzbJge9YjjFEsD0RtFEjtvHL5VyEA==", + "dev": true, + "license": "BSD-2-Clause" + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -3132,6 +4191,7 @@ "url": "https://github.com/sponsors/ai" } ], + "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001688", "electron-to-chromium": "^1.5.73", @@ -3145,30 +4205,6 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -3195,6 +4231,7 @@ "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.9.tgz", "integrity": "sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==", "hasInstallScript": true, + "peer": true, "dependencies": { "node-gyp-build": "^4.3.0" }, @@ -3223,6 +4260,84 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/c8": { + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/c8/-/c8-10.1.3.tgz", + "integrity": "sha512-LvcyrOAaOnrrlMpW22n690PUvxiq4Uf9WMhQwNJ9vgagkL/ph1+D4uvjvDA5XCbykrc0sx+ay6pVi9YZ1GnhyA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@bcoe/v8-coverage": "^1.0.1", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^3.1.1", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.1", + "istanbul-reports": "^3.1.6", + "test-exclude": "^7.0.1", + "v8-to-istanbul": "^9.0.0", + "yargs": "^17.7.2", + "yargs-parser": "^21.1.1" + }, + "bin": { + "c8": "bin/c8.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "monocart-coverage-reports": "^2" + }, + "peerDependenciesMeta": { + "monocart-coverage-reports": { + "optional": true + } + } + }, + "node_modules/c8/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/c8/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/c8/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, "node_modules/call-bind": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", @@ -3275,6 +4390,7 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -3311,27 +4427,58 @@ } ] }, + "node_modules/chai": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/chai-as-promised": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-8.0.2.tgz", + "integrity": "sha512-1GadL+sEJVLzDjcawPM4kjfnL+p/9vrxiEUonowKOAzvVg0PixJUdtuDzdkDeQhK3zfOE76GqGkZIQ7/Adcrqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "check-error": "^2.1.1" + }, + "peerDependencies": { + "chai": ">= 2.1.2 < 7" + } + }, "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/chalk/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=0.8.0" + "node": ">=8" } }, "node_modules/charenc": { @@ -3343,6 +4490,16 @@ "node": "*" } }, + "node_modules/check-error": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz", + "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, "node_modules/cheerio": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz", @@ -3434,15 +4591,16 @@ } }, "node_modules/cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", "dev": true, + "license": "MIT", "dependencies": { - "restore-cursor": "^4.0.0" + "restore-cursor": "^5.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3453,6 +4611,7 @@ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -3471,47 +4630,6 @@ "wrap-ansi": "^7.0.0" } }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone-deep/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", - "dev": true - }, "node_modules/cockatiel": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/cockatiel/-/cockatiel-3.2.1.tgz", @@ -3522,25 +4640,24 @@ } }, "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" }, "node_modules/combined-stream": { "version": "1.0.8", @@ -3555,12 +4672,13 @@ } }, "node_modules/commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 6" + "node": ">=18" } }, "node_modules/concat-map": { @@ -3581,56 +4699,6 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, - "node_modules/copy-props": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-4.0.0.tgz", - "integrity": "sha512-bVWtw1wQLzzKiYROtvNlbJgxgBYt2bMJpkCbKmXM3xyijvcjjWXEk5nyrrT3bgJ7ODb19ZohE2T0Y3FgNPyoTw==", - "dev": true, - "dependencies": { - "each-props": "^3.0.0", - "is-plain-object": "^5.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/copy-webpack-plugin": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-13.0.1.tgz", - "integrity": "sha512-J+YV3WfhY6W/Xf9h+J1znYuqTye2xkBUIGyTPWuBAT27qajBa5mR4f8WBmfDY3YjRftT2kqZZiLi1qf0H+UOFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "glob-parent": "^6.0.1", - "normalize-path": "^3.0.0", - "schema-utils": "^4.2.0", - "serialize-javascript": "^6.0.2", - "tinyglobby": "^0.2.12" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/core-js-pure": { "version": "3.41.0", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.41.0.tgz", @@ -3647,12 +4715,6 @@ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, "node_modules/cross-fetch": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.1.0.tgz", @@ -3724,66 +4786,16 @@ "node": ">=0.12" } }, - "node_modules/data-view-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", - "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", - "dev": true, - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", - "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", - "dev": true, - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/inspect-js" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", - "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", - "dev": true, - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/dayjs": { "version": "1.11.13", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" }, "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", "dependencies": { "ms": "^2.1.3" }, @@ -3844,6 +4856,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -4007,16 +5020,8 @@ "node_modules/deprecation": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" - }, - "node_modules/detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "license": "ISC" }, "node_modules/detect-libc": { "version": "2.0.3", @@ -4048,28 +5053,10 @@ "node": ">=8" } }, - "node_modules/discontinuous-range": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", - "integrity": "sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==" - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", @@ -4094,7 +5081,6 @@ "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, "dependencies": { "domelementtype": "^2.3.0" }, @@ -4109,7 +5095,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", - "dev": true, "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", @@ -4138,24 +5123,12 @@ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" }, - "node_modules/each-props": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-3.0.0.tgz", - "integrity": "sha512-IYf1hpuWrdzse/s/YJOrFmU15lyhSzxelNVAHTEG3DtP4QsLTWZUzcUL3HMXmKQxXpa4EIrBPpwRgj0aehdvAw==", - "dev": true, - "dependencies": { - "is-plain-object": "^5.0.0", - "object.defaults": "^1.1.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ecdsa-sig-formatter": { "version": "1.0.11", @@ -4167,6 +5140,23 @@ "safe-buffer": "^5.0.1" } }, + "node_modules/editions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/editions/-/editions-6.22.0.tgz", + "integrity": "sha512-UgGlf8IW75je7HZjNDpJdCv4cGJWIi6yumFdZ0R7A8/CIhQiWUjyGLCxdHpd8bmyD1gnkfUNK0oeOXqUS2cpfQ==", + "dev": true, + "license": "Artistic-2.0", + "dependencies": { + "version-range": "^4.15.0" + }, + "engines": { + "ecmascript": ">= es5", + "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, "node_modules/electron-to-chromium": { "version": "1.5.114", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.114.tgz", @@ -4201,10 +5191,11 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.18.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", - "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "version": "5.18.4", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz", + "integrity": "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -4217,7 +5208,6 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, "engines": { "node": ">=0.12" }, @@ -4225,81 +5215,17 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/envinfo": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.14.0.tgz", - "integrity": "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==", - "dev": true, - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/es-abstract": { - "version": "1.23.9", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", - "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.2", - "arraybuffer.prototype.slice": "^1.0.4", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "data-view-buffer": "^1.0.2", - "data-view-byte-length": "^1.0.2", - "data-view-byte-offset": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.1.0", - "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.0", - "get-symbol-description": "^1.1.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.5", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.2", - "is-regex": "^1.2.1", - "is-shared-array-buffer": "^1.0.4", - "is-string": "^1.1.1", - "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.0", - "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.7", - "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.3", - "safe-array-concat": "^1.1.3", - "safe-push-apply": "^1.0.0", - "safe-regex-test": "^1.1.0", - "set-proto": "^1.0.0", - "string.prototype.trim": "^1.2.10", - "string.prototype.trimend": "^1.0.9", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.3", - "typed-array-byte-length": "^1.0.3", - "typed-array-byte-offset": "^1.0.4", - "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.18" - }, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/es-define-property": { @@ -4353,35 +5279,6 @@ "node": ">= 0.4" } }, - "node_modules/es-shim-unscopables": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", - "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", - "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", - "dev": true, - "dependencies": { - "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/es5-ext": { "version": "0.10.64", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", @@ -4412,11 +5309,109 @@ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", "dependencies": { - "d": "^1.0.2", - "ext": "^1.7.0" + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/esbuild": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", + "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "peer": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.2", + "@esbuild/android-arm": "0.27.2", + "@esbuild/android-arm64": "0.27.2", + "@esbuild/android-x64": "0.27.2", + "@esbuild/darwin-arm64": "0.27.2", + "@esbuild/darwin-x64": "0.27.2", + "@esbuild/freebsd-arm64": "0.27.2", + "@esbuild/freebsd-x64": "0.27.2", + "@esbuild/linux-arm": "0.27.2", + "@esbuild/linux-arm64": "0.27.2", + "@esbuild/linux-ia32": "0.27.2", + "@esbuild/linux-loong64": "0.27.2", + "@esbuild/linux-mips64el": "0.27.2", + "@esbuild/linux-ppc64": "0.27.2", + "@esbuild/linux-riscv64": "0.27.2", + "@esbuild/linux-s390x": "0.27.2", + "@esbuild/linux-x64": "0.27.2", + "@esbuild/netbsd-arm64": "0.27.2", + "@esbuild/netbsd-x64": "0.27.2", + "@esbuild/openbsd-arm64": "0.27.2", + "@esbuild/openbsd-x64": "0.27.2", + "@esbuild/openharmony-arm64": "0.27.2", + "@esbuild/sunos-x64": "0.27.2", + "@esbuild/win32-arm64": "0.27.2", + "@esbuild/win32-ia32": "0.27.2", + "@esbuild/win32-x64": "0.27.2" + } + }, + "node_modules/esbuild-plugin-copy": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/esbuild-plugin-copy/-/esbuild-plugin-copy-2.1.1.tgz", + "integrity": "sha512-Bk66jpevTcV8KMFzZI1P7MZKZ+uDcrZm2G2egZ2jNIvVnivDpodZI+/KnpL3Jnap0PBdIHU7HwFGB8r+vV5CVw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "fs-extra": "^10.0.1", + "globby": "^11.0.3" + }, + "peerDependencies": { + "esbuild": ">= 0.14.0" + } + }, + "node_modules/esbuild-plugin-copy/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-plugin-copy/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/esbuild-plugin-copy/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=0.12" + "node": ">= 10.0.0" } }, "node_modules/escalade": { @@ -4440,170 +5435,66 @@ } }, "node_modules/eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", + "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", + "license": "MIT", + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.1", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.39.2", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dev": true, - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", - "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", - "dev": true, - "dependencies": { - "debug": "^3.2.7" + "url": "https://eslint.org/donate" }, - "engines": { - "node": ">=4" + "peerDependencies": { + "jiti": "*" }, "peerDependenciesMeta": { - "eslint": { + "jiti": { "optional": true } } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", - "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", - "dev": true, - "dependencies": { - "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.8", - "array.prototype.findlastindex": "^1.2.5", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.0", - "hasown": "^2.0.2", - "is-core-module": "^2.15.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "object.groupby": "^1.0.3", - "object.values": "^1.2.0", - "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.8", - "tsconfig-paths": "^3.15.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -4629,66 +5520,31 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/eslint/node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">=10" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, + "license": "Apache-2.0", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -4699,6 +5555,7 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -4715,27 +5572,6 @@ "node": ">=10.13.0" } }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/esniff": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", @@ -4751,17 +5587,31 @@ } }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.2.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -4850,15 +5700,6 @@ "through": "~2.3.1" } }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -4877,18 +5718,6 @@ "node": ">=6" } }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", - "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/ext": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", @@ -4897,12 +5726,6 @@ "type": "^2.7.2" } }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, "node_modules/extract-zip": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", @@ -4928,12 +5751,6 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "node_modules/fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", - "dev": true - }, "node_modules/fast-glob": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", @@ -4994,15 +5811,6 @@ "fxparser": "src/cli/cli.js" } }, - "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true, - "engines": { - "node": ">= 4.9.1" - } - }, "node_modules/fastq": { "version": "1.19.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", @@ -5020,15 +5828,16 @@ } }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, + "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.0.0" } }, "node_modules/fill-range": { @@ -5058,46 +5867,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/findup-sync": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", - "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", - "dev": true, - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.3", - "micromatch": "^4.0.4", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/fined": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-2.0.0.tgz", - "integrity": "sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==", - "dev": true, - "dependencies": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^5.0.0", - "object.defaults": "^1.1.0", - "object.pick": "^1.3.0", - "parse-filepath": "^1.0.2" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/flagged-respawn": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-2.0.0.tgz", - "integrity": "sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==", - "dev": true, - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/flat": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", @@ -5108,24 +5877,25 @@ } }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16" } }, "node_modules/flatted": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/for-each": { "version": "0.3.5", @@ -5142,25 +5912,21 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", "dev": true, + "license": "ISC", "dependencies": { - "for-in": "^1.0.1" + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/form-data": { @@ -5202,19 +5968,6 @@ "universalify": "^0.1.0" } }, - "node_modules/fs-mkdirp-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-2.0.1.tgz", - "integrity": "sha512-UTOY+59K6IA94tec8Wjqm0FSh5OVudGNB0NL/P6fB3HiE3bYOY3VYBGijsnOHNkQSwC1FKkU77pmq7xp9CskLw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.8", - "streamx": "^2.12.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -5244,42 +5997,26 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/function.prototype.name": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", - "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "functions-have-names": "^1.2.3", - "hasown": "^2.0.2", - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz", + "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/get-intrinsic": { @@ -5333,21 +6070,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-symbol-description": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", - "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "node_modules/get-tsconfig": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.0.tgz", + "integrity": "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" + "resolve-pkg-maps": "^1.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, "node_modules/github-from-package": { @@ -5389,143 +6122,25 @@ "node": ">= 6" } }, - "node_modules/glob-stream": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-8.0.2.tgz", - "integrity": "sha512-R8z6eTB55t3QeZMmU1C+Gv+t5UnNRkA55c5yo67fAVfxODxieTwsjNG7utxS/73NdP1NbDgCrhVEg2h00y4fFw==", - "dev": true, - "dependencies": { - "@gulpjs/to-absolute-glob": "^4.0.0", - "anymatch": "^3.1.3", - "fastq": "^1.13.0", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "is-negated-glob": "^1.0.0", - "normalize-path": "^3.0.0", - "streamx": "^2.12.5" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob-stream/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, - "node_modules/glob-watcher": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-6.0.0.tgz", - "integrity": "sha512-wGM28Ehmcnk2NqRORXFOTOR064L4imSw3EeOqU5bIwUf62eXGwg89WivH6VMahL8zlQHeodzvHpXplrqzrz3Nw==", - "dev": true, - "dependencies": { - "async-done": "^2.0.0", - "chokidar": "^3.5.3" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/glob-watcher/node_modules/async-done": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-2.0.0.tgz", - "integrity": "sha512-j0s3bzYq9yKIVLKGE/tWlCpa3PfFLcrDZLTSVdnnCTGagXuXBJO4SsY9Xdk/fQBirCkH4evW5xOeJXqlAQFdsw==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.4.4", - "once": "^1.4.0", - "stream-exhaust": "^1.0.2" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", - "dev": true, - "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dev": true, - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -5545,18 +6160,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/glogg": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-2.2.0.tgz", - "integrity": "sha512-eWv1ds/zAlz+M1ioHsyKJomfY7jbDDPpwSkv14KQj89bycx1nvK5/2Cj/T9g7kzJcX5Bc7Yv22FjfBZS/jl94A==", - "dev": true, - "dependencies": { - "sparkles": "^2.1.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", @@ -5574,159 +6177,16 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/gulp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-5.0.0.tgz", - "integrity": "sha512-S8Z8066SSileaYw1S2N1I64IUc/myI2bqe2ihOBzO6+nKpvNSg7ZcWJt/AwF8LC/NVN+/QZ560Cb/5OPsyhkhg==", - "dev": true, - "dependencies": { - "glob-watcher": "^6.0.0", - "gulp-cli": "^3.0.0", - "undertaker": "^2.0.0", - "vinyl-fs": "^4.0.0" - }, - "bin": { - "gulp": "bin/gulp.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/gulp-cli": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-3.0.0.tgz", - "integrity": "sha512-RtMIitkT8DEMZZygHK2vEuLPqLPAFB4sntSxg4NoDta7ciwGZ18l7JuhCTiS5deOJi2IoK0btE+hs6R4sfj7AA==", - "dev": true, - "dependencies": { - "@gulpjs/messages": "^1.1.0", - "chalk": "^4.1.2", - "copy-props": "^4.0.0", - "gulplog": "^2.2.0", - "interpret": "^3.1.1", - "liftoff": "^5.0.0", - "mute-stdout": "^2.0.0", - "replace-homedir": "^2.0.0", - "semver-greatest-satisfied-range": "^2.0.0", - "string-width": "^4.2.3", - "v8flags": "^4.0.0", - "yargs": "^16.2.0" - }, - "bin": { - "gulp": "bin/gulp.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/gulp-cli/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/gulp-cli/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/gulp-cli/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/gulp-cli/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/gulp-cli/node_modules/has-flag": { + "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/gulp-cli/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/gulplog": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-2.2.0.tgz", - "integrity": "sha512-V2FaKiOhpR3DRXZuYdRLn/qiY0yI5XmqbTKrYbdemJ+xOh2d2MOweI/XFgMzd/9+1twdvMwllnZbWZNJ+BOm4A==", - "dev": true, - "dependencies": { - "glogg": "^2.2.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/has-bigints": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", - "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/has-property-descriptors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", @@ -5739,21 +6199,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-proto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", - "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", - "dev": true, - "dependencies": { - "dunder-proto": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-symbols": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", @@ -5797,22 +6242,11 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, "bin": { "he": "bin/he" } }, - "node_modules/homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "dependencies": { - "parse-passwd": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/hosted-git-info": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", @@ -5825,77 +6259,33 @@ "node": ">=10" } }, - "node_modules/html-to-text": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-8.2.1.tgz", - "integrity": "sha512-aN/3JvAk8qFsWVeE9InWAWueLXrbkoVZy0TkzaGhoRBC2gCFEeRLDDJN3/ijIGHohy6H+SZzUQWN/hcYtaPK8w==", - "dependencies": { - "@selderee/plugin-htmlparser2": "^0.6.0", - "deepmerge": "^4.2.2", - "he": "^1.2.0", - "htmlparser2": "^6.1.0", - "minimist": "^1.2.6", - "selderee": "^0.6.0" - }, - "bin": { - "html-to-text": "bin/cli.js" - }, - "engines": { - "node": ">=10.23.2" - } - }, - "node_modules/html-to-text/node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/html-to-text/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" }, - "node_modules/html-to-text/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "node_modules/html-to-text": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-9.0.5.tgz", + "integrity": "sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==", + "license": "MIT", "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" + "@selderee/plugin-htmlparser2": "^0.11.0", + "deepmerge": "^4.3.1", + "dom-serializer": "^2.0.0", + "htmlparser2": "^8.0.2", + "selderee": "^0.11.0" }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/html-to-text/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "engines": { + "node": ">=14" } }, "node_modules/html-to-text/node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", { @@ -5903,11 +6293,12 @@ "url": "https://github.com/sponsors/fb55" } ], + "license": "MIT", "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" } }, "node_modules/htmlparser2": { @@ -6004,7 +6395,8 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "optional": true }, "node_modules/ignore": { "version": "5.3.2", @@ -6025,6 +6417,7 @@ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -6036,25 +6429,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-local": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", - "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -6064,6 +6438,19 @@ "node": ">=0.8.19" } }, + "node_modules/index-to-position": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-1.2.0.tgz", + "integrity": "sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -6085,43 +6472,8 @@ "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/internal-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", - "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", - "dev": true, - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/interpret": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", "dev": true, - "dependencies": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } + "optional": true }, "node_modules/is-arguments": { "version": "1.2.0", @@ -6139,57 +6491,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-array-buffer": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", - "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-async-function": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", - "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", - "dev": true, - "dependencies": { - "async-function": "^1.0.0", - "call-bound": "^1.0.3", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", - "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -6202,22 +6503,6 @@ "node": ">=8" } }, - "node_modules/is-boolean-object": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", - "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", - "dev": true, - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", @@ -6236,54 +6521,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dev": true, - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-view": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", - "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", - "dev": true, - "dependencies": { - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", - "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", - "dev": true, - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-docker": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", @@ -6306,21 +6543,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-finalizationregistry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", - "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", - "dev": true, - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -6397,6 +6619,7 @@ "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -6404,18 +6627,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-nan": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", @@ -6432,15 +6643,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -6449,22 +6651,6 @@ "node": ">=0.12.0" } }, - "node_modules/is-number-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", - "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", - "dev": true, - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -6504,109 +6690,28 @@ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", - "dev": true, - "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dev": true, - "dependencies": { - "is-unc-path": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", - "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", - "dev": true, - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/is-string": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", - "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true, - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/is-symbol": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", - "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dev": true, "dependencies": { "call-bound": "^1.0.2", - "has-symbols": "^1.1.0", - "safe-regex-test": "^1.1.0" + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -6635,18 +6740,6 @@ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" }, - "node_modules/is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dev": true, - "dependencies": { - "unc-path-regex": "^0.1.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -6659,97 +6752,113 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==", - "dev": true, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, + "license": "BSD-3-Clause", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/is-weakref": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", - "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "call-bound": "^1.0.3" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10" } }, - "node_modules/is-weakset": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", - "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "node_modules/istextorbinary": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-9.5.0.tgz", + "integrity": "sha512-5mbUj3SiZXCuRf9fT3ibzbSSEWiy63gFfksmGfdOzujPjW3k+z8WvIBxcJHBoQNlaZaiyB25deviif2+osLmLw==", + "dev": true, + "license": "Artistic-2.0", "dependencies": { - "is-docker": "^2.0.0" + "binaryextensions": "^6.11.0", + "editions": "^6.21.0", + "textextensions": "^6.11.0" }, "engines": { - "node": ">=8" + "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" } }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, - "engines": { - "node": ">=0.10.0" + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, "node_modules/jest-worker": { @@ -6766,15 +6875,6 @@ "node": ">= 10.13.0" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -6790,6 +6890,13 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, "node_modules/js-yaml": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", @@ -6807,7 +6914,8 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", @@ -6827,6 +6935,19 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/jsonc-parser": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz", @@ -6937,35 +7058,18 @@ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/last-run": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-2.0.0.tgz", - "integrity": "sha512-j+y6WhTLN4Itnf9j5ZQos1BGPCS8DAwmgMroR3OzfxAsBxam0hMw7J8M3KqZl0pLQJ1jNnwIexg5DYpC/ctwEQ==", - "dev": true, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/lead": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-4.0.0.tgz", - "integrity": "sha512-DpMa59o5uGUWWjruMp71e6knmwKU3jRBBn1kjuLWN9EeIOxNeSAwvHf03WIl8g/ZMR2oSQC9ej3yeLBwdDc/pg==", - "dev": true, - "engines": { - "node": ">=10.13.0" + "node_modules/leac": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/leac/-/leac-0.6.0.tgz", + "integrity": "sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==", + "license": "MIT", + "funding": { + "url": "https://ko-fi.com/killymxi" } }, "node_modules/leven": { @@ -6999,31 +7103,14 @@ "immediate": "~3.0.5" } }, - "node_modules/liftoff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-5.0.0.tgz", - "integrity": "sha512-a5BQjbCHnB+cy+gsro8lXJ4kZluzOijzJ1UVVfyJYZC+IP2pLv1h4+aysQeKuTmyO8NAqfyQAk4HWaP/HjcKTg==", - "dev": true, - "dependencies": { - "extend": "^3.0.2", - "findup-sync": "^5.0.0", - "fined": "^2.0.0", - "flagged-respawn": "^2.0.0", - "is-plain-object": "^5.0.0", - "rechoir": "^0.8.0", - "resolve": "^1.20.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/linkify-it": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", - "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", "dev": true, + "license": "MIT", "dependencies": { - "uc.micro": "^1.0.1" + "uc.micro": "^2.0.0" } }, "node_modules/loader-runner": { @@ -7105,90 +7192,27 @@ "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", "dev": true }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true, + "license": "MIT" + }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lru-cache": { @@ -7203,19 +7227,20 @@ "node": ">=10" } }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/map-stream": { @@ -7224,28 +7249,21 @@ "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==" }, "node_modules/markdown-it": { - "version": "12.3.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", - "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" }, "bin": { - "markdown-it": "bin/markdown-it.js" - } - }, - "node_modules/markdown-it/node_modules/entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "markdown-it": "bin/markdown-it.mjs" } }, "node_modules/math-intrinsics": { @@ -7269,10 +7287,11 @@ } }, "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "dev": true, + "license": "MIT" }, "node_modules/merge-stream": { "version": "2.0.0", @@ -7333,13 +7352,17 @@ "node": ">= 0.6" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/mimic-response": { @@ -7371,10 +7394,21 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/mkdirp-classic": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", @@ -7387,6 +7421,7 @@ "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz", "integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==", "dev": true, + "peer": true, "dependencies": { "ansi-colors": "^4.1.3", "browser-stdout": "^1.3.1", @@ -7417,37 +7452,6 @@ "node": ">= 14.0.0" } }, - "node_modules/mocha-junit-reporter": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/mocha-junit-reporter/-/mocha-junit-reporter-2.2.1.tgz", - "integrity": "sha512-iDn2tlKHn8Vh8o4nCzcUVW4q7iXp7cC4EB78N0cDHIobLymyHNwe0XG8HEHHjc3hJlXm0Vy6zcrxaIhnI2fWmw==", - "dev": true, - "dependencies": { - "debug": "^4.3.4", - "md5": "^2.3.0", - "mkdirp": "^3.0.0", - "strip-ansi": "^6.0.1", - "xml": "^1.0.1" - }, - "peerDependencies": { - "mocha": ">=2.2.5" - } - }, - "node_modules/mocha-junit-reporter/node_modules/mkdirp": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", - "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", - "dev": true, - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/mocha-multi-reporters": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/mocha-multi-reporters/-/mocha-multi-reporters-1.5.1.tgz", @@ -7493,15 +7497,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mocha/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/mocha/node_modules/minimatch": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", @@ -7529,25 +7524,11 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/moo": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", - "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==" - }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, - "node_modules/mute-stdout": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-2.0.0.tgz", - "integrity": "sha512-32GSKM3Wyc8dg/p39lWPKYu8zci9mJFzV1Np9Of0ZEpe6Fhssn/FbI7ywAMd40uX+p3ZKh3T5EeCFv81qS3HmQ==", - "dev": true, - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/mute-stream": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", @@ -7567,38 +7548,6 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, - "node_modules/nearley": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz", - "integrity": "sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==", - "dependencies": { - "commander": "^2.19.0", - "moo": "^0.5.0", - "railroad-diagrams": "^1.0.0", - "randexp": "0.4.6" - }, - "bin": { - "nearley-railroad": "bin/nearley-railroad.js", - "nearley-test": "bin/nearley-test.js", - "nearley-unparse": "bin/nearley-unparse.js", - "nearleyc": "bin/nearleyc.js" - }, - "funding": { - "type": "individual", - "url": "https://nearley.js.org/#give-to-nearley" - } - }, - "node_modules/nearley/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -7665,25 +7614,100 @@ "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "dev": true }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "node_modules/node-sarif-builder": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/node-sarif-builder/-/node-sarif-builder-3.4.0.tgz", + "integrity": "sha512-tGnJW6OKRii9u/b2WiUViTJS+h7Apxx17qsMUjsUeNDiMMX5ZFf8F8Fcz7PAQ6omvOxHZtvDTmOYKJQwmfpjeg==", "dev": true, + "license": "MIT", + "dependencies": { + "@types/sarif": "^2.1.7", + "fs-extra": "^11.1.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=20" } }, - "node_modules/now-and-later": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-3.0.0.tgz", - "integrity": "sha512-pGO4pzSdaxhWTGkfSfHx3hVzJVslFPwBp2Myq9MYN/ChfJZF87ochMAXnvz6/58RJSf5ik2q9tXprBBrk2cpcg==", + "node_modules/node-sarif-builder/node_modules/fs-extra": { + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.3.tgz", + "integrity": "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==", "dev": true, + "license": "MIT", "dependencies": { - "once": "^1.4.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">= 10.13.0" + "node": ">=14.14" + } + }, + "node_modules/node-sarif-builder/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/node-sarif-builder/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/normalize-package-data": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data/node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, "node_modules/nth-check": { @@ -7764,83 +7788,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", - "dev": true, - "dependencies": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", - "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.values": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", - "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -7850,15 +7797,16 @@ } }, "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", "dev": true, + "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" + "mimic-function": "^5.0.0" }, "engines": { - "node": ">=6" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7898,33 +7846,35 @@ } }, "node_modules/ora": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-7.0.1.tgz", - "integrity": "sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz", + "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^5.3.0", - "cli-cursor": "^4.0.0", - "cli-spinners": "^2.9.0", + "cli-cursor": "^5.0.0", + "cli-spinners": "^2.9.2", "is-interactive": "^2.0.0", - "is-unicode-supported": "^1.3.0", - "log-symbols": "^5.1.0", - "stdin-discarder": "^0.1.0", - "string-width": "^6.1.0", + "is-unicode-supported": "^2.0.0", + "log-symbols": "^6.0.0", + "stdin-discarder": "^0.2.2", + "string-width": "^7.2.0", "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ora/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -7933,10 +7883,11 @@ } }, "node_modules/ora/node_modules/chalk": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", - "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -7945,32 +7896,48 @@ } }, "node_modules/ora/node_modules/emoji-regex": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", - "dev": true + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "dev": true, + "license": "MIT" }, "node_modules/ora/node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ora/node_modules/log-symbols": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", - "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", + "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", "dev": true, + "license": "MIT", "dependencies": { - "chalk": "^5.0.0", - "is-unicode-supported": "^1.1.0" + "chalk": "^5.3.0", + "is-unicode-supported": "^1.3.0" + }, + "engines": { + "node": ">=18" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -7979,27 +7946,29 @@ } }, "node_modules/ora/node_modules/string-width": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-6.1.0.tgz", - "integrity": "sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^10.2.1", - "strip-ansi": "^7.0.1" + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ora/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -8016,23 +7985,6 @@ "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", "dev": true }, - "node_modules/own-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", - "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.6", - "object-keys": "^1.1.1", - "safe-push-apply": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -8063,6 +8015,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-map": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.4.tgz", + "integrity": "sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-retry": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", @@ -8075,14 +8040,12 @@ "node": ">=8" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", "dev": true, - "engines": { - "node": ">=6" - } + "license": "BlueOak-1.0.0" }, "node_modules/pako": { "version": "1.0.11", @@ -8095,6 +8058,7 @@ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -8102,27 +8066,35 @@ "node": ">=6" } }, - "node_modules/parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", + "node_modules/parse-json": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.3.0.tgz", + "integrity": "sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==", "dev": true, + "license": "MIT", "dependencies": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" + "@babel/code-frame": "^7.26.2", + "index-to-position": "^1.1.0", + "type-fest": "^4.39.1" }, "engines": { - "node": ">=0.8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "node_modules/parse-json/node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=0.10.0" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/parse-semver": { @@ -8181,12 +8153,13 @@ } }, "node_modules/parseley": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/parseley/-/parseley-0.7.0.tgz", - "integrity": "sha512-xyOytsdDu077M3/46Am+2cGXEKM9U9QclBDv7fimY7e+BBlxh2JcBp2mgNsmkyA9uvgyTjVzDi7cP1v4hcFxbw==", + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/parseley/-/parseley-0.12.1.tgz", + "integrity": "sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==", + "license": "MIT", "dependencies": { - "moo": "^0.5.1", - "nearley": "^2.20.1" + "leac": "^0.6.0", + "peberminta": "^0.9.0" }, "funding": { "url": "https://ko-fi.com/killymxi" @@ -8231,32 +8204,29 @@ "node": ">=8" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "path-root-regex": "^0.1.0" + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "engines": { - "node": ">=0.10.0" - } + "license": "ISC" }, "node_modules/path-type": { "version": "4.0.0", @@ -8274,6 +8244,15 @@ "through": "~2.3" } }, + "node_modules/peberminta": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/peberminta/-/peberminta-0.9.0.tgz", + "integrity": "sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==", + "license": "MIT", + "funding": { + "url": "https://ko-fi.com/killymxi" + } + }, "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", @@ -8326,68 +8305,14 @@ "node": ">=0.10.0" } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/possible-typed-array-names": { @@ -8493,6 +8418,16 @@ "node": ">=6" } }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", @@ -8521,23 +8456,6 @@ } ] }, - "node_modules/railroad-diagrams": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", - "integrity": "sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==" - }, - "node_modules/randexp": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", - "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", - "dependencies": { - "discontinuous-range": "1.0.0", - "ret": "~0.1.10" - }, - "engines": { - "node": ">=0.12" - } - }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -8563,6 +8481,19 @@ "rc": "cli.js" } }, + "node_modules/rc-config-loader": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.3.tgz", + "integrity": "sha512-kD7FqML7l800i6pS6pvLyIE2ncbk9Du8Q0gp/4hMPhJU6ZxApkoLcGD8ZeqgiAlfwZ6BlETq6qqe+12DUL207w==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "js-yaml": "^4.1.0", + "json5": "^2.2.2", + "require-from-string": "^2.0.2" + } + }, "node_modules/rc/node_modules/strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", @@ -8585,6 +8516,52 @@ "node": ">=0.8" } }, + "node_modules/read-pkg": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", + "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.3", + "normalize-package-data": "^6.0.0", + "parse-json": "^8.0.0", + "type-fest": "^4.6.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", @@ -8618,80 +8595,11 @@ "node": ">=8.10.0" } }, - "node_modules/rechoir": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", - "dev": true, - "dependencies": { - "resolve": "^1.20.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", - "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.1", - "which-builtin-type": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", - "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", - "dev": true - }, - "node_modules/replace-homedir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-2.0.0.tgz", - "integrity": "sha512-bgEuQQ/BHW0XkkJtawzrfzHFSN70f/3cNOiHa2QsYxqrjaC30X1k74FJ6xswVBP0sr0SpGIdVFuPwfrYziVeyw==", - "dev": true, - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -8710,105 +8618,43 @@ "node": ">=0.10.0" } }, - "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", - "dev": true, - "dependencies": { - "is-core-module": "^2.16.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", - "dev": true, - "dependencies": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, - "node_modules/resolve-options": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-2.0.0.tgz", - "integrity": "sha512-/FopbmmFOQCfsCx77BRFdKOniglTiHumLgwvd6IDPihy1GKkadZbgQJBcTb2lMzSR1pndzd96b1nZrreZ7+9/A==", + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "dev": true, - "dependencies": { - "value-or-function": "^4.0.0" - }, - "engines": { - "node": ">= 10.13.0" + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, "node_modules/restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", "dev": true, + "license": "MIT", "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "engines": { - "node": ">=0.12" - } - }, "node_modules/retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", @@ -8826,22 +8672,6 @@ "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/run-applescript": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", @@ -8876,31 +8706,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/safe-array-concat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", - "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "has-symbols": "^1.1.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-array-concat/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -8921,28 +8726,6 @@ } ] }, - "node_modules/safe-push-apply": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", - "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", - "dev": true, - "dependencies": { - "es-errors": "^1.3.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-push-apply/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, "node_modules/safe-regex-test": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", @@ -8997,6 +8780,7 @@ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -9028,12 +8812,92 @@ "dev": true, "license": "MIT" }, + "node_modules/secretlint": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/secretlint/-/secretlint-10.2.2.tgz", + "integrity": "sha512-xVpkeHV/aoWe4vP4TansF622nBEImzCY73y/0042DuJ29iKIaqgoJ8fGxre3rVSHHbxar4FdJobmTnLp9AU0eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/config-creator": "^10.2.2", + "@secretlint/formatter": "^10.2.2", + "@secretlint/node": "^10.2.2", + "@secretlint/profiler": "^10.2.2", + "debug": "^4.4.1", + "globby": "^14.1.0", + "read-pkg": "^9.0.1" + }, + "bin": { + "secretlint": "bin/secretlint.js" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/secretlint/node_modules/globby": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz", + "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.3", + "path-type": "^6.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/secretlint/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/secretlint/node_modules/path-type": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", + "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/secretlint/node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/selderee": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/selderee/-/selderee-0.6.0.tgz", - "integrity": "sha512-ibqWGV5aChDvfVdqNYuaJP/HnVBhlRGSRrlbttmlMpHcLuTqqbMH36QkSs9GEgj5M88JDYLI8eyP94JaQ8xRlg==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/selderee/-/selderee-0.11.0.tgz", + "integrity": "sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==", + "license": "MIT", "dependencies": { - "parseley": "^0.7.0" + "parseley": "^0.12.0" }, "funding": { "url": "https://ko-fi.com/killymxi" @@ -9050,18 +8914,6 @@ "node": ">=10" } }, - "node_modules/semver-greatest-satisfied-range": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-2.0.0.tgz", - "integrity": "sha512-lH3f6kMbwyANB7HuOWRMlLCa2itaCrZJ+SAqqkSZrZKO/cAsk2EOyaKHUtNkVLFyFW9pct22SFesFp3Z7zpA0g==", - "dev": true, - "dependencies": { - "sver": "^1.8.3" - }, - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/serialize-javascript": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", @@ -9089,53 +8941,12 @@ "node": ">= 0.4" } }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dev": true, - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-proto": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", - "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", - "dev": true, - "dependencies": { - "dunder-proto": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", "dev": true }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -9230,10 +9041,17 @@ } }, "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/simple-concat": { "version": "1.0.1", @@ -9304,6 +9122,24 @@ "node": ">=8" } }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -9323,15 +9159,42 @@ "source-map": "^0.6.0" } }, - "node_modules/sparkles": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-2.1.0.tgz", - "integrity": "sha512-r7iW1bDw8R/cFifrD3JnQJX0K1jqT0kprL48BiBpLZLJPmAm34zsVBsK5lc7HirZYZqMW65dOXZgbAGt/I6frg==", + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, - "engines": { - "node": ">= 10.13.0" + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, + "node_modules/spdx-license-ids": { + "version": "3.0.22", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz", + "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==", + "dev": true, + "license": "CC0-1.0" + }, "node_modules/split": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", @@ -9344,15 +9207,13 @@ } }, "node_modules/stdin-discarder": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz", - "integrity": "sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", + "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", "dev": true, - "dependencies": { - "bl": "^5.0.0" - }, + "license": "MIT", "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -9400,21 +9261,6 @@ "duplexer": "~0.1.1" } }, - "node_modules/stream-composer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-composer/-/stream-composer-1.0.2.tgz", - "integrity": "sha512-bnBselmwfX5K10AH6L4c8+S5lgZMWI7ZYrz2rvYjCPB2DIMC4Ig8OpxGpNJSxRZ58oti7y1IcNvjBAz9vW5m4w==", - "dev": true, - "dependencies": { - "streamx": "^2.13.2" - } - }, - "node_modules/stream-exhaust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", - "dev": true - }, "node_modules/stream-http": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", @@ -9441,19 +9287,6 @@ "node": ">= 6" } }, - "node_modules/streamx": { - "version": "2.22.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.0.tgz", - "integrity": "sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==", - "dev": true, - "dependencies": { - "fast-fifo": "^1.3.2", - "text-decoder": "^1.1.0" - }, - "optionalDependencies": { - "bare-events": "^2.2.0" - } - }, "node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -9483,60 +9316,20 @@ "node": ">=8" } }, - "node_modules/string.prototype.trim": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", - "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-data-property": "^1.1.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-object-atoms": "^1.0.0", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", - "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8" } }, "node_modules/strip-ansi": { @@ -9551,13 +9344,18 @@ "node": ">=8" } }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/strip-json-comments": { @@ -9583,49 +9381,100 @@ } ] }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/structured-source": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/structured-source/-/structured-source-4.0.0.tgz", + "integrity": "sha512-qGzRFNJDjFieQkl/sVOI2dUjHKRyL9dAJi2gCPGJLbJHBIkyOHxjuocpIEfbLioX+qSJpvbYdT49/YCdMznKxA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "has-flag": "^3.0.0" - }, + "boundary": "^2.0.0" + } + }, + "node_modules/supports-color": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz", + "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "node_modules/supports-hyperlinks": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz", + "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==", "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, "engines": { - "node": ">= 0.4" + "node": ">=14.18" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" } }, - "node_modules/sver": { - "version": "1.8.4", - "resolved": "https://registry.npmjs.org/sver/-/sver-1.8.4.tgz", - "integrity": "sha512-71o1zfzyawLfIWBOmw8brleKyvnbn73oVHNCsu51uPMz/HWiKkkXsI31JjHW5zqXEqnPYkIiHd8ZmL7FCimLEA==", + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "optionalDependencies": { - "semver": "^6.3.0" + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/sver/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/table": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", + "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==", "dev": true, - "optional": true, - "bin": { - "semver": "bin/semver.js" + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -9728,15 +9577,24 @@ "node_modules/tas-client": { "version": "0.2.33", "resolved": "https://registry.npmjs.org/tas-client/-/tas-client-0.2.33.tgz", - "integrity": "sha512-V+uqV66BOQnWxvI6HjDnE4VkInmYZUQ4dgB7gzaDyFyFSK1i1nF/j7DpS9UbQAgV9NaF1XpcyuavnM1qOeiEIg==" + "integrity": "sha512-V+uqV66BOQnWxvI6HjDnE4VkInmYZUQ4dgB7gzaDyFyFSK1i1nF/j7DpS9UbQAgV9NaF1XpcyuavnM1qOeiEIg==", + "license": "MIT" }, - "node_modules/teex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", - "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", + "node_modules/terminal-link": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-4.0.0.tgz", + "integrity": "sha512-lk+vH+MccxNqgVqSnkMVKx4VLJfnLjDBGzH16JVZjKE2DoxP57s6/vt6JmXV5I3jBcfGrxNrYtC+mPtU7WJztA==", "dev": true, + "license": "MIT", "dependencies": { - "streamx": "^2.12.5" + "ansi-escapes": "^7.0.0", + "supports-hyperlinks": "^3.2.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/terser": { @@ -9797,13 +9655,66 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "node_modules/text-decoder": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", - "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "node_modules/test-exclude": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.1.tgz", + "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^10.4.1", + "minimatch": "^9.0.4" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", "dependencies": { - "b4a": "^1.6.4" + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/text-table": { @@ -9812,6 +9723,22 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, + "node_modules/textextensions": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-6.11.0.tgz", + "integrity": "sha512-tXJwSr9355kFJI3lbCkPpUH5cP8/M0GGy2xLO34aZCjMXBaK3SoPnZwr/oWmo1FdCnELcs4npdCIOFtq9W3ruQ==", + "dev": true, + "license": "Artistic-2.0", + "dependencies": { + "editions": "^6.21.0" + }, + "engines": { + "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -9858,6 +9785,7 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -9869,250 +9797,105 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.4.tgz", "integrity": "sha512-UdiSoX6ypifLmrfQ/XfiawN6hkjSBpCjhKxxZcWlUUmoXLaCKQU0bx4HF/tdDK2uzRuchf1txGvrWBzYREssoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.14" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/to-through": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-3.0.0.tgz", - "integrity": "sha512-y8MN937s/HVhEoBU1SxfHC+wxCHkV1a9gW8eAdTadYh/bGyesZIVcbjI+mSpFbSVwQici/XjBjuUyri1dnXwBw==", - "dev": true, - "dependencies": { - "streamx": "^2.12.5" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "license": "MIT", - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/ts-loader": { - "version": "9.5.2", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.2.tgz", - "integrity": "sha512-Qo4piXvOTWcMGIgRiuFa6nHNm+54HbYaZCKqc9eeZCLRy3XqafQgwX2F7mofrbJG3g7EEb+lkiR+z2Lic2s3Zw==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "enhanced-resolve": "^5.0.0", - "micromatch": "^4.0.0", - "semver": "^7.3.4", - "source-map": "^0.7.4" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "typescript": "*", - "webpack": "^5.0.0" - } - }, - "node_modules/ts-loader/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ts-loader/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ts-loader/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ts-loader/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/ts-loader/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-loader/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/ts-loader/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, + "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=14.14" } }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dev": true, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" + "is-number": "^7.0.0" }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "license": "MIT", "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } + "tree-kill": "cli.js" } }, - "node_modules/ts-node/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "node_modules/ts-api-utils": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", + "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.3.1" + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" } }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "node_modules/ts-loader": { + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.2.tgz", + "integrity": "sha512-Qo4piXvOTWcMGIgRiuFa6nHNm+54HbYaZCKqc9eeZCLRy3XqafQgwX2F7mofrbJG3g7EEb+lkiR+z2Lic2s3Zw==", "dev": true, "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4", + "source-map": "^0.7.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" } }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "node_modules/ts-loader/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" + "engines": { + "node": ">= 8" } }, "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "peer": true }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "node_modules/tsx": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz", + "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==", "dev": true, + "license": "MIT", "dependencies": { - "tslib": "^1.8.1" + "esbuild": "~0.27.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" }, "engines": { - "node": ">= 6" + "node": ">=18.0.0" }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + "optionalDependencies": { + "fsevents": "~2.3.3" } }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, "node_modules/tunnel": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", @@ -10152,172 +9935,316 @@ "node": ">= 0.8.0" } }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "node_modules/typed-rest-client": { + "version": "1.8.11", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.11.tgz", + "integrity": "sha512-5UvfMpd1oelmUPRbbaVnq+rHP7ng2cE4qoQkQeAqxRL6PklkxsM0g32/HL0yfvruK6ojQ5x8EE+HF4YV6DtuCA==", + "dev": true, + "dependencies": { + "qs": "^6.9.1", + "tunnel": "0.0.6", + "underscore": "^1.12.1" + } + }, + "node_modules/typed-rest-client/node_modules/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", "dev": true, + "dependencies": { + "side-channel": "^1.1.0" + }, "engines": { - "node": ">=10" + "node": ">=0.6" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/typed-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", - "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.53.1.tgz", + "integrity": "sha512-gB+EVQfP5RDElh9ittfXlhZJdjSU4jUSTyE2+ia8CYyNvet4ElfaLlAIqDvQV9JPknKx0jQH1racTYe/4LaLSg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.14" + "@typescript-eslint/eslint-plugin": "8.53.1", + "@typescript-eslint/parser": "8.53.1", + "@typescript-eslint/typescript-estree": "8.53.1", + "@typescript-eslint/utils": "8.53.1" }, "engines": { - "node": ">= 0.4" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/typed-array-byte-length": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", - "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.53.1.tgz", + "integrity": "sha512-cFYYFZ+oQFi6hUnBTbLRXfTJiaQtYE3t4O692agbBl+2Zy+eqSKWtPjhPXJu1G7j4RLjKgeJPDdq3EqOwmX5Ag==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.14" + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.53.1", + "@typescript-eslint/type-utils": "8.53.1", + "@typescript-eslint/utils": "8.53.1", + "@typescript-eslint/visitor-keys": "8.53.1", + "ignore": "^7.0.5", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.4.0" }, "engines": { - "node": ">= 0.4" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.53.1", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", - "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser": { + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.53.1.tgz", + "integrity": "sha512-nm3cvFN9SqZGXjmw5bZ6cGmvJSyJPn0wU9gHAZZHDnZl2wF9PhHv78Xf06E0MaNk4zLVHL8hb2/c32XvyJOLQg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.15", - "reflect.getprototypeof": "^1.0.9" + "@typescript-eslint/scope-manager": "8.53.1", + "@typescript-eslint/types": "8.53.1", + "@typescript-eslint/typescript-estree": "8.53.1", + "@typescript-eslint/visitor-keys": "8.53.1", + "debug": "^4.4.3" }, "engines": { - "node": ">= 0.4" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/typed-array-length": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", - "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "node_modules/typescript-eslint/node_modules/@typescript-eslint/scope-manager": { + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.53.1.tgz", + "integrity": "sha512-Lu23yw1uJMFY8cUeq7JlrizAgeQvWugNQzJp8C3x8Eo5Jw5Q2ykMdiiTB9vBVOOUBysMzmRRmUfwFrZuI2C4SQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0", - "reflect.getprototypeof": "^1.0.6" + "@typescript-eslint/types": "8.53.1", + "@typescript-eslint/visitor-keys": "8.53.1" }, "engines": { - "node": ">= 0.4" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/typed-rest-client": { - "version": "1.8.11", - "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.11.tgz", - "integrity": "sha512-5UvfMpd1oelmUPRbbaVnq+rHP7ng2cE4qoQkQeAqxRL6PklkxsM0g32/HL0yfvruK6ojQ5x8EE+HF4YV6DtuCA==", + "node_modules/typescript-eslint/node_modules/@typescript-eslint/type-utils": { + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.53.1.tgz", + "integrity": "sha512-MOrdtNvyhy0rHyv0ENzub1d4wQYKb2NmIqG7qEqPWFW7Mpy2jzFC3pQ2yKDvirZB7jypm5uGjF2Qqs6OIqu47w==", "dev": true, + "license": "MIT", "dependencies": { - "qs": "^6.9.1", - "tunnel": "0.0.6", - "underscore": "^1.12.1" + "@typescript-eslint/types": "8.53.1", + "@typescript-eslint/typescript-estree": "8.53.1", + "@typescript-eslint/utils": "8.53.1", + "debug": "^4.4.3", + "ts-api-utils": "^2.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/typed-rest-client/node_modules/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "node_modules/typescript-eslint/node_modules/@typescript-eslint/types": { + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.1.tgz", + "integrity": "sha512-jr/swrr2aRmUAUjW5/zQHbMaui//vQlsZcJKijZf3M26bnmLj8LyZUpj8/Rd6uzaek06OWsqdofN/Thenm5O8A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/typescript-eslint/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.53.1.tgz", + "integrity": "sha512-RGlVipGhQAG4GxV1s34O91cxQ/vWiHJTDHbXRr0li2q/BGg3RR/7NM8QDWgkEgrwQYCvmJV9ichIwyoKCQ+DTg==", "dev": true, + "license": "MIT", "dependencies": { - "side-channel": "^1.1.0" + "@typescript-eslint/project-service": "8.53.1", + "@typescript-eslint/tsconfig-utils": "8.53.1", + "@typescript-eslint/types": "8.53.1", + "@typescript-eslint/visitor-keys": "8.53.1", + "debug": "^4.4.3", + "minimatch": "^9.0.5", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.4.0" }, "engines": { - "node": ">=0.6" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils": { + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.53.1.tgz", + "integrity": "sha512-c4bMvGVWW4hv6JmDUEG7fSYlWOl3II2I4ylt0NM+seinYQlZMQIaKaXIIVJWt9Ofh6whrpM+EdDQXKXjNovvrg==", + "dev": true, + "license": "MIT", "dependencies": { - "is-typedarray": "^1.0.0" + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.53.1", + "@typescript-eslint/types": "8.53.1", + "@typescript-eslint/typescript-estree": "8.53.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/typescript": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", - "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", + "node_modules/typescript-eslint/node_modules/@typescript-eslint/visitor-keys": { + "version": "8.53.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.53.1.tgz", + "integrity": "sha512-oy+wV7xDKFPRyNggmXuZQSBzvoLnpmJs+GhzRhPjrxl2b/jIlyjVokzm47CZCDUdXKr2zd7ZLodPfOBpOPyPlg==", "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.53.1", + "eslint-visitor-keys": "^4.2.1" }, "engines": { - "node": ">=14.17" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true + "node_modules/typescript-eslint/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/typescript-eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/typescript-eslint/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } }, - "node_modules/unbox-primitive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", - "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "node_modules/typescript-eslint/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { - "call-bound": "^1.0.3", - "has-bigints": "^1.0.2", - "has-symbols": "^1.1.0", - "which-boxed-primitive": "^1.1.1" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", "dev": true, - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, "node_modules/underscore": { "version": "1.13.7", @@ -10325,39 +10252,6 @@ "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", "dev": true }, - "node_modules/undertaker": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-2.0.0.tgz", - "integrity": "sha512-tO/bf30wBbTsJ7go80j0RzA2rcwX6o7XPBpeFcb+jzoeb4pfMM2zUeSDIkY1AWqeZabWxaQZ/h8N9t35QKDLPQ==", - "dev": true, - "dependencies": { - "bach": "^2.0.1", - "fast-levenshtein": "^3.0.0", - "last-run": "^2.0.0", - "undertaker-registry": "^2.0.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/undertaker-registry": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-2.0.0.tgz", - "integrity": "sha512-+hhVICbnp+rlzZMgxXenpvTxpuvA67Bfgtt+O9WOE5jo7w/dyiF1VmoZVIHvP2EkUjsyKyTwYKlLhA+j47m1Ew==", - "dev": true, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/undertaker/node_modules/fast-levenshtein": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz", - "integrity": "sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==", - "dev": true, - "dependencies": { - "fastest-levenshtein": "^1.0.7" - } - }, "node_modules/undici": { "version": "6.21.3", "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.3.tgz", @@ -10368,6 +10262,13 @@ "node": ">=18.17" } }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "devOptional": true, + "license": "MIT" + }, "node_modules/unicorn-magic": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", @@ -10384,7 +10285,8 @@ "node_modules/universal-user-agent": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", - "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==" + "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", + "license": "ISC" }, "node_modules/universalify": { "version": "0.1.2", @@ -10478,6 +10380,7 @@ "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", "hasInstallScript": true, + "peer": true, "dependencies": { "node-gyp-build": "^4.3.0" }, @@ -10504,195 +10407,43 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, - "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "node_modules/v8flags": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.1.tgz", - "integrity": "sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==", - "dev": true, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/value-or-function": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-4.0.0.tgz", - "integrity": "sha512-aeVK81SIuT6aMJfNo9Vte8Dw0/FZINGBV8BfCraGtqVxIeLAEhJyoWs8SmvRVmXfGss2PmmOwZCuBPbZR+IYWg==", - "dev": true, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/vinyl-contents": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/vinyl-contents/-/vinyl-contents-2.0.0.tgz", - "integrity": "sha512-cHq6NnGyi2pZ7xwdHSW1v4Jfnho4TEGtxZHw01cmnc8+i7jgR6bRnED/LbrKan/Q7CvVLbnvA5OepnhbpjBZ5Q==", - "dev": true, - "dependencies": { - "bl": "^5.0.0", - "vinyl": "^3.0.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/vinyl-contents/node_modules/replace-ext": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", - "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/vinyl-contents/node_modules/vinyl": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz", - "integrity": "sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==", - "dev": true, - "dependencies": { - "clone": "^2.1.2", - "clone-stats": "^1.0.0", - "remove-trailing-separator": "^1.1.0", - "replace-ext": "^2.0.0", - "teex": "^1.0.1" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/vinyl-fs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-4.0.0.tgz", - "integrity": "sha512-7GbgBnYfaquMk3Qu9g22x000vbYkOex32930rBnc3qByw6HfMEAoELjCjoJv4HuEQxHAurT+nvMHm6MnJllFLw==", - "dev": true, - "dependencies": { - "fs-mkdirp-stream": "^2.0.1", - "glob-stream": "^8.0.0", - "graceful-fs": "^4.2.11", - "iconv-lite": "^0.6.3", - "is-valid-glob": "^1.0.0", - "lead": "^4.0.0", - "normalize-path": "3.0.0", - "resolve-options": "^2.0.0", - "stream-composer": "^1.0.2", - "streamx": "^2.14.0", - "to-through": "^3.0.0", - "value-or-function": "^4.0.0", - "vinyl": "^3.0.0", - "vinyl-sourcemap": "^2.0.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/vinyl-fs/node_modules/replace-ext": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", - "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/vinyl-fs/node_modules/vinyl": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz", - "integrity": "sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==", + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, + "license": "ISC", "dependencies": { - "clone": "^2.1.2", - "clone-stats": "^1.0.0", - "remove-trailing-separator": "^1.1.0", - "replace-ext": "^2.0.0", - "teex": "^1.0.1" + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" }, "engines": { - "node": ">=10.13.0" + "node": ">=10.12.0" } }, - "node_modules/vinyl-sourcemap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-2.0.0.tgz", - "integrity": "sha512-BAEvWxbBUXvlNoFQVFVHpybBbjW1r03WhohJzJDSfgrrK5xVYIDTan6xN14DlyImShgDRv2gl9qhM6irVMsV0Q==", + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "convert-source-map": "^2.0.0", - "graceful-fs": "^4.2.10", - "now-and-later": "^3.0.0", - "streamx": "^2.12.5", - "vinyl": "^3.0.0", - "vinyl-contents": "^2.0.0" - }, - "engines": { - "node": ">=10.13.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, - "node_modules/vinyl-sourcemap/node_modules/replace-ext": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", - "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", + "node_modules/version-range": { + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/version-range/-/version-range-4.15.0.tgz", + "integrity": "sha512-Ck0EJbAGxHwprkzFO966t4/5QkRuzh+/I1RxhLgUKKwEn+Cd8NwM60mE3AqBZg5gYODoXW0EFsQvbZjRlvdqbg==", "dev": true, + "license": "Artistic-2.0", "engines": { - "node": ">= 10" - } - }, - "node_modules/vinyl-sourcemap/node_modules/vinyl": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz", - "integrity": "sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==", - "dev": true, - "dependencies": { - "clone": "^2.1.2", - "clone-stats": "^1.0.0", - "remove-trailing-separator": "^1.1.0", - "replace-ext": "^2.0.0", - "teex": "^1.0.1" + "node": ">=4" }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/vscode-azurekudu": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/vscode-azurekudu/-/vscode-azurekudu-0.2.3.tgz", - "integrity": "sha512-Th6BEdnATFwxeAXdo6YPLcinQfbVigUglwyDaiCvCxjvTHlx5NCyCmtykh9F/NldIw0EZ3ipFZGiRodbUWBMOw==", - "dev": true, - "dependencies": { - "@azure/ms-rest-js": "^2.0.4", - "tslib": "^1.10.0" - } - }, - "node_modules/vscode-azurekudu/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/vscode-jsonrpc": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.1.tgz", - "integrity": "sha512-kdjOSJ2lLIn7r1rtrMbbNCHjyMPfRnowdKjBQ+mGq6NAW5QY2bEZC/khaC5OR8svbbjvLEaIXkOq45e2X9BIbQ==", - "dev": true, - "engines": { - "node": ">=14.0.0" + "funding": { + "url": "https://bevry.me/fund" } }, "node_modules/vscode-nls": { @@ -10704,6 +10455,7 @@ "version": "0.1.84", "resolved": "https://registry.npmjs.org/vscode-tas-client/-/vscode-tas-client-0.1.84.tgz", "integrity": "sha512-rUTrUopV+70hvx1hW5ebdw1nd6djxubkLvVxjGdyD/r5v/wcVF41LIfiAtbm5qLZDtQdsMH1IaCuDoluoIa88w==", + "license": "MIT", "dependencies": { "tas-client": "0.2.33" }, @@ -10739,6 +10491,7 @@ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.98.0.tgz", "integrity": "sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA==", "dev": true, + "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.6", @@ -10780,97 +10533,6 @@ } } }, - "node_modules/webpack-cli": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", - "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", - "dev": true, - "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.2.0", - "@webpack-cli/info": "^1.5.0", - "@webpack-cli/serve": "^1.7.0", - "colorette": "^2.0.14", - "commander": "^7.0.0", - "cross-spawn": "^7.0.3", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "webpack-merge": "^5.7.3" - }, - "bin": { - "webpack-cli": "bin/cli.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "4.x.x || 5.x.x" - }, - "peerDependenciesMeta": { - "@webpack-cli/generators": { - "optional": true - }, - "@webpack-cli/migrate": { - "optional": true - }, - "webpack-bundle-analyzer": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/webpack-cli/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/webpack-cli/node_modules/interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/webpack-cli/node_modules/rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", - "dev": true, - "dependencies": { - "resolve": "^1.9.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", - "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/webpack/node_modules/webpack-sources": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", @@ -10954,76 +10616,6 @@ "node": ">= 8" } }, - "node_modules/which-boxed-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", - "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", - "dev": true, - "dependencies": { - "is-bigint": "^1.1.0", - "is-boolean-object": "^1.2.1", - "is-number-object": "^1.1.1", - "is-string": "^1.1.1", - "is-symbol": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", - "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", - "dev": true, - "dependencies": { - "call-bound": "^1.0.2", - "function.prototype.name": "^1.1.6", - "has-tostringtag": "^1.0.2", - "is-async-function": "^2.0.0", - "is-date-object": "^1.1.0", - "is-finalizationregistry": "^1.1.0", - "is-generator-function": "^1.0.10", - "is-regex": "^1.2.1", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.1.0", - "which-collection": "^1.0.2", - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "dev": true, - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/which-typed-array": { "version": "1.1.19", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", @@ -11045,12 +10637,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wildcard": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true - }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -11083,39 +10669,25 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -11267,15 +10839,6 @@ "buffer-crc32": "~0.2.3" } }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index 1e812a3fe..450d451c4 100644 --- a/package.json +++ b/package.json @@ -1437,52 +1437,40 @@ ] }, "scripts": { - "vscode:prepublish": "npm run webpack-prod", - "build": "tsc", + "vscode:prepublish": "npm run build", + "build": "npm run build:esbuild & npm run build:check", + "build:esbuild": "node esbuild.mjs", + "build:check": "tsc --noEmit", + "check": "tsc --noEmit", "compile": "tsc -watch", - "cleanReadme": "gulp cleanReadme", + "version": "tsc --version", + "cleanReadme": "node scripts/cleanReadme.mjs", "package": "vsce package --githubBranch main", - "lint": "eslint --ext .ts .", - "lint-fix": "eslint --ext .ts . --fix", - "pretest": "npm run webpack-prod && gulp preTest", - "test": "node ./out/test/runTest.js", - "webpack": "npm run build && gulp webpack-dev", - "webpack-prod": "npm run build && gulp webpack-prod", - "webpack-profile": "webpack --profile --json --mode production > webpack-stats.json && echo Use http://webpack.github.io/analyse to analyze the stats", + "lint": "eslint --max-warnings 0", + "lint-fix": "eslint --max-warnings 0 --fix", + "pretest": "npm run build && node scripts/pretest.mjs", + "test": "vscode-test", "all": "npm i && npm run lint && npm test" }, "devDependencies": { "@azure/arm-msi": "^2.1.0", "@azure/arm-resources": "^5.2.0", - "@microsoft/eslint-config-azuretools": "^0.2.2", "@microsoft/vscode-azext-dev": "^2.1.2", + "@microsoft/vscode-azext-eng": "^1.0.0-alpha.10", "@types/fs-extra": "^8.1.0", - "@types/gulp": "^4.0.10", - "@types/mocha": "^8.2.2", - "@types/node": "^16.18.36", + "@types/node": "^22.0.0", "@types/ps-tree": "^1.1.0", "@types/semver": "^5.5.0", "@types/vscode": "^1.104.0", "@types/websocket": "^1.0.0", "@types/xml2js": "^0.4.5", "@types/xregexp": "4.3.0", - "@typescript-eslint/eslint-plugin": "^5.59.11", - "@vscode/test-electron": "^2.3.8", - "@vscode/vsce": "^2.19.0", - "copy-webpack-plugin": "^13.0.1", - "eslint": "^8.42.0", - "eslint-plugin-import": "^2.27.5", - "gulp": "^5.0.0", - "husky": "^7.0.2", - "mocha": "^10.0.0", - "mocha-junit-reporter": "^2.0.0", - "mocha-multi-reporters": "^1.5.1", - "ts-node": "^10.9.1", - "typescript": "^5.9.2", - "vscode-azurekudu": "^0.2.0", - "vscode-jsonrpc": "^8.2.1", - "webpack": "^5.96.1", - "webpack-cli": "^4.6.0" + "@vscode/test-cli": "*", + "@vscode/test-electron": "*", + "@vscode/vsce": "*", + "esbuild": "*", + "esbuild-plugin-copy": "*", + "husky": "^7.0.2" }, "dependencies": { "@azure/arm-appinsights": "^5.0.0-alpha.20230530.1", @@ -1497,10 +1485,10 @@ "@azure/core-client": "^1.7.3", "@azure/core-rest-pipeline": "^1.11.0", "@azure/storage-blob": "^12.5.0", - "@microsoft/vscode-azext-azureappservice": "^3.6.10", - "@microsoft/vscode-azext-azureappsettings": "^0.2.11", - "@microsoft/vscode-azext-azureutils": "^3.5.2", - "@microsoft/vscode-azext-utils": "^3.5.0", + "@microsoft/vscode-azext-azureappservice": "^4.0.1", + "@microsoft/vscode-azext-azureappsettings": "^1.0.0", + "@microsoft/vscode-azext-azureutils": "^4.0.1", + "@microsoft/vscode-azext-utils": "^4.0.3", "@microsoft/vscode-azureresources-api": "^2.6.2", "@microsoft/vscode-container-client": "^0.3.0", "cross-fetch": "^4.0.0", @@ -1514,6 +1502,7 @@ "ps-tree": "^1.1.1", "semver": "^7.7.3", "vscode-nls": "^4.1.1", + "vscode-uri": "^3.1.0", "websocket": "^1.0.29", "xml2js": "^0.5.0", "xregexp": "4.3.0" diff --git a/scripts/cleanReadme.mjs b/scripts/cleanReadme.mjs new file mode 100644 index 000000000..0c8276e71 --- /dev/null +++ b/scripts/cleanReadme.mjs @@ -0,0 +1,15 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import fs from 'fs/promises'; +import path from 'path'; + +const readmePath = path.join(process.cwd(), 'README.md'); +const contents = await fs.readFile(readmePath, 'utf8'); +const updated = contents.replace(/.*?/gis, ''); + +if (updated !== contents) { + await fs.writeFile(readmePath, updated, 'utf8'); +} diff --git a/scripts/pretest.mjs b/scripts/pretest.mjs new file mode 100644 index 000000000..c8a4e9e9f --- /dev/null +++ b/scripts/pretest.mjs @@ -0,0 +1,101 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { exec } from 'child_process'; +import extract from 'extract-zip'; +import fse from 'fs-extra'; +import fs from 'fs/promises'; +import os from 'os'; +import path from 'path'; +import { promisify } from 'util'; + +const execAsync = promisify(exec); + +const funcDir = path.join(os.homedir(), 'tools', 'func'); +const funcZip = 'funccli.zip'; +const funcExecutable = process.platform === 'win32' ? 'func.exe' : 'func'; + +function matchesCliFeedOS(platform) { + switch (process.platform) { + case 'win32': + return platform === 'Windows'; + case 'darwin': + return platform === 'MacOS'; + default: + return platform === 'Linux'; + } +} + +async function getFuncLink() { + const response = await fetch('https://aka.ms/V00v5v'); + if (!response.ok) { + throw new Error(`Failed to fetch func CLI feed: ${response.status} ${response.statusText}`); + } + + const cliFeed = await response.json(); + const version = cliFeed.tags['v4-prerelease'].release; + console.log(`Func cli feed version: ${version}`); + + const cliRelease = cliFeed.releases[version].coreTools.find((rel) => { + return rel.Architecture === 'x64' && ( + matchesCliFeedOS(rel.OperatingSystem) || + matchesCliFeedOS(rel.OS) + ); + }); + + if (!cliRelease?.downloadLink) { + throw new Error('Failed to resolve func CLI download link from feed.'); + } + + console.log(`Func downloadLink: ${cliRelease.downloadLink}`); + return cliRelease.downloadLink; +} + +async function download(url, targetPath) { + const response = await fetch(url); + if (!response.ok) { + throw new Error(`Request for func CLI responded with status code: ${response.status}`); + } + + await fse.ensureFile(targetPath); + const arrayBuffer = await response.arrayBuffer(); + await fs.writeFile(targetPath, Buffer.from(arrayBuffer)); +} + +async function downloadFuncCli(downloadLink) { + if (fse.pathExistsSync(funcDir)) { + console.log('Removing old install of func.'); + fse.removeSync(funcDir); + } + + const funcZipPath = path.join(funcDir, funcZip); + await download(downloadLink, funcZipPath); + console.log('Successfully downloaded the func CLI zip at ' + funcZipPath); + return funcZipPath; +} + +async function extractFuncCli(funcZipPath) { + try { + await extract(funcZipPath, { dir: funcDir }); + console.log('Successfully extracted func CLI.'); + + console.log('Setting executable permissions...'); + await fse.chmod(path.join(funcDir, funcExecutable), 0o755); + console.log('Successfully set executable permissions.'); + } finally { + await fse.remove(funcZipPath); + } +} + +async function printFuncVersion() { + const funcExecutablePath = path.join(funcDir, funcExecutable); + const { stdout } = await execAsync(`"${funcExecutablePath}" --version`); + console.log(`Verified func CLI version:\n${stdout}`); +} + +const downloadLink = await getFuncLink(); +const funcZipPath = await downloadFuncCli(downloadLink); +await extractFuncCli(funcZipPath); +await printFuncVersion(); diff --git a/src/FuncVersion.ts b/src/FuncVersion.ts index 2a441ae9d..5f5ef3e06 100644 --- a/src/FuncVersion.ts +++ b/src/FuncVersion.ts @@ -34,7 +34,7 @@ export async function promptForFuncVersion(context: IActionContext, message?: st picks.push(learnMoreQp); const options: IAzureQuickPickOptions = { placeHolder: message || localize('selectVersion', 'Select a version'), stepName: 'funcVersion', suppressPersistence: true }; - // eslint-disable-next-line no-constant-condition + while (true) { const version: FuncVersion | undefined = (await context.ui.showQuickPick(picks, options)).data; if (version === undefined) { diff --git a/src/FunctionAppResolver.ts b/src/FunctionAppResolver.ts index c1273595a..55ad37120 100644 --- a/src/FunctionAppResolver.ts +++ b/src/FunctionAppResolver.ts @@ -1,3 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + import { type ResourceGraphClient } from "@azure/arm-resourcegraph"; import { createWebSiteClient } from "@microsoft/vscode-azext-azureappservice"; import { getResourceGroupFromId } from "@microsoft/vscode-azext-azureutils"; @@ -69,7 +74,7 @@ export class FunctionAppResolver implements AppResourceResolver { resourceGroup: data.resourceGroup, status: data.properties?.state, location: data.location - } + }; resolver.siteCache.set(dataModel.id.toLowerCase(), dataModel); }); diff --git a/src/LocalResourceProvider.ts b/src/LocalResourceProvider.ts index b11572633..4cdf9dbc3 100644 --- a/src/LocalResourceProvider.ts +++ b/src/LocalResourceProvider.ts @@ -2,6 +2,7 @@ * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ + import { GenericTreeItem, type AzExtParentTreeItem, type AzExtTreeItem } from "@microsoft/vscode-azext-utils"; import { type WorkspaceResourceProvider } from "@microsoft/vscode-azext-utils/hostapi"; import { Disposable } from "vscode"; diff --git a/src/commands/addBinding/BindingListStep.ts b/src/commands/addBinding/BindingListStep.ts index bdb0c42d4..7a2a520b8 100644 --- a/src/commands/addBinding/BindingListStep.ts +++ b/src/commands/addBinding/BindingListStep.ts @@ -26,7 +26,7 @@ export class BindingListStep extends AzureWizardPromptStep | undefined> { const binding: IBindingTemplate | undefined = context.bindingTemplate; if (binding) { diff --git a/src/commands/addBinding/settingSteps/EnumPromptStep.ts b/src/commands/addBinding/settingSteps/EnumPromptStep.ts index b1af7fa78..fbbe420a9 100644 --- a/src/commands/addBinding/settingSteps/EnumPromptStep.ts +++ b/src/commands/addBinding/settingSteps/EnumPromptStep.ts @@ -11,7 +11,7 @@ import { BindingSettingStepBase } from "./BindingSettingStepBase"; export class EnumPromptStep extends BindingSettingStepBase { // not used by v2 schema so enforce IBindingSetting - protected readonly _setting: IBindingSetting; + declare protected readonly _setting: IBindingSetting; public async promptCore(context: IBindingWizardContext): Promise { const picks: IAzureQuickPickItem[] = this._setting.enums.map(e => { return { data: e.value, label: e.displayName }; }); diff --git a/src/commands/addBinding/settingSteps/LocalAppSettingListStep.ts b/src/commands/addBinding/settingSteps/LocalAppSettingListStep.ts index 3e5812ca7..1329415c7 100644 --- a/src/commands/addBinding/settingSteps/LocalAppSettingListStep.ts +++ b/src/commands/addBinding/settingSteps/LocalAppSettingListStep.ts @@ -28,8 +28,8 @@ import { ServiceBusConnectionCreateStep } from './serviceBus/ServiceBusConnectio import { ServiceBusListStep } from './serviceBus/ServiceBusListStep'; -const showHiddenValuesItem = { label: localize('showHiddenValues', '$(eye) Show hidden values'), data: 'hiddenValues' } -const hideHiddenValuesItem = { label: localize('hideHiddenValues', '$(eye-closed) Hide hidden values'), data: 'hiddenValues' } +const showHiddenValuesItem = { label: localize('showHiddenValues', '$(eye) Show hidden values'), data: 'hiddenValues' }; +const hideHiddenValuesItem = { label: localize('hideHiddenValues', '$(eye-closed) Hide hidden values'), data: 'hiddenValues' }; export class LocalAppSettingListStep extends BindingSettingStepBase { private _showHiddenValues: boolean = false; public async promptCore(context: IFunctionWizardContext): Promise { @@ -53,6 +53,7 @@ export class LocalAppSettingListStep extends BindingSettingStepBase { } else { return result; } + // eslint-disable-next-line no-constant-condition } while (true); } diff --git a/src/commands/addBinding/settingSteps/StringPromptStep.ts b/src/commands/addBinding/settingSteps/StringPromptStep.ts index bc66874ed..0f411a4e7 100644 --- a/src/commands/addBinding/settingSteps/StringPromptStep.ts +++ b/src/commands/addBinding/settingSteps/StringPromptStep.ts @@ -11,7 +11,7 @@ import { BindingSettingStepBase } from "./BindingSettingStepBase"; export class StringPromptStep extends BindingSettingStepBase { // not used by v2 schema so enforce IBindingSetting - protected readonly _setting: IBindingSetting; + declare protected readonly _setting: IBindingSetting; public async promptCore(context: IBindingWizardContext): Promise { return await context.ui.showInputBox({ placeHolder: this._setting.label, @@ -21,12 +21,12 @@ export class StringPromptStep extends BindingSettingStepBase { }); } - // eslint-disable-next-line @typescript-eslint/require-await + public async getDefaultValue(_wizardContext: IBindingWizardContext): Promise { return this._setting === undefined ? undefined : String(this._setting.defaultValue); } - // eslint-disable-next-line @typescript-eslint/require-await + public async validateInput(_wizardContext: IBindingWizardContext, val: string | undefined): Promise { return this._setting.validateSetting(val); } diff --git a/src/commands/addBinding/settingSteps/eventHub/EventHubCreateStep.ts b/src/commands/addBinding/settingSteps/eventHub/EventHubCreateStep.ts index e546dc2bc..76a4221bc 100644 --- a/src/commands/addBinding/settingSteps/eventHub/EventHubCreateStep.ts +++ b/src/commands/addBinding/settingSteps/eventHub/EventHubCreateStep.ts @@ -19,7 +19,7 @@ export class EventHubCreateStep extends AzureWizardExecuteStep { return { data: eb, label: nonNullProp(eb, 'name') } })) + picks.push(...eventHubs.map((eb: Eventhub) => { return { data: eb, label: nonNullProp(eb, 'name') }; })); const result: Eventhub | undefined = (await context.ui.showQuickPick(picks, { placeHolder })).data; diff --git a/src/commands/addMIConnections/ConnectionsListStep.ts b/src/commands/addMIConnections/ConnectionsListStep.ts index 2f4a8bfa7..f9b364772 100644 --- a/src/commands/addMIConnections/ConnectionsListStep.ts +++ b/src/commands/addMIConnections/ConnectionsListStep.ts @@ -46,7 +46,7 @@ export class ConnectionsListStep extends AzureWizardPromptStep[]> { - return context.functionapp ? this.getRemoteQuickPicks(context) : this.getLocalQuickPicks(context) + return context.functionapp ? this.getRemoteQuickPicks(context) : this.getLocalQuickPicks(context); } private async getLocalQuickPicks(context: AddMIConnectionsContext, workspaceFolder?: vscode.WorkspaceFolder): Promise[]> { diff --git a/src/commands/addMIConnections/LocalSettingsAddStep.ts b/src/commands/addMIConnections/LocalSettingsAddStep.ts index 74a7ff6ce..5426ca39d 100644 --- a/src/commands/addMIConnections/LocalSettingsAddStep.ts +++ b/src/commands/addMIConnections/LocalSettingsAddStep.ts @@ -41,6 +41,6 @@ export class LocalSettingsAddStep extends AzureWizardExecuteStep[] = [new ConnectionsListStep()]; const executeSteps: AzureWizardExecuteStep[] = [new SettingsAddBaseStep(), new LocalSettingsAddStep()]; - const wizard: AzureWizard = new AzureWizard(wizardContext, { + const wizard = new AzureWizard>(wizardContext, { title, promptSteps, executeSteps diff --git a/src/commands/addMIConnections/addRemoteMIConnections.ts b/src/commands/addMIConnections/addRemoteMIConnections.ts index b022961b3..baf4d8879 100644 --- a/src/commands/addMIConnections/addRemoteMIConnections.ts +++ b/src/commands/addMIConnections/addRemoteMIConnections.ts @@ -28,7 +28,7 @@ export async function addRemoteMIConnections(context: AddMIConnectionsContext, n connections.push({ name: node.id, value: node.value }); node = node.parent; } else { - context.functionapp = node?.parent as SlotTreeItem + context.functionapp = node?.parent as SlotTreeItem; } await node.runWithTemporaryDescription(context, localize('adding', 'Adding...'), async () => { await addRemoteMIConnectionsInternal(context, connections); @@ -58,9 +58,9 @@ export async function addRemoteMIConnectionsInternal(context: AddMIConnectionsCo } promptSteps.push(new ConnectionsListStep(), new UserAssignedIdentityListStep()); - executeSteps.push(new SettingsAddBaseStep(), new RemoteSettingsAddStep(), new RoleAssignmentExecuteStep(() => wizardContext.roles)) + executeSteps.push(new SettingsAddBaseStep(), new RemoteSettingsAddStep(), new RoleAssignmentExecuteStep(() => wizardContext.roles)); - const wizard: AzureWizard = new AzureWizard(wizardContext, { + const wizard = new AzureWizard(wizardContext, { title, promptSteps, executeSteps diff --git a/src/commands/api/downloadAppSettingsFromApi.ts b/src/commands/api/downloadAppSettingsFromApi.ts index ec91d7092..2c4c78bdd 100644 --- a/src/commands/api/downloadAppSettingsFromApi.ts +++ b/src/commands/api/downloadAppSettingsFromApi.ts @@ -2,6 +2,7 @@ * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ + import { callWithTelemetryAndErrorHandling, type IActionContext } from "@microsoft/vscode-azext-utils"; import { type IAppSettingsClient } from "../../vscode-azurefunctions.api"; import { downloadAppSettingsInternal } from "../appSettings/downloadAppSettings"; diff --git a/src/commands/api/uploadAppSettingsFromApi.ts b/src/commands/api/uploadAppSettingsFromApi.ts index bfdc33753..ed0ec1582 100644 --- a/src/commands/api/uploadAppSettingsFromApi.ts +++ b/src/commands/api/uploadAppSettingsFromApi.ts @@ -2,6 +2,7 @@ * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ + import { callWithTelemetryAndErrorHandling, type IActionContext } from "@microsoft/vscode-azext-utils"; import { type IAppSettingsClient } from "../../vscode-azurefunctions.api"; import { uploadAppSettingsInternal } from "../appSettings/uploadAppSettings"; diff --git a/src/commands/appSettings/connectionSettings/azureWebJobsStorage/getStorageConnectionString.ts b/src/commands/appSettings/connectionSettings/azureWebJobsStorage/getStorageConnectionString.ts index dd8ac94a0..eb60f21fe 100644 --- a/src/commands/appSettings/connectionSettings/azureWebJobsStorage/getStorageConnectionString.ts +++ b/src/commands/appSettings/connectionSettings/azureWebJobsStorage/getStorageConnectionString.ts @@ -4,10 +4,9 @@ *--------------------------------------------------------------------------------------------*/ import { type StorageAccount, type StorageAccountListKeysResult, type StorageManagementClient } from "@azure/arm-storage"; -import { getResourceGroupFromId, type IStorageAccountWizardContext } from "@microsoft/vscode-azext-azureutils"; +import { createStorageClient, getResourceGroupFromId, type IStorageAccountWizardContext } from "@microsoft/vscode-azext-azureutils"; import { nonNullProp, nonNullValue, randomUtils } from "@microsoft/vscode-azext-utils"; import { localStorageEmulatorConnectionString } from "../../../../constants"; -import { createStorageClient } from "../../../../utils/azureClients"; export interface IResourceResult { name: string; @@ -19,7 +18,7 @@ export async function getStorageConnectionString(context: IStorageAccountWizardC return { name: randomUtils.getRandomHexString(6), connectionString: localStorageEmulatorConnectionString - } + }; } const client: StorageManagementClient = await createStorageClient(context); diff --git a/src/commands/appSettings/connectionSettings/durableTaskScheduler/custom/DTSConnectionCustomPromptStep.ts b/src/commands/appSettings/connectionSettings/durableTaskScheduler/custom/DTSConnectionCustomPromptStep.ts index 31ef4349c..aee686612 100644 --- a/src/commands/appSettings/connectionSettings/durableTaskScheduler/custom/DTSConnectionCustomPromptStep.ts +++ b/src/commands/appSettings/connectionSettings/durableTaskScheduler/custom/DTSConnectionCustomPromptStep.ts @@ -41,7 +41,7 @@ export class DTSConnectionCustomPromptStep = new AzureWizard(wizardContext, { + const wizard = new AzureWizard(wizardContext, { title: localize('prepareDTSConnection', 'Prepare durable task scheduler connections'), promptSteps: [ new DTSConnectionListStep(availableDeployConnectionTypes), diff --git a/src/commands/appSettings/connectionSettings/netherite/azure/EventHubsNamespaceAuthRuleNameStep.ts b/src/commands/appSettings/connectionSettings/netherite/azure/EventHubsNamespaceAuthRuleNameStep.ts index a5951e042..46d36e88a 100644 --- a/src/commands/appSettings/connectionSettings/netherite/azure/EventHubsNamespaceAuthRuleNameStep.ts +++ b/src/commands/appSettings/connectionSettings/netherite/azure/EventHubsNamespaceAuthRuleNameStep.ts @@ -27,7 +27,7 @@ export class EventHubsNamespaceAuthRuleNameStep this.validateInput(name), - })).trim() + })).trim(); } public shouldPrompt(context: T): boolean { diff --git a/src/commands/appSettings/connectionSettings/netherite/getNetheriteConnection.ts b/src/commands/appSettings/connectionSettings/netherite/getNetheriteConnection.ts index b025a9009..429b9e4ed 100644 --- a/src/commands/appSettings/connectionSettings/netherite/getNetheriteConnection.ts +++ b/src/commands/appSettings/connectionSettings/netherite/getNetheriteConnection.ts @@ -63,7 +63,7 @@ export async function getNetheriteConnectionIfNeeded(context: NetheriteConnectio LocationListStep.resetLocation(wizardContext); await LocationListStep.setAutoSelectLocation(wizardContext, site.location); - const wizard: AzureWizard = new AzureWizard(wizardContext, { + const wizard = new AzureWizard(wizardContext, { title: localize('prepareNetheriteConnection', 'Prepare Netherite deployment connections'), promptSteps: [new EventHubsConnectionListStep(availableDeployConnectionTypes)], showLoadingPrompt: true, diff --git a/src/commands/appSettings/connectionSettings/sqlDatabase/SqlConnectionListStep.ts b/src/commands/appSettings/connectionSettings/sqlDatabase/SqlConnectionListStep.ts index 6f170d178..6fd82c437 100644 --- a/src/commands/appSettings/connectionSettings/sqlDatabase/SqlConnectionListStep.ts +++ b/src/commands/appSettings/connectionSettings/sqlDatabase/SqlConnectionListStep.ts @@ -68,7 +68,7 @@ export class SqlConnectionListStep([SqlProvider]), new SqlDatabaseGetConnectionStep(), - ) + ); break; case ConnectionType.Custom: promptSteps.push(new SqlDbConnectionCustomPromptStep()); diff --git a/src/commands/appSettings/connectionSettings/sqlDatabase/getSQLConnection.ts b/src/commands/appSettings/connectionSettings/sqlDatabase/getSQLConnection.ts index 4c0c4b95c..0e697c7f7 100644 --- a/src/commands/appSettings/connectionSettings/sqlDatabase/getSQLConnection.ts +++ b/src/commands/appSettings/connectionSettings/sqlDatabase/getSQLConnection.ts @@ -51,7 +51,7 @@ export async function getSQLConnectionIfNeeded(context: SqlConnectionContext, ap LocationListStep.resetLocation(wizardContext); await LocationListStep.setAutoSelectLocation(wizardContext, site.location); - const wizard: AzureWizard = new AzureWizard(wizardContext, { + const wizard = new AzureWizard(wizardContext, { title: localize('prepareSqlDbConnection', 'Prepare SQL database deployment connection'), promptSteps: [new SqlConnectionListStep(availableDeployConnectionTypes)], showLoadingPrompt: true, diff --git a/src/commands/appSettings/localSettings/LocalSettingsClient.ts b/src/commands/appSettings/localSettings/LocalSettingsClient.ts index 2bedc5413..273c22e42 100644 --- a/src/commands/appSettings/localSettings/LocalSettingsClient.ts +++ b/src/commands/appSettings/localSettings/LocalSettingsClient.ts @@ -24,7 +24,7 @@ export class LocalSettingsClientProvider implements AppSettingsClientProvider { export class LocalSettingsClient implements IAppSettingsClient { public fullName: string; public isLinux: boolean; - private _workspaceFolder: vscode.WorkspaceFolder + private _workspaceFolder: vscode.WorkspaceFolder; constructor(workspaceFolder: vscode.WorkspaceFolder) { this.isLinux = false; diff --git a/src/commands/appSettings/localSettings/setAzureWebJobsStorage.ts b/src/commands/appSettings/localSettings/setAzureWebJobsStorage.ts index 074fbc29c..a6d62340c 100644 --- a/src/commands/appSettings/localSettings/setAzureWebJobsStorage.ts +++ b/src/commands/appSettings/localSettings/setAzureWebJobsStorage.ts @@ -25,7 +25,7 @@ export async function setAzureWebJobsStorage(context: IActionContext): Promise = new AzureWizard(wizardContext, { + const wizard = new AzureWizard(wizardContext, { title: localize('settingStorageTitle', 'Setting "{0}" in "{1}"', ConnectionKey.Storage, localSettingsFileName), promptSteps: [new StorageConnectionListStep(availableStorageConnections)], }); diff --git a/src/commands/createFunction/FunctionCreateStepBase.ts b/src/commands/createFunction/FunctionCreateStepBase.ts index 7fb850daf..7e277fadd 100644 --- a/src/commands/createFunction/FunctionCreateStepBase.ts +++ b/src/commands/createFunction/FunctionCreateStepBase.ts @@ -104,7 +104,7 @@ export abstract class FunctionCreateStepBase e hostJson.concurrency = { dynamicConcurrencyEnabled: true, snapshotPersistenceEnabled: true - } + }; await AzExtFsExtra.writeJSON(hostFilePath, hostJson); } else if (context.functionTemplate?.isMcpTrigger) { const hostJson = await AzExtFsExtra.readJSON(hostFilePath); @@ -121,7 +121,7 @@ export abstract class FunctionCreateStepBase e system: { webhookAuthorizationLevel: "System" } - } + }; } await AzExtFsExtra.writeJSON(hostFilePath, hostJson); } diff --git a/src/commands/createFunction/FunctionListStep.ts b/src/commands/createFunction/FunctionListStep.ts index 8f994f46b..879c4c9e3 100644 --- a/src/commands/createFunction/FunctionListStep.ts +++ b/src/commands/createFunction/FunctionListStep.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { AzureWizardPromptStep, type IActionContext, type IAzureQuickPickItem, type IAzureQuickPickOptions, type IWizardOptions } from '@microsoft/vscode-azext-utils'; -import * as escape from 'escape-string-regexp'; +import escape from 'escape-string-regexp'; import { type FuncVersion } from '../../FuncVersion'; import { JavaBuildTool, ProjectLanguage, TemplateFilter, templateFilterSetting } from '../../constants'; import { ext } from '../../extensionVariables'; @@ -94,7 +94,7 @@ export class FunctionListStep extends AzureWizardPromptStepundefined, onPicked: () => { /* do nothing */ } - }) + }); } else if (language === ProjectLanguage.CSharp || language === ProjectLanguage.Java || (language === ProjectLanguage.Python && !isPythonV2Plus(language, languageModel)) || diff --git a/src/commands/createFunction/FunctionSubWizard.ts b/src/commands/createFunction/FunctionSubWizard.ts index 87e7585e1..964b2169b 100644 --- a/src/commands/createFunction/FunctionSubWizard.ts +++ b/src/commands/createFunction/FunctionSubWizard.ts @@ -49,7 +49,7 @@ export class FunctionSubWizard { break; default: if (isNodeV4Plus(context)) { - promptSteps.push(new NodeV4FunctionNameStep()) + promptSteps.push(new NodeV4FunctionNameStep()); } else if (context.templateSchemaVersion === TemplateSchemaVersion.v1) { promptSteps.push(new ScriptFunctionNameStep()); } diff --git a/src/commands/createFunction/JobsListStep.ts b/src/commands/createFunction/JobsListStep.ts index a31debcab..641c5facb 100644 --- a/src/commands/createFunction/JobsListStep.ts +++ b/src/commands/createFunction/JobsListStep.ts @@ -57,7 +57,7 @@ export class JobsListStep extends AzureWizardPromptStep private async getPicks(context: FunctionV2WizardContext): Promise[]> { assertTemplateIsV2(context.functionTemplate); - let picks = context.functionTemplate.wizards.map((w) => { return { label: w.name, data: w } }); + let picks = context.functionTemplate.wizards.map((w) => { return { label: w.name, data: w }; }); // verify if this is a function project-- if so, remove the createNewApp job if (await isFunctionProject(context.projectPath)) { picks = picks.filter(p => p.data.type !== JobType.CreateNewApp); diff --git a/src/commands/createFunction/actionStepsV2/ActionSchemaStepBase.ts b/src/commands/createFunction/actionStepsV2/ActionSchemaStepBase.ts index 09f04b0fd..56a9912df 100644 --- a/src/commands/createFunction/actionStepsV2/ActionSchemaStepBase.ts +++ b/src/commands/createFunction/actionStepsV2/ActionSchemaStepBase.ts @@ -8,11 +8,12 @@ import { type ParsedAction } from "../../../templates/script/parseScriptTemplate import { type FunctionV2WizardContext } from "../IFunctionWizardContext"; export abstract class ActionSchemaStepBase extends AzureWizardExecuteStep { + public stepName: string; public constructor(readonly action: ParsedAction, readonly priority: number) { super(); + this.stepName = `${this.action.name}ActionSchemaStep`; } - public stepName = `${this.action.name}ActionSchemaStep`; public async execute(context: T): Promise { try { await this.executeAction(context); diff --git a/src/commands/createFunction/actionStepsV2/WriteToFileExecuteStep.ts b/src/commands/createFunction/actionStepsV2/WriteToFileExecuteStep.ts index 7d13b3300..30de8f36f 100644 --- a/src/commands/createFunction/actionStepsV2/WriteToFileExecuteStep.ts +++ b/src/commands/createFunction/actionStepsV2/WriteToFileExecuteStep.ts @@ -67,7 +67,7 @@ export class WriteToFileExecuteStep extends A system: { webhookAuthorizationLevel: "System" } - } + }; } await AzExtFsExtra.writeJSON(hostFilePath, hostJson); } diff --git a/src/commands/createFunction/ballerinaSteps/BallerinaFunctionCreateStep.ts b/src/commands/createFunction/ballerinaSteps/BallerinaFunctionCreateStep.ts index a8699d740..810cd8b33 100644 --- a/src/commands/createFunction/ballerinaSteps/BallerinaFunctionCreateStep.ts +++ b/src/commands/createFunction/ballerinaSteps/BallerinaFunctionCreateStep.ts @@ -23,7 +23,7 @@ export class BallerinaFunctionCreateStep extends FunctionCreateStepBase = new AzureWizard(wizardContext, { + const wizard = new AzureWizard(wizardContext, { promptSteps: [new FunctionListStep({ templateId: options.templateId, functionSettings: options.functionSettings, diff --git a/src/commands/createFunction/dotnetSteps/DotnetNamespaceStep.ts b/src/commands/createFunction/dotnetSteps/DotnetNamespaceStep.ts index 088d0f1be..8d10dd7ed 100644 --- a/src/commands/createFunction/dotnetSteps/DotnetNamespaceStep.ts +++ b/src/commands/createFunction/dotnetSteps/DotnetNamespaceStep.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { AzureWizardPromptStep } from '@microsoft/vscode-azext-utils'; -import * as XRegExp from 'xregexp'; +import XRegExp from 'xregexp'; import { localize } from "../../../localize"; import { type IDotnetFunctionWizardContext } from './IDotnetFunctionWizardContext'; diff --git a/src/commands/createFunction/durableSteps/DurableProjectConfigureStep.ts b/src/commands/createFunction/durableSteps/DurableProjectConfigureStep.ts index a85de9010..4dcf3cf7f 100644 --- a/src/commands/createFunction/durableSteps/DurableProjectConfigureStep.ts +++ b/src/commands/createFunction/durableSteps/DurableProjectConfigureStep.ts @@ -175,20 +175,26 @@ export class DurableProjectConfigureStep exten switch (context.newDurableStorageType) { case DurableBackend.Netherite: - isDotnetIsolated ? - packages.push({ name: durableUtils.dotnetIsolatedDfNetheritePackage }) : + if (isDotnetIsolated) { + packages.push({ name: durableUtils.dotnetIsolatedDfNetheritePackage }); + } else { packages.push({ name: durableUtils.dotnetInProcDfNetheritePackage }); + } break; case DurableBackend.DTS: // Todo: Remove prerelease flag once this functionality is out of preview - isDotnetIsolated ? - packages.push({ name: durableUtils.dotnetIsolatedDTSPackage, prerelease: true }) : + if (isDotnetIsolated) { + packages.push({ name: durableUtils.dotnetIsolatedDTSPackage, prerelease: true }); + } else { packages.push({ name: durableUtils.dotnetInProcDTSPackage, prerelease: true }); + } break; case DurableBackend.SQL: - isDotnetIsolated ? - packages.push({ name: durableUtils.dotnetIsolatedDfSqlPackage }) : + if (isDotnetIsolated) { + packages.push({ name: durableUtils.dotnetIsolatedDfSqlPackage }); + } else { packages.push({ name: durableUtils.dotnetInProcDfSqlPackage }); + } break; case DurableBackend.Storage: default: diff --git a/src/commands/createFunction/javaSteps/JavaFunctionCreateStep.ts b/src/commands/createFunction/javaSteps/JavaFunctionCreateStep.ts index 34438ce43..e0827dfb0 100644 --- a/src/commands/createFunction/javaSteps/JavaFunctionCreateStep.ts +++ b/src/commands/createFunction/javaSteps/JavaFunctionCreateStep.ts @@ -2,6 +2,7 @@ * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ + import { AzExtFsExtra } from '@microsoft/vscode-azext-utils'; import { nonNullProp } from '../../../utils/nonNull'; import { getJavaFunctionFilePath, type IJavaProjectWizardContext } from '../../createNewProject/javaSteps/IJavaProjectWizardContext'; diff --git a/src/commands/createFunction/openAPISteps/OpenAPICreateStep.ts b/src/commands/createFunction/openAPISteps/OpenAPICreateStep.ts index 7f088cf26..eeedead7d 100644 --- a/src/commands/createFunction/openAPISteps/OpenAPICreateStep.ts +++ b/src/commands/createFunction/openAPISteps/OpenAPICreateStep.ts @@ -79,7 +79,7 @@ export class OpenAPICreateStep extends AzureWizardExecuteStep { try { await cpUtils.executeCommand(undefined, undefined, 'autorest', '--version'); - } catch (error) { + } catch (_error) { const message: string = localize('autorestNotFound', 'Failed to find "autorest" | Extension needs AutoRest to generate a function app from an OpenAPI specification. Click "Learn more" for more details on installation steps.'); if (!context.errorHandling.suppressDisplay) { void window.showErrorMessage(message, DialogResponses.learnMore).then(async result => { diff --git a/src/commands/createFunction/scriptSteps/NodeV4FunctionCreateStep.ts b/src/commands/createFunction/scriptSteps/NodeV4FunctionCreateStep.ts index 103202b0e..ff598d7a1 100644 --- a/src/commands/createFunction/scriptSteps/NodeV4FunctionCreateStep.ts +++ b/src/commands/createFunction/scriptSteps/NodeV4FunctionCreateStep.ts @@ -29,8 +29,8 @@ export class NodeV4FunctionCreateStep extends FunctionCreateStepBase(tsconfigPath)).compilerOptions.outDir; } catch { // ignore and use default outDir diff --git a/src/commands/createFunctionApp/AuthenticationPromptStep.ts b/src/commands/createFunctionApp/AuthenticationPromptStep.ts index 76e3a8726..a8f0425a8 100644 --- a/src/commands/createFunctionApp/AuthenticationPromptStep.ts +++ b/src/commands/createFunctionApp/AuthenticationPromptStep.ts @@ -38,7 +38,7 @@ export class AuthenticationPromptStep exten return { promptSteps, executeSteps - } + }; } return undefined; @@ -54,6 +54,6 @@ export class AuthenticationPromptStep exten label: localize('managedIdentity', 'Managed identity'), detail: localize('managedIdentityDetails', 'For best security practice, use managed identity authentication when available.'), }, - ] + ]; } } diff --git a/src/commands/createFunctionApp/FunctionAppCreateStep.ts b/src/commands/createFunctionApp/FunctionAppCreateStep.ts index 0720f79d8..4c3056396 100644 --- a/src/commands/createFunctionApp/FunctionAppCreateStep.ts +++ b/src/commands/createFunctionApp/FunctionAppCreateStep.ts @@ -130,7 +130,7 @@ export class FunctionAppCreateStep extends AzureWizardExecuteStepWithActivityOut const userAssignedIdentities = {}; userAssignedIdentities[nonNullProp(context.managedIdentity, 'id')] = { principalId: context.managedIdentity?.principalId, clientId: context.managedIdentity?.clientId }; - identity = { type: 'UserAssigned', userAssignedIdentities } + identity = { type: 'UserAssigned', userAssignedIdentities }; } return { @@ -168,7 +168,7 @@ export class FunctionAppCreateStep extends AzureWizardExecuteStepWithActivityOut name: extensionVersionKey, value: '~' + getMajorVersion(context.version) }], - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + ...Object.entries(stackSettings.appSettingsDictionary).map(([name, value]) => { return { name, value }; })); } @@ -200,7 +200,7 @@ export class FunctionAppCreateStep extends AzureWizardExecuteStepWithActivityOut appSettings.push({ name: 'DEPLOYMENT_STORAGE_CONNECTION_STRING', value: storageConnectionString - }) + }); } // This setting is not required, but we will set it since it has many benefits https://docs.microsoft.com/en-us/azure/azure-functions/run-functions-from-deployment-package @@ -288,11 +288,11 @@ function getSiteKind(context: IAppServiceWizardContext): string { async function tryCreateStorageContainer(context: IFlexFunctionAppWizardContext, site: Site, storageAccount: StorageAccount): Promise { let client: BlobServiceClient; try { - const token = await context.createCredentialsForScopes(['https://storage.azure.com/.default']) + const token = await context.createCredentialsForScopes(['https://storage.azure.com/.default']); const primaryEndpoint = nonNullProp(storageAccount, 'primaryEndpoints'); client = new BlobServiceClient(nonNullProp(primaryEndpoint, 'blob'), token); await client.getProperties(); // Trigger a request to validate the token - } catch (error) { + } catch (_error) { const storageConnectionString: string = (await getStorageConnectionString(context)).connectionString; client = BlobServiceClient.fromConnectionString(storageConnectionString); await client.getProperties(); // Trigger a request to validate the key @@ -306,16 +306,16 @@ async function tryCreateStorageContainer(context: IFlexFunctionAppWizardContext, const containerClient = client.getContainerClient(containerName); if (!await containerClient.exists()) { await client.createContainer(containerName); - return + return; } else { ext.outputChannel.appendLog(localize('deploymentStorageExists', 'Deployment storage container "{0}" already exists.', containerName)); return; } } } - } catch (error) { + } catch (_error) { // ignore error, we will show a warning in the output channel - const parsedError = parseError(error); + const parsedError = parseError(_error); ext.outputChannel.appendLog(localize('failedToCreateDeploymentStorage', 'Failed to create deployment storage container. {0}', parsedError.message)); } diff --git a/src/commands/createFunctionApp/FunctionAppHostingPlanStep.ts b/src/commands/createFunctionApp/FunctionAppHostingPlanStep.ts index 542e25923..68604d2fc 100644 --- a/src/commands/createFunctionApp/FunctionAppHostingPlanStep.ts +++ b/src/commands/createFunctionApp/FunctionAppHostingPlanStep.ts @@ -89,6 +89,6 @@ async function getFlexLocations(context: IAppServiceWizardContext): Promise loc.name) as string[]) + const locations = ((result.parsedBody as { value: Location[] }).value.map(loc => loc.name) as string[]); return locations; } diff --git a/src/commands/createFunctionApp/containerImage/ContainerizedFunctionAppCreateStep.ts b/src/commands/createFunctionApp/containerImage/ContainerizedFunctionAppCreateStep.ts index a40e8f146..d0b67963f 100644 --- a/src/commands/createFunctionApp/containerImage/ContainerizedFunctionAppCreateStep.ts +++ b/src/commands/createFunctionApp/containerImage/ContainerizedFunctionAppCreateStep.ts @@ -54,7 +54,7 @@ export class ContainerizedFunctionAppCreateStep extends AzureWizardExecuteStepWi } public shouldExecute(context: IFunctionAppWizardContext): boolean { - return !!context.dockerfilePath + return !!context.dockerfilePath; } private async getNewSite(context: IFunctionAppWizardContext): Promise { @@ -93,7 +93,7 @@ export class ContainerizedFunctionAppCreateStep extends AzureWizardExecuteStepWi } ] } - } + }; } } diff --git a/src/commands/createFunctionApp/containerImage/DeployWorkspaceProjectStep.ts b/src/commands/createFunctionApp/containerImage/DeployWorkspaceProjectStep.ts index cd2c33f13..38509d0fe 100644 --- a/src/commands/createFunctionApp/containerImage/DeployWorkspaceProjectStep.ts +++ b/src/commands/createFunctionApp/containerImage/DeployWorkspaceProjectStep.ts @@ -26,7 +26,7 @@ export class DeployWorkspaceProjectStep extends AzureWizardExecuteStepWithActivi public getTreeItemLabel(context: IFunctionAppWizardContext): string { return context.deployWorkspaceResult ? localize('deployWorkspaceProjectLabel', 'Create container resources for "{0}"', context.deployWorkspaceResult.imageName) : - localize('deployWorkspaceProjectLabel', 'Create container resources; this may take a few minutes...'); ''; + localize('deployWorkspaceProjectLabel', 'Create container resources; this may take a few minutes...'); } public async execute(context: IFunctionAppWizardContext, progress: Progress<{ message?: string; increment?: number }>): Promise { @@ -44,10 +44,10 @@ export class DeployWorkspaceProjectStep extends AzureWizardExecuteStepWithActivi suppressContainerAppCreation: true, ignoreExistingDeploySettings: true, shouldSaveDeploySettings: false - }) + }); } public shouldExecute(context: IFunctionAppWizardContext): boolean { - return !!context.dockerfilePath + return !!context.dockerfilePath; } } diff --git a/src/commands/createFunctionApp/containerImage/detectDockerfile.ts b/src/commands/createFunctionApp/containerImage/detectDockerfile.ts index a3b253a17..66321e62c 100644 --- a/src/commands/createFunctionApp/containerImage/detectDockerfile.ts +++ b/src/commands/createFunctionApp/containerImage/detectDockerfile.ts @@ -2,6 +2,7 @@ * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.md in the project root for license information. *--------------------------------------------------------------------------------------------*/ + import { AzExtFsExtra, nonNullProp, type IActionContext, type IAzureQuickPickItem } from '@microsoft/vscode-azext-utils'; import * as path from 'path'; import { RelativePattern, workspace, type MessageItem, type Uri, type WorkspaceFolder } from 'vscode'; diff --git a/src/commands/createFunctionApp/createCreateFunctionAppComponents.ts b/src/commands/createFunctionApp/createCreateFunctionAppComponents.ts index 66c3fd425..27e534f00 100644 --- a/src/commands/createFunctionApp/createCreateFunctionAppComponents.ts +++ b/src/commands/createFunctionApp/createCreateFunctionAppComponents.ts @@ -158,7 +158,7 @@ async function createFunctionAppWizard(wizardContext: IFunctionAppWizardContext) promptSteps.push(new FunctionAppStackStep()); if (wizardContext.advancedCreation) { - promptSteps.push(new AppServicePlanListStep()) + promptSteps.push(new AppServicePlanListStep()); } if (wizardContext.version === FuncVersion.v1) { // v1 doesn't support linux @@ -181,7 +181,7 @@ async function createContainerizedFunctionAppWizard(): Promise<{ promptSteps: Az } function getAvailableFunctionAppHostingPlans(context: IFunctionAppWizardContext): Set { - const availablePlans: Set = new Set(); + const availablePlans = new Set(); switch (true) { case context.useFlexConsumptionPlan: diff --git a/src/commands/createFunctionApp/flex/InstanceMemoryMBPromptStep.ts b/src/commands/createFunctionApp/flex/InstanceMemoryMBPromptStep.ts index e45ac1439..56f1aad5d 100644 --- a/src/commands/createFunctionApp/flex/InstanceMemoryMBPromptStep.ts +++ b/src/commands/createFunctionApp/flex/InstanceMemoryMBPromptStep.ts @@ -13,7 +13,7 @@ export class InstanceMemoryMBPromptStep extends AzureWizardPromptStep[] { - const picks = flexSku.instanceMemoryMB.map(im => { return { label: im.size.toString(), data: Number.parseInt(im.size), description: im.isDefault ? 'Default' : undefined } }); + const picks = flexSku.instanceMemoryMB.map(im => { return { label: im.size.toString(), data: Number.parseInt(im.size), description: im.isDefault ? 'Default' : undefined }; }); return picks.sort((a, b) => Number(!!b.description) - Number(!!a.description)); } } diff --git a/src/commands/createFunctionApp/flex/MaximumInstanceCountPromptStep.ts b/src/commands/createFunctionApp/flex/MaximumInstanceCountPromptStep.ts index bf7ed1b0b..781a3c492 100644 --- a/src/commands/createFunctionApp/flex/MaximumInstanceCountPromptStep.ts +++ b/src/commands/createFunctionApp/flex/MaximumInstanceCountPromptStep.ts @@ -15,7 +15,7 @@ export class MaximumInstanceCountPromptStep extends AzureWizardPromptStep this.validateInput(flexSku, val), prompt: localize('maximumInstanceCount', 'Enter the maximum instance count'), value: flexSku.maximumInstanceCount.defaultValue.toString() - } + }; context.newFlexMaximumInstanceCount = Number(await context.ui.showInputBox(options)); } @@ -36,7 +36,7 @@ export class MaximumInstanceCountPromptStep extends AzureWizardPromptStep highestMaximumInstanceCount) { diff --git a/src/commands/createFunctionApp/stacks/FunctionAppEOLWarningStep.ts b/src/commands/createFunctionApp/stacks/FunctionAppEOLWarningStep.ts index c8eafcc90..db86f52cd 100644 --- a/src/commands/createFunctionApp/stacks/FunctionAppEOLWarningStep.ts +++ b/src/commands/createFunctionApp/stacks/FunctionAppEOLWarningStep.ts @@ -2,6 +2,7 @@ * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.md in the project root for license information. *--------------------------------------------------------------------------------------------*/ + import { AzureWizardPromptStep, DialogResponses, openUrl, type IActionContext } from "@microsoft/vscode-azext-utils"; import { type MessageItem } from "vscode"; import { funcVersionLink } from "../../../FuncVersion"; diff --git a/src/commands/createFunctionApp/stacks/FunctionAppStackStep.ts b/src/commands/createFunctionApp/stacks/FunctionAppStackStep.ts index ac6f59b72..2e3bd3c28 100644 --- a/src/commands/createFunctionApp/stacks/FunctionAppStackStep.ts +++ b/src/commands/createFunctionApp/stacks/FunctionAppStackStep.ts @@ -66,7 +66,7 @@ export class FunctionAppStackStep extends AzureWizardPromptStep d.properties)); - } + }; for (const stack of stacks) { await getFlexStack(stack); @@ -277,7 +277,7 @@ export function shouldShowEolWarning(minorVersion?: AppStackMinorVersion { diff --git a/src/commands/createNewProject/ProjectCreateStep/GradleProjectCreateSteps.ts b/src/commands/createNewProject/ProjectCreateStep/GradleProjectCreateSteps.ts index 6b498c07b..0723bbec5 100644 --- a/src/commands/createNewProject/ProjectCreateStep/GradleProjectCreateSteps.ts +++ b/src/commands/createNewProject/ProjectCreateStep/GradleProjectCreateSteps.ts @@ -45,7 +45,7 @@ export class GradleProjectCreateStep extends ScriptProjectCreateStep { try { const templateVersion: string | undefined = await javaUtils.getLatestArtifactVersionFromMetaData(context, metaDataUrl); return templateVersion ? templateVersion : backupGradlePluginVersion; - } catch (error) { + } catch (_error) { return backupGradlePluginVersion; } } diff --git a/src/commands/createNewProject/ProjectCreateStep/JavaScriptProjectCreateStep.ts b/src/commands/createNewProject/ProjectCreateStep/JavaScriptProjectCreateStep.ts index 5aa122367..2b48fd63b 100644 --- a/src/commands/createNewProject/ProjectCreateStep/JavaScriptProjectCreateStep.ts +++ b/src/commands/createNewProject/ProjectCreateStep/JavaScriptProjectCreateStep.ts @@ -80,7 +80,7 @@ export class JavaScriptProjectCreateStep extends ScriptProjectCreateStep { return { start: 'func start', test: 'echo \"No tests yet...\"' - } + }; } protected getPackageJsonDeps(context: IProjectWizardContext): { [key: string]: string } { diff --git a/src/commands/createNewProject/createNewProject.ts b/src/commands/createNewProject/createNewProject.ts index 8a4633545..6c82ac445 100644 --- a/src/commands/createNewProject/createNewProject.ts +++ b/src/commands/createNewProject/createNewProject.ts @@ -87,7 +87,7 @@ export async function createNewProjectInternal(context: IActionContext, options: context.telemetry.properties.openBehaviorFromSetting = String(!!wizardContext.openBehavior); } - const wizard: AzureWizard = new AzureWizard(wizardContext, { + const wizard = new AzureWizard>(wizardContext, { title: localize('createNewProject', 'Create new project'), promptSteps: [new FolderListStep(), new NewProjectLanguageStep(options.templateId, options.functionSettings), new OpenBehaviorStep()], executeSteps: optionalExecuteStep ? [optionalExecuteStep, new OpenFolderStep()] : [new OpenFolderStep()] diff --git a/src/commands/createNewProject/dotnetSteps/DotnetRuntimeStep.ts b/src/commands/createNewProject/dotnetSteps/DotnetRuntimeStep.ts index 9c79212bb..4fdef2369 100644 --- a/src/commands/createNewProject/dotnetSteps/DotnetRuntimeStep.ts +++ b/src/commands/createNewProject/dotnetSteps/DotnetRuntimeStep.ts @@ -84,7 +84,7 @@ async function getRuntimes(context: IProjectWizardContext): Promise 0) { runtimes = runtimes.concat(inProcessRuntimes); } - } catch (error) { + } catch (_error) { // ignore this error - it just means there are no in-process runtimes we need to add } } diff --git a/src/commands/createNewProject/javaSteps/JavaVersions.ts b/src/commands/createNewProject/javaSteps/JavaVersions.ts index df18ac0ee..a71ab3b13 100644 --- a/src/commands/createNewProject/javaSteps/JavaVersions.ts +++ b/src/commands/createNewProject/javaSteps/JavaVersions.ts @@ -2,6 +2,7 @@ * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ + import { AzExtFsExtra } from '@microsoft/vscode-azext-utils'; import { localize } from '../../../localize'; import { cpUtils } from "../../../utils/cpUtils"; @@ -35,7 +36,7 @@ async function checkVersionInReleaseFile(javaHome: string): Promise | undefined> { if (context.manuallyEnterAlias) { return { diff --git a/src/commands/deploy/FunctionAppListStep.ts b/src/commands/deploy/FunctionAppListStep.ts index ef74b515c..eb57285c0 100644 --- a/src/commands/deploy/FunctionAppListStep.ts +++ b/src/commands/deploy/FunctionAppListStep.ts @@ -32,7 +32,7 @@ export class FunctionAppListStep extends AzureWizardPromptStep { - return await getOrCreateFunctionApp(context) + return await getOrCreateFunctionApp(context); }); await node.initSite(context); @@ -111,7 +111,7 @@ async function deploy(actionContext: IActionContext, arg1: vscode.Uri | string | }); if (node.contextValue.includes('container')) { - const learnMoreLink: string = 'https://aka.ms/deployContainerApps' + const learnMoreLink: string = 'https://aka.ms/deployContainerApps'; await context.ui.showWarningMessage(localize('containerFunctionAppError', 'Deploy is not currently supported for containerized function apps within the Azure Functions extension. Please read here to learn how to deploy your project.'), { learnMoreLink }); //suppress display of error message context.errorHandling.suppressDisplay = true; diff --git a/src/commands/deploy/getOrCreateFunctionApp.ts b/src/commands/deploy/getOrCreateFunctionApp.ts index adb7e1dcd..eb9668396 100644 --- a/src/commands/deploy/getOrCreateFunctionApp.ts +++ b/src/commands/deploy/getOrCreateFunctionApp.ts @@ -3,7 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { type IAppServiceWizardContext } from "@microsoft/vscode-azext-azureappservice"; import { AzureWizard, nonNullProp, nonNullValueAndProp, type ISubscriptionContext } from "@microsoft/vscode-azext-utils"; import { ProgressLocation, l10n, window } from "vscode"; import { ext } from "../../extensionVariables"; @@ -18,7 +17,7 @@ import { type IFuncDeployContext } from "./deploy"; export async function getOrCreateFunctionApp(context: IFuncDeployContext & Partial): Promise { let node: SlotTreeItem | undefined; - const wizard: AzureWizard = new AzureWizard(context, { + const wizard = new AzureWizard>(context, { promptSteps: [new SubscriptionListStep(), new FunctionAppListStep()], title: l10n.t('Select Function App') }); @@ -28,15 +27,15 @@ export async function getOrCreateFunctionApp(context: IFuncDeployContext & Parti if (context.site) { await window.withProgress({ location: ProgressLocation.Notification, cancellable: false, title: localize('deploySetUp', 'Loading deployment configurations...') }, async () => { - node = await ext.rgApi.tree.findTreeItem(nonNullValueAndProp(context.site, 'id'), context) + node = await ext.rgApi.tree.findTreeItem(nonNullValueAndProp(context.site, 'id'), context); }); } else { - node = undefined + node = undefined; } // if there was no node, then the user is creating a new function app if (!node) { - context.activityTitle = localize('functionAppCreateActivityTitle', 'Create Function App "{0}"', nonNullProp(context, 'newSiteName')) + context.activityTitle = localize('functionAppCreateActivityTitle', 'Create Function App "{0}"', nonNullProp(context, 'newSiteName')); context.disableSharedKeyAccess = context.useManagedIdentity && context.useFlexConsumptionPlan; await wizard.execute(); diff --git a/src/commands/deploy/getWarningForExtensionBundle.ts b/src/commands/deploy/getWarningForExtensionBundle.ts index 5c3ff97c8..832e21b08 100644 --- a/src/commands/deploy/getWarningForExtensionBundle.ts +++ b/src/commands/deploy/getWarningForExtensionBundle.ts @@ -30,7 +30,7 @@ export async function getWarningForExtensionBundle(context: IFuncDeployContext): return warningMessage; } } - } catch (error) { + } catch (_error) { return; } return; diff --git a/src/commands/deploy/getWarningsForConnectionSettings.ts b/src/commands/deploy/getWarningsForConnectionSettings.ts index bb997f974..8e5a366ab 100644 --- a/src/commands/deploy/getWarningsForConnectionSettings.ts +++ b/src/commands/deploy/getWarningsForConnectionSettings.ts @@ -25,7 +25,7 @@ export async function getWarningsForConnectionSettings(context: IActionContext, let localSettings: ILocalSettingsJson; try { localSettings = localSettingsPath ? await AzExtFsExtra.readJSON(localSettingsPath) : { Values: {} }; - } catch (err) { + } catch (_err) { // if we can't read the local settings, just assume it's empty localSettings = { Values: {} }; } @@ -46,9 +46,9 @@ export async function getWarningsForConnectionSettings(context: IActionContext, if (localConnectionSettings.some(setting => setting.type === 'ConnectionString') || remoteConnectionSettings.some(setting => setting.type === 'ConnectionString')) { // if they have connection strings, warn them about insecure connections but don't try to convert them return localize('connectionStringWarning', - 'Your app may be using connection strings for authentication. This may expose sensitive credentials and lead to security vulnerabilities. Consider using managed identities to enhance security.') + 'Your app may be using connection strings for authentication. This may expose sensitive credentials and lead to security vulnerabilities. Consider using managed identities to enhance security.'); } - } catch (err) { + } catch (_err) { // if we can't read local or remote settings, don't warn them about anything } diff --git a/src/commands/deploy/notifyDeployComplete.ts b/src/commands/deploy/notifyDeployComplete.ts index 14fcc8515..e6b121bb6 100644 --- a/src/commands/deploy/notifyDeployComplete.ts +++ b/src/commands/deploy/notifyDeployComplete.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { callWithTelemetryAndErrorHandling, type AzExtTreeItem, type IActionContext } from '@microsoft/vscode-azext-utils'; -import * as retry from 'p-retry'; +import retry from 'p-retry'; import * as path from 'path'; import { Uri, window, type MessageItem, type WorkspaceFolder } from 'vscode'; import { McpProjectType, mcpProjectTypeSetting } from '../../constants'; @@ -28,7 +28,7 @@ export async function notifyDeployComplete(context: IFuncDeployContext, node: Sl if (shouldCheckEventSystemTopics) { await promptForEventGrid(context, workspaceFolder); } - } catch (err) { + } catch (_err) { // ignore this error, don't block deploy for this check } const messageItems: MessageItem[] = []; @@ -60,7 +60,7 @@ export async function notifyDeployComplete(context: IFuncDeployContext, node: Sl const subContext = { ...postDeployContext, ...node.site.subscription - } + }; await uploadAppSettings(subContext, node.appSettingsTreeItem, undefined, workspaceFolder); } else if (result === connectMcpServer) { const mcpProjectType = getWorkspaceSetting(mcpProjectTypeSetting, workspaceFolder.uri.fsPath); @@ -113,7 +113,7 @@ async function listHttpTriggerUrls(context: IActionContext, node: SlotTreeItem): hasHttpTriggers = true; ext.outputChannel.appendLog(localize('anonymousFunctionUrls', 'HTTP Trigger Urls:'), logOptions); for (const func of anonFunctions) { - const triggerRequest = nonNullValue(await func.getTriggerRequest(context), 'triggerRequest') + const triggerRequest = nonNullValue(await func.getTriggerRequest(context), 'triggerRequest'); ext.outputChannel.appendLine(` ${func.label}: ${triggerRequest.url}`); } } diff --git a/src/commands/deploy/promptForEventGrid.ts b/src/commands/deploy/promptForEventGrid.ts index cee872d73..df5dd07c1 100644 --- a/src/commands/deploy/promptForEventGrid.ts +++ b/src/commands/deploy/promptForEventGrid.ts @@ -5,7 +5,7 @@ import { type FunctionEnvelope } from "@azure/arm-appservice"; import { DialogResponses, type IActionContext, type IAzureMessageOptions } from "@microsoft/vscode-azext-utils"; -import * as retry from 'p-retry'; +import retry from 'p-retry'; import { type WorkspaceFolder } from "vscode"; import { localize } from "../../localize"; import { type IBindingTemplate } from "../../templates/IBindingTemplate"; diff --git a/src/commands/deploy/verifyAppSettings.ts b/src/commands/deploy/verifyAppSettings.ts index 79be3ed75..8079d5c99 100644 --- a/src/commands/deploy/verifyAppSettings.ts +++ b/src/commands/deploy/verifyAppSettings.ts @@ -6,7 +6,7 @@ import { type StringDictionary } from '@azure/arm-appservice'; import { type ParsedSite, type SiteClient } from '@microsoft/vscode-azext-azureappservice'; import { type IActionContext } from '@microsoft/vscode-azext-utils'; -import * as retry from 'p-retry'; +import { default as retry } from 'p-retry'; import * as vscode from 'vscode'; import { FuncVersion, tryParseFuncVersion } from '../../FuncVersion'; import { azureWebJobsFeatureFlags, DurableBackend, extensionVersionKey, runFromPackageKey, workerRuntimeKey, type ProjectLanguage } from '../../constants'; @@ -70,7 +70,7 @@ export async function verifyAppSettings(options: { await client.updateApplicationSettings(appSettings); try { await verifyAppSettingsPropagated(context, client, appSettings); - } catch (e) { + } catch (_e) { // don't throw if we can't verify the settings were updated } diff --git a/src/commands/durableTaskScheduler/copyEmulatorConnectionString.ts b/src/commands/durableTaskScheduler/copyEmulatorConnectionString.ts index 854eaeead..0eb8a1d9d 100644 --- a/src/commands/durableTaskScheduler/copyEmulatorConnectionString.ts +++ b/src/commands/durableTaskScheduler/copyEmulatorConnectionString.ts @@ -27,7 +27,7 @@ export function copyEmulatorConnectionStringCommandFactory() { const noTaskHubItem: QuickPickItem = { detail: localize('noTaskHubDetail', 'Do not connect to a specific task hub.'), label: localize('noTaskHubLabel', 'None') - } + }; const taskHubItems: QuickPickItem[] = taskHubs.map(taskHub => ({ label: taskHub })); @@ -55,5 +55,5 @@ export function copyEmulatorConnectionStringCommandFactory() { ext.outputChannel.show(); ext.outputChannel.appendLog(localize('schedulerConnectionStringCopiedMessage', 'Connection string copied to clipboard: {0}', connectionString)); - } + }; } diff --git a/src/commands/durableTaskScheduler/copySchedulerConnectionString.ts b/src/commands/durableTaskScheduler/copySchedulerConnectionString.ts index 23fb85b58..2b017d4a2 100644 --- a/src/commands/durableTaskScheduler/copySchedulerConnectionString.ts +++ b/src/commands/durableTaskScheduler/copySchedulerConnectionString.ts @@ -29,7 +29,7 @@ export function copySchedulerConnectionStringCommandFactory(schedulerClient: Dur detail: localize('noAuthenticationDetail', 'No credentials will be used.'), label: localize('noAuthenticationLabel', 'None'), data: SchedulerAuthenticationType.None, - } + }; const localDevelopment: IAzureQuickPickItem = { detail: localize('localDevelopmentDetail', 'Use the credentials of the local developer.'), @@ -41,13 +41,13 @@ export function copySchedulerConnectionStringCommandFactory(schedulerClient: Dur detail: localize('userAssignedManagedIdentityDetail', 'Use managed identity credentials for a specific client.'), label: localize('userAssignedManagedIdentityLabel', 'User-assigned managed identity'), data: SchedulerAuthenticationType.UserAssignedIdentity, - } + }; const systemAssignedManagedIdentity: IAzureQuickPickItem = { detail: localize('systemAssignedManagedIdentityDetail', 'Use managed identity credentials for a client assigned to a specific Azure resource.'), label: localize('systemAssignedManagedIdentityLabel', 'System-assigned managed identity'), data: SchedulerAuthenticationType.SystemAssignedIdentity, - } + }; const authenticationType = (await actionContext.ui.showQuickPick( [ @@ -73,7 +73,7 @@ export function copySchedulerConnectionStringCommandFactory(schedulerClient: Dur const noTaskHubItem: QuickPickItem = { detail: localize('noTaskHubDetail', 'Do not connect to a specific task hub.'), label: localize('noTaskHubLabel', 'None') - } + }; const taskHubItems: QuickPickItem[] = taskHubs.map(taskHub => ({ label: taskHub.name })); @@ -101,13 +101,13 @@ export function copySchedulerConnectionStringCommandFactory(schedulerClient: Dur ext.outputChannel.show(); ext.outputChannel.appendLog(localize('schedulerConnectionStringCopiedMessage', 'Connection string copied to clipboard: {0}', connectionString)); - } + }; } export const clientIdKey: string = ''; export function getSchedulerConnectionString(endpointUrl: string, authenticationType: SchedulerAuthenticationType): string { - let schedulerConnectionString = `Endpoint=${endpointUrl};Authentication=` + let schedulerConnectionString = `Endpoint=${endpointUrl};Authentication=`; if (authenticationType === SchedulerAuthenticationType.None) { schedulerConnectionString += 'None'; diff --git a/src/commands/durableTaskScheduler/copySchedulerEndpoint.ts b/src/commands/durableTaskScheduler/copySchedulerEndpoint.ts index 175cf31a5..b330f7911 100644 --- a/src/commands/durableTaskScheduler/copySchedulerEndpoint.ts +++ b/src/commands/durableTaskScheduler/copySchedulerEndpoint.ts @@ -21,5 +21,5 @@ export function copySchedulerEndpointCommandFactory() { ext.outputChannel.show(); ext.outputChannel.appendLog(localize('schedulerEndpointCopiedMessage', 'Endpoint copied to clipboard: {0}', endpointUrl.toString())); - } + }; } diff --git a/src/commands/durableTaskScheduler/createScheduler.ts b/src/commands/durableTaskScheduler/createScheduler.ts index b236e2a0d..d4b41d5e1 100644 --- a/src/commands/durableTaskScheduler/createScheduler.ts +++ b/src/commands/durableTaskScheduler/createScheduler.ts @@ -25,7 +25,7 @@ class SchedulerNamingStep extends AzureWizardPromptStep async prompt(wizardContext: ICreateSchedulerContext): Promise { wizardContext.schedulerName = await wizardContext.ui.showInputBox({ prompt: localize('schedulerNamingStepPrompt', 'Enter a name for the new scheduler') - }) + }); } shouldPrompt(wizardContext: ICreateSchedulerContext): boolean { @@ -144,5 +144,5 @@ export function createSchedulerCommandFactory(dataBranchProvider: DurableTaskSch finally { dataBranchProvider.refresh(); } - } + }; } diff --git a/src/commands/durableTaskScheduler/createTaskHub.ts b/src/commands/durableTaskScheduler/createTaskHub.ts index 6df8c4aa2..85917d794 100644 --- a/src/commands/durableTaskScheduler/createTaskHub.ts +++ b/src/commands/durableTaskScheduler/createTaskHub.ts @@ -22,7 +22,7 @@ class TaskHubNamingStep extends AzureWizardPromptStep { async prompt(wizardContext: ICreateTaskHubContext): Promise { wizardContext.taskHubName = await wizardContext.ui.showInputBox({ prompt: localize('taskHubNamingStepPrompt', 'Enter a name for the new task hub') - }) + }); } shouldPrompt(wizardContext: ICreateTaskHubContext): boolean { @@ -84,5 +84,5 @@ export function createTaskHubCommandFactory(schedulerClient: DurableTaskSchedule finally { scheduler.refresh(); } - } + }; } diff --git a/src/commands/durableTaskScheduler/deleteScheduler.ts b/src/commands/durableTaskScheduler/deleteScheduler.ts index cc4575bec..9613f2b20 100644 --- a/src/commands/durableTaskScheduler/deleteScheduler.ts +++ b/src/commands/durableTaskScheduler/deleteScheduler.ts @@ -56,5 +56,5 @@ export function deleteSchedulerCommandFactory( finally { dataBranchProvider.refresh(); } - } + }; } diff --git a/src/commands/durableTaskScheduler/deleteTaskHub.ts b/src/commands/durableTaskScheduler/deleteTaskHub.ts index 6b6b0d2ce..f05c65be8 100644 --- a/src/commands/durableTaskScheduler/deleteTaskHub.ts +++ b/src/commands/durableTaskScheduler/deleteTaskHub.ts @@ -53,5 +53,5 @@ export function deleteTaskHubCommandFactory(schedulerClient: DurableTaskSchedule finally { taskHub.scheduler.refresh(); } - } + }; } diff --git a/src/commands/editAppSetting.ts b/src/commands/editAppSetting.ts index 19dc5b98e..4cc8106ea 100644 --- a/src/commands/editAppSetting.ts +++ b/src/commands/editAppSetting.ts @@ -18,6 +18,6 @@ export async function editAppSetting(context: IFunctionAppWizardContext, node?: }); } const parent = node.parent.parent; - await showEolWarningIfNecessary(context, nonNullValue(parent)) + await showEolWarningIfNecessary(context, nonNullValue(parent)); await node.edit(context); } diff --git a/src/commands/executeFunction/eventGrid/EventGridCodeLensProvider.ts b/src/commands/executeFunction/eventGrid/EventGridCodeLensProvider.ts index 1b2214fd4..22f5777d7 100644 --- a/src/commands/executeFunction/eventGrid/EventGridCodeLensProvider.ts +++ b/src/commands/executeFunction/eventGrid/EventGridCodeLensProvider.ts @@ -2,6 +2,7 @@ * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ + import { CodeLens, Range, type CodeLensProvider } from 'vscode'; import { EventGridExecuteFunctionEntryPoint } from '../../../constants'; import { localize } from '../../../localize'; diff --git a/src/commands/executeFunction/eventGrid/EventGridFileOpenStep.ts b/src/commands/executeFunction/eventGrid/EventGridFileOpenStep.ts index 0d5a5f473..4711160e7 100644 --- a/src/commands/executeFunction/eventGrid/EventGridFileOpenStep.ts +++ b/src/commands/executeFunction/eventGrid/EventGridFileOpenStep.ts @@ -89,7 +89,7 @@ export class EventGridFileOpenStep extends AzureWizardExecuteStep = new Map([ +export const supportedEventGridSourceLabels = new Map([ ['Microsoft.Storage', 'Blob Storage'], ['Microsoft.EventHub', 'Event Hubs'], ['Microsoft.ServiceBus', 'Service Bus'], diff --git a/src/commands/executeFunction/eventGrid/executeEventGridFunction.ts b/src/commands/executeFunction/eventGrid/executeEventGridFunction.ts index 99b5816cd..7357f34fd 100644 --- a/src/commands/executeFunction/eventGrid/executeEventGridFunction.ts +++ b/src/commands/executeFunction/eventGrid/executeEventGridFunction.ts @@ -32,7 +32,7 @@ export async function executeEventGridFunction(context: IActionContext, _node: F fileOpened: false, }; - const wizard: AzureWizard = new AzureWizard(wizardContext, { + const wizard = new AzureWizard(wizardContext, { title, promptSteps, executeSteps, diff --git a/src/commands/getMcpHostKey.ts b/src/commands/getMcpHostKey.ts index d6ed26535..65ed2ad79 100644 --- a/src/commands/getMcpHostKey.ts +++ b/src/commands/getMcpHostKey.ts @@ -14,7 +14,7 @@ import { SubscriptionListStep } from './SubscriptionListStep'; export async function getMcpHostKey(context: IActionContext & { subscription?: AzureSubscription }, args: { resourceId: string, projectType: McpProjectType }): Promise { const parsedId: ParsedAzureResourceId = parseAzureResourceId(args.resourceId); - const wizard: AzureWizard = new AzureWizard(context, { + const wizard = new AzureWizard>(context, { promptSteps: [new SubscriptionListStep(parsedId.subscriptionId)], // this should never happen, but just in case title: l10n.t('Select the subscription that contains the function app {0}.', parsedId.resourceName) @@ -25,7 +25,7 @@ export async function getMcpHostKey(context: IActionContext & { subscription?: A throw new Error(l10n.t('Subscription with id "{0}" not found.', parsedId.subscriptionId)); } - const subContext = createSubscriptionContext(context.subscription) + const subContext = createSubscriptionContext(context.subscription); const client = await createWebSiteClient([context, subContext]); const keys = await client.webApps.listHostKeys(parsedId.resourceGroup, parsedId.resourceName); diff --git a/src/commands/identity/ManagedIdentityAssignStep.ts b/src/commands/identity/ManagedIdentityAssignStep.ts index da76bc8f3..6fa9fdaf7 100644 --- a/src/commands/identity/ManagedIdentityAssignStep.ts +++ b/src/commands/identity/ManagedIdentityAssignStep.ts @@ -57,7 +57,7 @@ export class ManagedIdentityAssignStep extends AzureWizardExecuteStep { if (type?.includes('UserAssigned')) { - return type + return type; } if (type === 'SystemAssigned') { return 'SystemAssigned, UserAssigned'; diff --git a/src/commands/identity/assignManagedIdentity.ts b/src/commands/identity/assignManagedIdentity.ts index d47109bca..062224226 100644 --- a/src/commands/identity/assignManagedIdentity.ts +++ b/src/commands/identity/assignManagedIdentity.ts @@ -31,7 +31,7 @@ export async function assignManagedIdentity(context: IActionContext, node?: User }, // we only need these two properties from the resource group ...node.subscription, ...(await createActivityContext()) - } + }; await LocationListStep.setLocation(wizardContext, node.site.location); const promptSteps: AzureWizardPromptStep[] = [ @@ -42,7 +42,7 @@ export async function assignManagedIdentity(context: IActionContext, node?: User new ManagedIdentityAssignStep() ]; const title: string = localize('assignManagedIdentity', 'Assign User Assigned Identity to Function App'); - const wizard: AzureWizard = new AzureWizard(wizardContext, { + const wizard = new AzureWizard(wizardContext, { title, promptSteps, executeSteps, @@ -56,6 +56,6 @@ export async function assignManagedIdentity(context: IActionContext, node?: User await wizard.execute(); }); - void node.refresh(context) + void node.refresh(context); return node; } diff --git a/src/commands/identity/enableSystemIdentity.ts b/src/commands/identity/enableSystemIdentity.ts index 869dc6e75..d3bcaba32 100644 --- a/src/commands/identity/enableSystemIdentity.ts +++ b/src/commands/identity/enableSystemIdentity.ts @@ -38,5 +38,5 @@ export async function enableSystemIdentity(context: IActionContext, node?: Syste await wizard.execute(); }); - void slotTreeItem.refresh(context) + void slotTreeItem.refresh(context); } diff --git a/src/commands/identity/unassignManagedIdentity.ts b/src/commands/identity/unassignManagedIdentity.ts index 9affd6f54..d4d3a4221 100644 --- a/src/commands/identity/unassignManagedIdentity.ts +++ b/src/commands/identity/unassignManagedIdentity.ts @@ -22,7 +22,7 @@ export async function unassignManagedIdentity(context: IActionContext, node: Use managedIdentity: node.identity, ...node.subscription, ...(await createActivityContext()) - } + }; await context.ui.showWarningMessage( localize('unassignManagedIdentityWarning', "'{0}' will not be able to request access tokens for the user assigned managed identity '{1}'. Do you want to continue?", @@ -33,7 +33,7 @@ export async function unassignManagedIdentity(context: IActionContext, node: Use ); const title: string = localize('assignManagedIdentity', 'Unassign User Assigned Identity to Function App'); - const wizard: AzureWizard = new AzureWizard(wizardContext, { + const wizard = new AzureWizard(wizardContext, { title, promptSteps: [], executeSteps: [ @@ -49,5 +49,5 @@ export async function unassignManagedIdentity(context: IActionContext, node: Use await wizard.execute(); }); - void slotTreeItem.refresh(context) + void slotTreeItem.refresh(context); } diff --git a/src/commands/initProjectForVSCode/InitVSCodeStep/InitVSCodeStepBase.ts b/src/commands/initProjectForVSCode/InitVSCodeStep/InitVSCodeStepBase.ts index e999109b0..df3ccbd56 100644 --- a/src/commands/initProjectForVSCode/InitVSCodeStep/InitVSCodeStepBase.ts +++ b/src/commands/initProjectForVSCode/InitVSCodeStep/InitVSCodeStepBase.ts @@ -88,14 +88,14 @@ export abstract class InitVSCodeStepBase extends AzureWizardExecuteStepWithActiv private async writeTasksJson(context: IProjectWizardContext, vscodePath: string, language: ProjectLanguage): Promise { const newTasks: TaskDefinition[] = this.getTasks(language); for (const task of newTasks) { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access + let cwd: string = (task.options && task.options.cwd) || '.'; cwd = this.addSubDir(context, cwd); if (!isPathEqual(cwd, '.')) { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + task.options = task.options || {}; // always use posix for debug config - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + task.options.cwd = path.posix.join('${workspaceFolder}', cwd); } } @@ -162,7 +162,7 @@ export abstract class InitVSCodeStepBase extends AzureWizardExecuteStepWithActiv if (matchingTaskLabels.length > 0) { const message = localize('confirmOverwriteTasks', 'This will overwrite the following tasks in your tasks.json: "{0}"', matchingTaskLabels.join('", "')); const overwrite: MessageItem = { title: localize('overwrite', 'Overwrite') }; - await context.ui.showWarningMessage(message, { modal: true, stepName: 'confirmOverwriteTasks' }, overwrite) + await context.ui.showWarningMessage(message, { modal: true, stepName: 'confirmOverwriteTasks' }, overwrite); } return nonMatchingTasks.concat(...newTasks); diff --git a/src/commands/initProjectForVSCode/detectProjectLanguage.ts b/src/commands/initProjectForVSCode/detectProjectLanguage.ts index 7846eb1a6..72e344cd7 100644 --- a/src/commands/initProjectForVSCode/detectProjectLanguage.ts +++ b/src/commands/initProjectForVSCode/detectProjectLanguage.ts @@ -58,7 +58,7 @@ export async function detectProjectLanguage(context: IActionContext, projectPath } async function isJavaProject(projectPath: string): Promise { - return await isMavenProject(projectPath) || await isGradleProject(projectPath) + return await isMavenProject(projectPath) || await isGradleProject(projectPath); } export async function isMavenProject(projectPath: string): Promise { diff --git a/src/commands/initProjectForVSCode/initProjectForVSCode.ts b/src/commands/initProjectForVSCode/initProjectForVSCode.ts index 1e2c51f6b..5046fa418 100644 --- a/src/commands/initProjectForVSCode/initProjectForVSCode.ts +++ b/src/commands/initProjectForVSCode/initProjectForVSCode.ts @@ -48,7 +48,7 @@ export async function initProjectForVSCode(context: IActionContext, fsPath?: str const projectTemplateKey: string | undefined = getGlobalSetting(projectTemplateKeySetting); const wizardContext: IProjectWizardContext = Object.assign(context, { projectPath, workspacePath, language, languageModel, version, workspaceFolder, projectTemplateKey }); - const wizard: AzureWizard = new AzureWizard(wizardContext, { promptSteps: [new InitVSCodeLanguageStep()] }); + const wizard = new AzureWizard(wizardContext, { promptSteps: [new InitVSCodeLanguageStep()] }); await wizard.prompt(); await wizard.execute(); diff --git a/src/commands/pickFuncProcess.ts b/src/commands/pickFuncProcess.ts index 9fe2417d9..0535f054f 100644 --- a/src/commands/pickFuncProcess.ts +++ b/src/commands/pickFuncProcess.ts @@ -5,7 +5,7 @@ import { sendRequestWithTimeout, type AzExtRequestPrepareOptions } from '@microsoft/vscode-azext-azureutils'; import { callWithTelemetryAndErrorHandling, parseError, UserCancelledError, type IActionContext } from '@microsoft/vscode-azext-utils'; -import * as unixPsTree from 'ps-tree'; +import psTree, { type PS } from 'ps-tree'; import * as vscode from 'vscode'; import { hostStartTaskName } from '../constants'; import { preDebugValidate, type IPreDebugValidateResult } from '../debug/validatePreDebug'; @@ -46,7 +46,7 @@ export async function startFuncProcessFromApi( uri: vscode.Uri.parse(buildPath), name: buildPath, index: -1 - } + }; } await waitForPrevFuncTaskToStop(workspaceFolder); @@ -72,7 +72,7 @@ export async function startFuncProcessFromApi( } }); - return result + return result; } export async function pickFuncProcess(context: IActionContext, debugConfig: vscode.DebugConfiguration): Promise { @@ -81,7 +81,6 @@ export async function pickFuncProcess(context: IActionContext, debugConfig: vsco throw new UserCancelledError('preDebugValidate'); } - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment const preLaunchTaskName: string | undefined = debugConfig.preLaunchTask; const tasks: vscode.Task[] = await vscode.tasks.fetchTasks(); const funcTask: vscode.Task | undefined = tasks.find(t => { @@ -156,7 +155,6 @@ async function startFuncTask(context: IActionContext, workspaceFolder: vscode.Wo try { // wait for status url to indicate functions host is running const response = await sendRequestWithTimeout(context, statusRequest, statusRequestTimeout, undefined); - // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access if (response.parsedBody.state.toLowerCase() === 'running') { funcTaskReadyEmitter.fire(workspaceFolder); return taskInfo; @@ -194,7 +192,7 @@ type OSAgnosticProcess = { command: string | undefined; pid: number | string }; async function pickChildProcess(taskInfo: IRunningFuncTask): Promise { // Workaround for https://github.com/microsoft/vscode-azurefunctions/issues/2656 if (!isRunning(taskInfo.processId) && vscode.window.activeTerminal) { - const terminalPid = await vscode.window.activeTerminal.processId + const terminalPid = await vscode.window.activeTerminal.processId; if (terminalPid) { // NOTE: Intentionally updating the object so that `runningFuncTaskMap` is affected, too taskInfo.processId = terminalPid; @@ -207,11 +205,11 @@ async function pickChildProcess(taskInfo: IRunningFuncTask): Promise { // Looks like this bug was fixed, but never merged: // https://github.com/indexzero/ps-tree/issues/18 -type ActualUnixPS = unixPsTree.PS & { COMM?: string }; +type ActualUnixPS = PS & { COMM?: string }; async function getUnixChildren(pid: number): Promise { const processes: ActualUnixPS[] = await new Promise((resolve, reject): void => { - unixPsTree(pid, (error: Error | null, result: unixPsTree.PS[]) => { + psTree(pid, (error: Error | null, result: PS[]) => { if (error) { reject(error); } else { diff --git a/src/commands/registerCommands.ts b/src/commands/registerCommands.ts index 01ccf7405..7d1a8b115 100644 --- a/src/commands/registerCommands.ts +++ b/src/commands/registerCommands.ts @@ -103,18 +103,18 @@ export function registerCommands( 'azureFunctions.appSettings.add', async (context: ISubscriptionActionContext, node?: AzExtParentTreeItem) => { if (node?.parent) { - await showEolWarningIfNecessary(context, node?.parent) + await showEolWarningIfNecessary(context, node?.parent); } - await createChildNode(context, new RegExp(AppSettingsTreeItem.contextValue), node) + await createChildNode(context, new RegExp(AppSettingsTreeItem.contextValue), node); }); registerCommandWithTreeNodeUnwrapping('azureFunctions.appSettings.decrypt', decryptLocalSettings); registerCommandWithTreeNodeUnwrapping( 'azureFunctions.appSettings.delete', async (context: ISubscriptionActionContext, node?: AzExtTreeItem) => { if (node?.parent?.parent) { - await showEolWarningIfNecessary(context, node?.parent?.parent) + await showEolWarningIfNecessary(context, node?.parent?.parent); } - await deleteNode(context, new RegExp(AppSettingTreeItem.contextValue), node) + await deleteNode(context, new RegExp(AppSettingTreeItem.contextValue), node); }); registerCommandWithTreeNodeUnwrapping('azureFunctions.appSettings.download', downloadAppSettings); registerCommandWithTreeNodeUnwrapping('azureFunctions.appSettings.edit', editAppSetting); diff --git a/src/commands/remoteDebugJava/DebugProxy.ts b/src/commands/remoteDebugJava/DebugProxy.ts index 3e584d882..f94f72d6e 100644 --- a/src/commands/remoteDebugJava/DebugProxy.ts +++ b/src/commands/remoteDebugJava/DebugProxy.ts @@ -143,11 +143,11 @@ export class DebugProxy extends EventEmitter { if (this._keepAlive) { try { await pingFunctionApp(context, this._site); - // eslint-disable-next-line @typescript-eslint/no-misused-promises + setTimeout(this.keepAlive, 60 * 1000 /* 60 seconds */); } catch (err) { ext.outputChannel.appendLog(`[Proxy Server] ${err}`); - // eslint-disable-next-line @typescript-eslint/no-misused-promises + setTimeout(this.keepAlive, 5 * 1000 /* 5 seconds */); } } diff --git a/src/commands/remoteDebugJava/remoteDebugJavaFunctionApp.ts b/src/commands/remoteDebugJava/remoteDebugJavaFunctionApp.ts index 52a4c1989..f246ba218 100644 --- a/src/commands/remoteDebugJava/remoteDebugJavaFunctionApp.ts +++ b/src/commands/remoteDebugJava/remoteDebugJavaFunctionApp.ts @@ -33,7 +33,7 @@ export async function remoteDebugJavaFunctionApp(context: IActionContext, node?: }); await vscode.window.withProgress({ location: vscode.ProgressLocation.Window }, async (p: vscode.Progress<{}>) => { - // eslint-disable-next-line @typescript-eslint/no-misused-promises, @typescript-eslint/no-explicit-any, no-async-promise-executor + // eslint-disable-next-line @typescript-eslint/no-explicit-any, no-async-promise-executor return new Promise(async (resolve: (value: unknown) => void, reject: (e: any) => void): Promise => { try { const siteConfig: SiteConfigResource = await client.getSiteConfig(); diff --git a/src/commands/renameAppSetting.ts b/src/commands/renameAppSetting.ts index 81a6e0bdd..654e2c65d 100644 --- a/src/commands/renameAppSetting.ts +++ b/src/commands/renameAppSetting.ts @@ -20,6 +20,6 @@ export async function renameAppSetting(context: IFunctionAppWizardContext, node? const parent = node.parent.parent; - await showEolWarningIfNecessary(context, nonNullValue(parent)) + await showEolWarningIfNecessary(context, nonNullValue(parent)); await node.rename(context); } diff --git a/src/constants-nls.ts b/src/constants-nls.ts index 299509992..b51cc513d 100644 --- a/src/constants-nls.ts +++ b/src/constants-nls.ts @@ -1,3 +1,8 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + import { localize } from "./localize"; export const viewOutput: string = localize('viewOutput', 'View Output'); @@ -21,4 +26,4 @@ export const getInvalidLengthMessage = (lowerLimitIncl?: number, upperLimitIncl? } else { return localize('invalidBetweenInputLength', 'The value must be between {0} and {1} characters long.', lowerLimitIncl, upperLimitIncl); } -} +}; diff --git a/src/constants.ts b/src/constants.ts index a281b5426..9ad9e204d 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -76,7 +76,7 @@ export enum JavaBuildTool { gradle = 'gradle' } -export const ballerinaTomlFileName: string = "Ballerina.toml" +export const ballerinaTomlFileName: string = "Ballerina.toml"; export enum BallerinaBackend { jvm = 'jvm', native = 'native' @@ -174,14 +174,14 @@ export const mcpSelfHostedConfigurationProfile: string = 'mcp-custom-handler'; */ export const nodeDefaultModelVersion: number = 4; const nodeDefaultModel: IAzureQuickPickItem = { data: nodeDefaultModelVersion, label: localize('modelV4', 'Model V4') }; -const nodeV3Model: IAzureQuickPickItem = { data: undefined, label: localize('modelV3', 'Model V3') } +const nodeV3Model: IAzureQuickPickItem = { data: undefined, label: localize('modelV3', 'Model V3') }; export const nodeModels = [nodeDefaultModel, nodeV3Model]; export const nodeLearnMoreLink = 'https://aka.ms/AzFuncNodeV4'; export const pythonDefaultModelVersion: number = 2; const pythonV2Model: IAzureQuickPickItem = { data: pythonDefaultModelVersion, label: localize('pyModelV2', 'Model V2') }; -const pythonV1Model: IAzureQuickPickItem = { data: undefined, label: localize('pyModelV1', 'Model V1') } +const pythonV1Model: IAzureQuickPickItem = { data: undefined, label: localize('pyModelV1', 'Model V1') }; export const pythonModels = [pythonV2Model, pythonV1Model]; export const pythonLearnMoreLink = 'https://aka.ms/AAmlyrc'; diff --git a/src/debug/FuncTaskProvider.ts b/src/debug/FuncTaskProvider.ts index e583003e9..68f20e143 100644 --- a/src/debug/FuncTaskProvider.ts +++ b/src/debug/FuncTaskProvider.ts @@ -90,7 +90,7 @@ export class FuncTaskProvider implements TaskProvider { context.errorHandling.suppressDisplay = true; context.telemetry.suppressIfSuccessful = true; - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + const command: string | undefined = task.definition.command; if (command && task.scope !== undefined && task.scope !== TaskScope.Global && task.scope !== TaskScope.Workspace) { const folder: WorkspaceFolder = task.scope; @@ -150,7 +150,7 @@ export class FuncTaskProvider implements TaskProvider { debugProvider = this._javaDebugProvider; break; case ProjectLanguage.Ballerina: - debugProvider = this._ballerinaDebugProvider + debugProvider = this._ballerinaDebugProvider; break; case ProjectLanguage.PowerShell: debugProvider = this._powershellDebugProvider; diff --git a/src/debug/JavaDebugProvider.ts b/src/debug/JavaDebugProvider.ts index b29ca9eac..fc3823a82 100644 --- a/src/debug/JavaDebugProvider.ts +++ b/src/debug/JavaDebugProvider.ts @@ -24,7 +24,7 @@ export class JavaDebugProvider extends FuncDebugProviderBase { protected readonly defaultPortOrPipeName: number = defaultJavaDebugPort; protected readonly debugConfig: DebugConfiguration = javaDebugConfig; - // eslint-disable-next-line @typescript-eslint/require-await + public async getWorkerArgValue(folder: WorkspaceFolder): Promise { const port: string | number = this.getDebugPortOrPipeName(folder); return `-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=${port}`; diff --git a/src/debug/NodeDebugProvider.ts b/src/debug/NodeDebugProvider.ts index 28825b3aa..3ee1e9b7e 100644 --- a/src/debug/NodeDebugProvider.ts +++ b/src/debug/NodeDebugProvider.ts @@ -24,7 +24,7 @@ export class NodeDebugProvider extends FuncDebugProviderBase { protected readonly defaultPortOrPipeName: number = defaultNodeDebugPort; protected readonly debugConfig: DebugConfiguration = nodeDebugConfig; - // eslint-disable-next-line @typescript-eslint/require-await + public async getWorkerArgValue(folder: WorkspaceFolder): Promise { const port: string | number = this.getDebugPortOrPipeName(folder); return `--inspect=${port}`; diff --git a/src/debug/PowerShellDebugProvider.ts b/src/debug/PowerShellDebugProvider.ts index a12d88575..f153a1ed2 100644 --- a/src/debug/PowerShellDebugProvider.ts +++ b/src/debug/PowerShellDebugProvider.ts @@ -24,7 +24,7 @@ export class PowerShellDebugProvider extends FuncDebugProviderBase { protected defaultPortOrPipeName: string | number = defaultCustomPipeName; protected readonly debugConfig: DebugConfiguration = powershellDebugConfig; - // eslint-disable-next-line @typescript-eslint/require-await + public async getWorkerArgValue(folder: WorkspaceFolder): Promise { const port: string | number = this.getDebugPortOrPipeName(folder); return String(port); diff --git a/src/debug/storageProviders/validateDTSConnectionPreDebug.ts b/src/debug/storageProviders/validateDTSConnectionPreDebug.ts index 090a51aef..dadbdb084 100644 --- a/src/debug/storageProviders/validateDTSConnectionPreDebug.ts +++ b/src/debug/storageProviders/validateDTSConnectionPreDebug.ts @@ -35,7 +35,7 @@ export async function validateDTSConnectionPreDebug(context: IActionContext, pro newDTSHubConnectionSettingValue: dtsHubConnection, }); - const wizard: AzureWizard = new AzureWizard(wizardContext, { + const wizard = new AzureWizard(wizardContext, { title: localize('acquireDTSConnection', 'Acquire DTS connection'), promptSteps: [new DTSConnectionListStep(availableDebugConnectionTypes)], }); diff --git a/src/debug/storageProviders/validateNetheriteConnectionPreDebug.ts b/src/debug/storageProviders/validateNetheriteConnectionPreDebug.ts index 0cf797194..dd62e3855 100644 --- a/src/debug/storageProviders/validateNetheriteConnectionPreDebug.ts +++ b/src/debug/storageProviders/validateNetheriteConnectionPreDebug.ts @@ -37,7 +37,7 @@ export async function validateNetheriteConnectionPreDebug(context: IActionContex suggestedNamespaceLocalSettings: parseEventHubsNamespaceName(eventHubsConnection), }); - const wizard: AzureWizard = new AzureWizard(wizardContext, { + const wizard = new AzureWizard(wizardContext, { title: localize('prepareNetheriteDebug', 'Prepare Netherite debug configuration'), promptSteps: [new EventHubsConnectionListStep(availableDebugConnectionTypes)], showLoadingPrompt: true, diff --git a/src/debug/storageProviders/validateSQLConnectionPreDebug.ts b/src/debug/storageProviders/validateSQLConnectionPreDebug.ts index 2c77e13ea..e6666ea7f 100644 --- a/src/debug/storageProviders/validateSQLConnectionPreDebug.ts +++ b/src/debug/storageProviders/validateSQLConnectionPreDebug.ts @@ -32,7 +32,7 @@ export async function validateSQLConnectionPreDebug(context: IActionContext, pro newSQLStorageConnectionSettingValue: sqlDbConnectionValue, }; - const wizard: AzureWizard = new AzureWizard(wizardContext, { + const wizard = new AzureWizard(wizardContext, { title: localize('prepareSqlDbConnectionDebug', 'Prepare SQL database debug connection'), promptSteps: [new SqlConnectionListStep(availableDebugConnectionTypes)], showLoadingPrompt: true, diff --git a/src/debug/storageProviders/validateStorageConnectionPreDebug.ts b/src/debug/storageProviders/validateStorageConnectionPreDebug.ts index dca0d46ce..e342d4cf2 100644 --- a/src/debug/storageProviders/validateStorageConnectionPreDebug.ts +++ b/src/debug/storageProviders/validateStorageConnectionPreDebug.ts @@ -30,7 +30,7 @@ export async function validateStorageConnectionPreDebug(context: IActionContext, newStorageConnectionSettingKey: storageConnectionKey, }); - const wizard: AzureWizard = new AzureWizard(wizardContext, { + const wizard = new AzureWizard(wizardContext, { promptSteps: [new StorageConnectionListStep(availableDebugConnectionTypes)], }); diff --git a/src/debug/validatePreDebug.ts b/src/debug/validatePreDebug.ts index 65da60375..e5dce1551 100644 --- a/src/debug/validatePreDebug.ts +++ b/src/debug/validatePreDebug.ts @@ -170,7 +170,7 @@ async function validateEmulatorIsRunning(context: IActionContext, projectPath: s try { const client = BlobServiceClient.fromConnectionString(azureWebJobsStorage, { retryOptions: { maxTries: 1 } }); await client.getProperties(); - } catch (error) { + } catch (_error) { // azurite.azurite Check to see if azurite extension is installed const azuriteExtension = vscode.extensions.getExtension('azurite.azurite'); const installOrRun: vscode.MessageItem = azuriteExtension ? { title: localize('runAzurite', 'Run Emulator') } : { title: localize('installAzurite', 'Install Azurite') }; diff --git a/src/downloadAzureProject/setupProjectFolder.ts b/src/downloadAzureProject/setupProjectFolder.ts index 8862b7b4c..9b6ab0bb3 100644 --- a/src/downloadAzureProject/setupProjectFolder.ts +++ b/src/downloadAzureProject/setupProjectFolder.ts @@ -7,7 +7,7 @@ import { type HostKeys } from '@azure/arm-appservice'; import { createHttpHeaders } from '@azure/core-rest-pipeline'; import { parseAzureResourceId, type AzExtRequestPrepareOptions } from '@microsoft/vscode-azext-azureutils'; import { AzExtFsExtra, parseError, type IActionContext } from '@microsoft/vscode-azext-utils'; -import * as extract from 'extract-zip'; +import extract from 'extract-zip'; import * as querystring from 'querystring'; import * as vscode from 'vscode'; import { initProjectForVSCode } from '../commands/initProjectForVSCode/initProjectForVSCode'; @@ -57,7 +57,7 @@ export async function setupProjectFolder(uri: vscode.Uri, vsCodeFilePathUri: vsc const projectFilePathUri: vscode.Uri = vscode.Uri.joinPath(vsCodeFilePathUri, `${functionAppName}`); const projectFilePath: string = projectFilePathUri.fsPath; const devContainerFolderPathUri: vscode.Uri = vscode.Uri.joinPath(projectFilePathUri, '.devcontainer'); - // eslint-disable-next-line @typescript-eslint/no-unsafe-call + await extract(downloadFilePath, { dir: projectFilePath }); await requestUtils.downloadFile( context, diff --git a/src/extension.ts b/src/extension.ts index 47be7118f..7e6e65da4 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -47,9 +47,10 @@ import { listLocalProjects } from './workspace/listLocalProjects'; const emulatorClient = new DockerDurableTaskSchedulerEmulatorClient(new ShellContainerClient()); -export async function activateInternal(context: vscode.ExtensionContext, perfStats: { loadStartTime: number; loadEndTime: number }, ignoreBundle?: boolean): Promise { +export async function activateInternal(context: vscode.ExtensionContext, perfStats: { loadStartTime: number; loadEndTime: number }): Promise { + console.log('**********************************************'); + console.log('Activating Azure Functions extension...'); ext.context = context; - ext.ignoreBundle = ignoreBundle; ext.outputChannel = createAzExtOutputChannel('Azure Functions', ext.prefix); context.subscriptions.push(ext.outputChannel); @@ -75,6 +76,7 @@ export async function activateInternal(context: vscode.ExtensionContext, perfSta const templateProvider = new CentralTemplateProvider(); ext.templateProvider.registerExtensionVariable(templateProvider); + console.log('Registered CentralTemplateProvider in extension variables.'); context.subscriptions.push(templateProvider); // Suppress "Report an Issue" button for all errors in favor of the command @@ -135,6 +137,9 @@ export async function activateInternal(context: vscode.ExtensionContext, perfSta new DurableTaskSchedulerWorkspaceDataBranchProvider(emulatorClient)); }); + console.log('Activated Azure Functions extension...'); + console.log('**********************************************'); + return createApiProvider([{ revealTreeItem, createFunction: createFunctionFromApi, diff --git a/src/extensionVariables.ts b/src/extensionVariables.ts index 51c6094ad..992293965 100644 --- a/src/extensionVariables.ts +++ b/src/extensionVariables.ts @@ -61,7 +61,7 @@ export namespace ext { export let rgApiV2: AzureResourcesExtensionApi; export let eventGridProvider: EventGridCodeLensProvider; export let currentExecutingFunctionNode: FunctionTreeItemBase | IFunction | undefined; - export const fileToFunctionNodeMap: Map = new Map(); + export const fileToFunctionNodeMap = new Map(); export let isExecutingFunction: boolean | undefined; } diff --git a/src/funcConfig/function.ts b/src/funcConfig/function.ts index 97b9b0707..72ace8da8 100644 --- a/src/funcConfig/function.ts +++ b/src/funcConfig/function.ts @@ -37,17 +37,17 @@ export class ParsedFunctionJson { public readonly data: IFunctionJson; public readonly template: IFunctionTemplate | undefined; - // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any public constructor(data: any) { - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + if (typeof data === 'object' && data !== null && (data.triggerType !== undefined)) { this.template = data; this.data = {}; } - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + else if (typeof data === 'object' && data !== null && (data.bindings === undefined || data.bindings instanceof Array)) { this.data = data; - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + } else { this.data = {}; } diff --git a/src/funcCoreTools/funcHostTask.ts b/src/funcCoreTools/funcHostTask.ts index 26557be2e..5de790ae4 100644 --- a/src/funcCoreTools/funcHostTask.ts +++ b/src/funcCoreTools/funcHostTask.ts @@ -25,7 +25,7 @@ interface DotnetDebugDebugConfiguration extends vscode.DebugConfiguration { namespace DotnetDebugDebugConfiguration { export function is(debugConfiguration: vscode.DebugConfiguration): debugConfiguration is DotnetDebugDebugConfiguration { - return debugConfiguration.type === 'coreclr' && 'launchServiceData' in debugConfiguration + return debugConfiguration.type === 'coreclr' && 'launchServiceData' in debugConfiguration; } } @@ -34,7 +34,7 @@ class RunningFunctionTaskMap { public set(key: vscode.WorkspaceFolder | vscode.TaskScope, value: IRunningFuncTask): void { const values = this._map.get(key) || []; - values.push(value) + values.push(value); this._map.set(key, values); } @@ -43,8 +43,8 @@ class RunningFunctionTaskMap { return values.find(t => { const taskExecution = t.taskExecution.task.execution as vscode.ShellExecution; // the cwd will include ${workspaceFolder} from our tasks.json so we need to replace it with the actual path - const taskDirectory = taskExecution.options?.cwd?.replace('${workspaceFolder}', (t.taskExecution.task?.scope as vscode.WorkspaceFolder).uri?.path) - buildPath = buildPath?.replace('${workspaceFolder}', (t.taskExecution.task?.scope as vscode.WorkspaceFolder).uri?.path) + const taskDirectory = taskExecution.options?.cwd?.replace('${workspaceFolder}', (t.taskExecution.task?.scope as vscode.WorkspaceFolder).uri?.path); + buildPath = buildPath?.replace('${workspaceFolder}', (t.taskExecution.task?.scope as vscode.WorkspaceFolder).uri?.path); return taskDirectory && buildPath && normalizePath(taskDirectory) === normalizePath(buildPath); }); } @@ -58,7 +58,7 @@ class RunningFunctionTaskMap { } public delete(key: vscode.WorkspaceFolder | vscode.TaskScope, buildPath?: string): void { - const value = this.get(key, buildPath) + const value = this.get(key, buildPath); const values = this._map.get(key) || []; if (value) { @@ -112,16 +112,16 @@ export function registerFuncHostTaskEvents(): void { // Used to stop the task started with pickFuncProcess.ts startFuncProcessFromApi. if (DotnetDebugDebugConfiguration.is(debugSession.configuration) && debugSession.configuration.launchServiceData.buildPath) { - const buildPathUri: vscode.Uri = vscode.Uri.file(debugSession.configuration.launchServiceData.buildPath) + const buildPathUri: vscode.Uri = vscode.Uri.file(debugSession.configuration.launchServiceData.buildPath); - const workspaceFolder = buildPathToWorkspaceFolderMap.get(debugSession.configuration.launchServiceData.buildPath) + const workspaceFolder = buildPathToWorkspaceFolderMap.get(debugSession.configuration.launchServiceData.buildPath); if (workspaceFolder === undefined) { throw new Error(localize('noWorkspaceFolderForBuildPath', 'No workspace folder found for path "{0}".', buildPathUri.fsPath)); } await stopFuncTaskIfRunning(workspaceFolder, buildPathUri.fsPath, false, false); - buildPathToWorkspaceFolderMap.delete(debugSession.configuration.launchServiceData.buildPath) + buildPathToWorkspaceFolderMap.delete(debugSession.configuration.launchServiceData.buildPath); } // NOTE: Only stop the func task if this is the root debug session (aka does not have a parentSession) to fix https://github.com/microsoft/vscode-azurefunctions/issues/2925 @@ -144,9 +144,9 @@ export async function stopFuncTaskIfRunning(workspaceFolder: vscode.WorkspaceFol if (runningFuncTask !== undefined && runningFuncTask.length > 0) { for (const runningFuncTaskItem of runningFuncTask) { - if (!runningFuncTaskItem) break; + if (!runningFuncTaskItem) {break;} if (terminate) { - runningFuncTaskItem.taskExecution.terminate() + runningFuncTaskItem.taskExecution.terminate(); } else { // Try to find the real func process by port first, fall back to shell PID await killFuncProcessByPortOrPid(runningFuncTaskItem, workspaceFolder); @@ -178,7 +178,7 @@ async function killFuncProcessByPortOrPid(runningFuncTask: IRunningFuncTask, wor } throw new Error(`Could not find func process for port ${runningFuncTask.portNumber}`); - } catch (error) { + } catch (_error) { // don't look for the port and just terminate the whole process await stopFuncTaskIfRunning(workspaceFolder, undefined, true, true); } @@ -270,7 +270,7 @@ async function findPidByPort(port: string | number): Promise } } } - } catch (error) { + } catch (_error) { // ignore error } diff --git a/src/funcCoreTools/getBrewPackageName.ts b/src/funcCoreTools/getBrewPackageName.ts index 21dee7190..7028ffcf7 100644 --- a/src/funcCoreTools/getBrewPackageName.ts +++ b/src/funcCoreTools/getBrewPackageName.ts @@ -35,7 +35,7 @@ async function isBrewPackageInstalled(packageName: string): Promise { try { await cpUtils.executeCommand(undefined, undefined, 'brew', 'ls', packageName); return true; - } catch (error) { + } catch (_error) { return false; } } diff --git a/src/funcCoreTools/getFuncPackageManagers.ts b/src/funcCoreTools/getFuncPackageManagers.ts index 64dc9deee..53036b0b5 100644 --- a/src/funcCoreTools/getFuncPackageManagers.ts +++ b/src/funcCoreTools/getFuncPackageManagers.ts @@ -17,11 +17,13 @@ export async function getFuncPackageManagers(isFuncInstalled: boolean): Promise< // Always check for npm (mac, windows, linux) try { - isFuncInstalled ? - await cpUtils.executeCommand(undefined, undefined, 'npm', 'ls', '-g', funcPackageName) : + if (isFuncInstalled) { + await cpUtils.executeCommand(undefined, undefined, 'npm', 'ls', '-g', funcPackageName); + } else { await cpUtils.executeCommand(undefined, undefined, 'npm', '--version'); + } result.push(PackageManager.npm); - } catch (error) { + } catch (_error) { // an error indicates no npm } @@ -40,7 +42,7 @@ async function hasBrew(isFuncInstalled: boolean): Promise { try { await cpUtils.executeCommand(undefined, undefined, 'brew', '--version'); return true; - } catch (error) { + } catch (_error) { // an error indicates no brew } } diff --git a/src/funcCoreTools/hasMinFuncCliVersion.ts b/src/funcCoreTools/hasMinFuncCliVersion.ts index 7aed89b84..927509a9f 100644 --- a/src/funcCoreTools/hasMinFuncCliVersion.ts +++ b/src/funcCoreTools/hasMinFuncCliVersion.ts @@ -1,7 +1,6 @@ - /*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. + * Licensed under the MIT License. See LICENSE.md in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { type IActionContext } from '@microsoft/vscode-azext-utils'; diff --git a/src/funcCoreTools/tryGetLocalFuncVersion.ts b/src/funcCoreTools/tryGetLocalFuncVersion.ts index f68170682..0f00f162a 100644 --- a/src/funcCoreTools/tryGetLocalFuncVersion.ts +++ b/src/funcCoreTools/tryGetLocalFuncVersion.ts @@ -13,7 +13,7 @@ export async function tryGetLocalFuncVersion(context: IActionContext, workspaceP if (version) { return tryParseFuncVersion(version); } - } catch (err) { + } catch (_err) { // swallow errors and return undefined } diff --git a/src/funcCoreTools/validateFuncCoreToolsInstalled.ts b/src/funcCoreTools/validateFuncCoreToolsInstalled.ts index 8b8acc195..55dc3eb69 100644 --- a/src/funcCoreTools/validateFuncCoreToolsInstalled.ts +++ b/src/funcCoreTools/validateFuncCoreToolsInstalled.ts @@ -100,7 +100,7 @@ export async function funcToolsInstalled(context: IActionContext, workspacePath: const funcCliPath = await getFuncCliPath(context, workspacePath); await cpUtils.executeCommand(undefined, workspacePath, funcCliPath, '--version'); return true; - } catch (error) { + } catch (_error) { return false; } } diff --git a/src/templates/CentralTemplateProvider.ts b/src/templates/CentralTemplateProvider.ts index ca5b1fa73..64914d479 100644 --- a/src/templates/CentralTemplateProvider.ts +++ b/src/templates/CentralTemplateProvider.ts @@ -69,7 +69,7 @@ export class CentralTemplateProvider implements Disposable { if (isPythonV2Plus(language, languageModel)) { providers.push(new PysteinTemplateProvider(version, projectPath, language, projectTemplateKey)); } else if (isNodeV4Plus({ language, languageModel })) { - providers.push(new NodeV4Provider(version, projectPath, language, projectTemplateKey)) + providers.push(new NodeV4Provider(version, projectPath, language, projectTemplateKey)); } else { providers.push(new ScriptTemplateProvider(version, projectPath, language, projectTemplateKey)); if (version !== FuncVersion.v1) { diff --git a/src/templates/FunctionV2Template.ts b/src/templates/FunctionV2Template.ts index e69de29bb..e3bc44b4c 100644 --- a/src/templates/FunctionV2Template.ts +++ b/src/templates/FunctionV2Template.ts @@ -0,0 +1,5 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See LICENSE.md in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + diff --git a/src/templates/TemplateProviderBase.ts b/src/templates/TemplateProviderBase.ts index 54ee4547d..03f4c9a96 100644 --- a/src/templates/TemplateProviderBase.ts +++ b/src/templates/TemplateProviderBase.ts @@ -124,12 +124,12 @@ export abstract class TemplateProviderBase implements Disposable { return ext.context.asAbsolutePath(path.join('resources', 'backupTemplates', this.backupSubpath)); } - // eslint-disable-next-line @typescript-eslint/require-await + protected async getCacheKeySuffix(): Promise { return ''; } - // eslint-disable-next-line @typescript-eslint/require-await + private async getBackupVersionPath(): Promise { return path.join(this.getBackupPath(), 'version.txt'); } @@ -179,7 +179,7 @@ export abstract class TemplateProviderBase implements Disposable { public async getProjKey(context: IActionContext & Partial): Promise { // if user has already selected template, rely on project wizard rather than project settings if (context.projectTemplateKey) { - return context.projectTemplateKey + return context.projectTemplateKey; } if (!this.refreshProjKey) { diff --git a/src/templates/dotnet/DotnetTemplateProvider.ts b/src/templates/dotnet/DotnetTemplateProvider.ts index 57c624bec..f83c2fbd9 100644 --- a/src/templates/dotnet/DotnetTemplateProvider.ts +++ b/src/templates/dotnet/DotnetTemplateProvider.ts @@ -135,7 +135,7 @@ export class DotnetTemplateProvider extends TemplateProviderBase { const projKey = await this.getProjKey(context); const files: string[] = [getDotnetProjectTemplatePath(context, this.version, projKey), getDotnetItemTemplatePath(context, this.version, projKey)]; for (const file of files) { - await AzExtFsExtra.copy(this.convertToBackupFilePath(projKey, file), file, { overwrite: true }) + await AzExtFsExtra.copy(this.convertToBackupFilePath(projKey, file), file, { overwrite: true }); } return await this.parseTemplates(context, projKey); } @@ -152,7 +152,7 @@ export class DotnetTemplateProvider extends TemplateProviderBase { return path.join(this.getBackupPath(), projKey, path.basename(file)); } - // eslint-disable-next-line @typescript-eslint/require-await + public async cacheTemplates(context: IActionContext): Promise { const projKey = await this.getProjKey(context); await this.updateCachedValue(projKey, this._rawTemplates); diff --git a/src/templates/dotnet/parseDotnetTemplates.ts b/src/templates/dotnet/parseDotnetTemplates.ts index dadef5b22..b7adeeec6 100644 --- a/src/templates/dotnet/parseDotnetTemplates.ts +++ b/src/templates/dotnet/parseDotnetTemplates.ts @@ -99,7 +99,7 @@ export async function parseDotnetTemplates(rawTemplates: object[], version: Func for (const rawTemplate of rawTemplates) { try { functionTemplates.push(parseDotnetTemplate(rawTemplate)); - } catch (error) { + } catch (_error) { // Ignore errors so that a single poorly formed template does not affect other templates } } diff --git a/src/templates/java/JavaTemplateProvider.ts b/src/templates/java/JavaTemplateProvider.ts index bbccdcfac..47bd49989 100644 --- a/src/templates/java/JavaTemplateProvider.ts +++ b/src/templates/java/JavaTemplateProvider.ts @@ -70,7 +70,7 @@ export class JavaTemplateProvider extends ScriptTemplateProvider { return true; } - // eslint-disable-next-line @typescript-eslint/require-await + protected async getCacheKeySuffix(): Promise { return 'Java'; } diff --git a/src/templates/script/NodeV4Provider.ts b/src/templates/script/NodeV4Provider.ts index a83308dcd..33ce4abca 100644 --- a/src/templates/script/NodeV4Provider.ts +++ b/src/templates/script/NodeV4Provider.ts @@ -59,7 +59,7 @@ export class NodeV4Provider extends TemplateProviderBase { public includeTemplate(template: IFunctionTemplate | IBindingTemplate): boolean { return this.isFunctionTemplate(template) && template.language === this.language - && !!template.triggerType + && !!template.triggerType; } protected async parseTemplates(rootPath: string): Promise { diff --git a/src/templates/script/PysteinTemplateProvider.ts b/src/templates/script/PysteinTemplateProvider.ts index 899e131b7..0626131ed 100644 --- a/src/templates/script/PysteinTemplateProvider.ts +++ b/src/templates/script/PysteinTemplateProvider.ts @@ -27,8 +27,8 @@ export class PysteinTemplateProvider extends ScriptBundleTemplateProvider { } protected _resources: { en: { [key: string]: string } }; - protected _rawTemplates: RawTemplateV2[]; - protected _rawBindings: object[]; + declare protected _rawTemplates: RawTemplateV2[]; + declare protected _rawBindings: object[]; protected _language: string; public async getLatestTemplates(context: IActionContext, latestTemplateVersion: string): Promise { @@ -43,7 +43,7 @@ export class PysteinTemplateProvider extends ScriptBundleTemplateProvider { functionTemplates: parseScriptTemplates(this._rawTemplates, this._rawBindings, this._resources), // no bindings for V2 schema bindingTemplates: [] - } + }; } public async getBackupTemplates(): Promise { @@ -55,7 +55,7 @@ export class PysteinTemplateProvider extends ScriptBundleTemplateProvider { return { functionTemplates: parseScriptTemplates(this._rawTemplates, this._rawBindings, this._resources), bindingTemplates: [] - } + }; } public includeTemplate(template: FunctionTemplateBase | IBindingTemplate): boolean { diff --git a/src/templates/script/ScriptTemplateProvider.ts b/src/templates/script/ScriptTemplateProvider.ts index 0f8eeface..46d75d4ba 100644 --- a/src/templates/script/ScriptTemplateProvider.ts +++ b/src/templates/script/ScriptTemplateProvider.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { AzExtFsExtra, type IActionContext } from '@microsoft/vscode-azext-utils'; -import * as extract from 'extract-zip'; +import extract from 'extract-zip'; import * as path from 'path'; import { FuncVersion } from '../../FuncVersion'; import { ext } from '../../extensionVariables'; @@ -81,14 +81,14 @@ export class ScriptTemplateProvider extends TemplateProviderBase { } } - // eslint-disable-next-line @typescript-eslint/require-await + public async cacheTemplates(): Promise { await this.updateCachedValue(this._templatesKey, this._rawTemplates); await this.updateCachedValue(this._bindingsKey, this._rawBindings); await this.updateCachedValue(this._resourcesKey, this._rawResources); } - // eslint-disable-next-line @typescript-eslint/require-await + public async clearCachedTemplates(): Promise { await this.deleteCachedValue(this._templatesKey); await this.deleteCachedValue(this._bindingsKey); diff --git a/src/templates/script/parseScriptTemplatesV2.ts b/src/templates/script/parseScriptTemplatesV2.ts index ceab0da47..b2f87227a 100644 --- a/src/templates/script/parseScriptTemplatesV2.ts +++ b/src/templates/script/parseScriptTemplatesV2.ts @@ -112,7 +112,7 @@ export function parseScriptTemplates(rawTemplates: RawTemplateV2[], rawBindings: const parsedActions: ParsedAction[] = []; for (const action of job.actions) { - const parsedAction = templateV2.actions.find(a => a.name.toLowerCase() === action.toLowerCase()) + const parsedAction = templateV2.actions.find(a => a.name.toLowerCase() === action.toLowerCase()); if (parsedAction) { parsedActions.push(parsedAction); } diff --git a/src/tree/FunctionTreeItemBase.ts b/src/tree/FunctionTreeItemBase.ts index 643830923..dc492c983 100644 --- a/src/tree/FunctionTreeItemBase.ts +++ b/src/tree/FunctionTreeItemBase.ts @@ -15,7 +15,7 @@ import { ProjectResource, getProjectContextValue } from './projectContextValues' export abstract class FunctionTreeItemBase extends AzExtTreeItem { - public readonly parent: FunctionsTreeItemBase; + declare public readonly parent: FunctionsTreeItemBase; public readonly project: IProjectTreeItem; public readonly function: FunctionBase; private _disabled: boolean; diff --git a/src/tree/FunctionsTreeItemBase.ts b/src/tree/FunctionsTreeItemBase.ts index f776f9c43..2de6735b5 100644 --- a/src/tree/FunctionsTreeItemBase.ts +++ b/src/tree/FunctionsTreeItemBase.ts @@ -12,7 +12,7 @@ import { getProjectContextValue, ProjectAccess, ProjectResource } from './projec export abstract class FunctionsTreeItemBase extends AzExtParentTreeItem { public readonly label: string = localize('Functions', 'Functions'); public readonly childTypeLabel: string = localize('Function', 'Function'); - public parent: AzExtParentTreeItem & IProjectTreeItem; + declare public readonly parent: AzExtParentTreeItem & IProjectTreeItem; public suppressMaskLabel: boolean = true; public abstract isReadOnly: boolean; diff --git a/src/tree/ResolvedFunctionAppBase.ts b/src/tree/ResolvedFunctionAppBase.ts index 6269967a9..2cd4d8f04 100644 --- a/src/tree/ResolvedFunctionAppBase.ts +++ b/src/tree/ResolvedFunctionAppBase.ts @@ -38,7 +38,7 @@ export abstract class ResolvedFunctionAppBase implements ResolvedAppResourceBase data: this.data, label: this.name, getData: () => this.getData(), - } + }; } public async getData(): Promise { @@ -55,7 +55,7 @@ export abstract class ResolvedFunctionAppBase implements ResolvedAppResourceBase public abstract getVersion(context: IActionContext): Promise; public async getHostRequest(): Promise { - return { url: nonNullValueAndProp(this.site, 'defaultHostUrl') } + return { url: nonNullValueAndProp(this.site, 'defaultHostUrl') }; } public getDefaultHostUrl(): string { diff --git a/src/tree/ResolvedFunctionAppResource.ts b/src/tree/ResolvedFunctionAppResource.ts index 7b3b83066..484f72814 100644 --- a/src/tree/ResolvedFunctionAppResource.ts +++ b/src/tree/ResolvedFunctionAppResource.ts @@ -31,7 +31,7 @@ export function isResolvedFunctionApp(ti: unknown): ti is ResolvedFunctionAppRes export class ResolvedFunctionAppResource extends ResolvedFunctionAppBase implements ResolvedAppResourceBase { protected _site: ParsedSite | undefined = undefined; - public data: Site; + declare public data: Site; public dataModel: FunctionAppModel; private _subscription: ISubscriptionContext; @@ -212,7 +212,7 @@ export class ResolvedFunctionAppResource extends ResolvedFunctionAppBase impleme let data: any; try { await this.initSite(context); - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + data = JSON.parse((await getFile(context, this.site, 'site/wwwroot/host.json')).data); } catch { // ignore and use default @@ -302,7 +302,7 @@ export class ResolvedFunctionAppResource extends ResolvedFunctionAppBase impleme return children; } - // eslint-disable-next-line @typescript-eslint/require-await + public async pickTreeItemImpl(expectedContextValues: (string | RegExp)[]): Promise { return await callWithTelemetryAndErrorHandling('functionApp.pickTreeItem', async (context: IActionContext) => { await this.initSite(context); @@ -366,7 +366,7 @@ export class ResolvedFunctionAppResource extends ResolvedFunctionAppBase impleme try { const appSettings: StringDictionary = await client.listApplicationSettings(); return [runFromPackageKey, 'WEBSITE_RUN_FROM_ZIP'].some(key => appSettings.properties && envUtils.isEnvironmentVariableSet(appSettings.properties[key])); - } catch (error) { + } catch (_error) { // if we can't read the app settings, just assume that this is read-only return true; } diff --git a/src/tree/SlotTreeItem.ts b/src/tree/SlotTreeItem.ts index ec7b4b31f..4649cedaa 100644 --- a/src/tree/SlotTreeItem.ts +++ b/src/tree/SlotTreeItem.ts @@ -13,7 +13,7 @@ import { ProjectSource } from './projectContextValues'; import { type RemoteFunctionTreeItem } from './remoteProject/RemoteFunctionTreeItem'; export function isSlotTreeItem(treeItem: SlotTreeItem | RemoteFunctionTreeItem | AzExtParentTreeItem): treeItem is SlotTreeItem { - return !!(treeItem as SlotTreeItem).contextValue.includes('FunctionApp;') + return !!(treeItem as SlotTreeItem).contextValue.includes('FunctionApp;'); } export class SlotTreeItem extends SlotContainerTreeItemBase { diff --git a/src/tree/SlotsTreeItem.ts b/src/tree/SlotsTreeItem.ts index 788edf055..08ad3f1e2 100644 --- a/src/tree/SlotsTreeItem.ts +++ b/src/tree/SlotsTreeItem.ts @@ -18,7 +18,7 @@ export class SlotsTreeItem extends AzExtParentTreeItem { public readonly contextValue: string = SlotsTreeItem.contextValue; public readonly label: string = localize('slots', 'Slots'); public readonly childTypeLabel: string = localize('slot', 'Slot'); - public readonly parent: SlotTreeItem; + declare public readonly parent: SlotTreeItem; public suppressMaskLabel: boolean = true; private _nextLink: string | undefined; diff --git a/src/tree/SubscriptionTreeItem.ts b/src/tree/SubscriptionTreeItem.ts index 3ac93d30d..588a56455 100644 --- a/src/tree/SubscriptionTreeItem.ts +++ b/src/tree/SubscriptionTreeItem.ts @@ -88,9 +88,9 @@ export class SubscriptionTreeItem extends SubscriptionTreeItemBase { getWorkspaceSettingFromAnyFolder(projectLanguageSetting); // Ensure all the providers are registered before const registerProvidersTask = registerProviders(context, subscription); - const { wizardContext, promptSteps, executeSteps } = await createCreateFunctionAppComponents(context, subscription.subscription, language) + const { wizardContext, promptSteps, executeSteps } = await createCreateFunctionAppComponents(context, subscription.subscription, language); const title: string = localize('functionAppCreatingTitle', 'Create new Function App in Azure'); - const wizard: AzureWizard = new AzureWizard(wizardContext, { + const wizard = new AzureWizard(wizardContext, { promptSteps, executeSteps, title, @@ -101,7 +101,7 @@ export class SubscriptionTreeItem extends SubscriptionTreeItemBase { await wizard.prompt(); // if the providers aren't registered yet, await it here because it is required by this point await registerProvidersTask; - wizardContext.activityTitle = localize('functionAppCreateActivityTitle', 'Create Function App "{0}"', nonNullProp(wizardContext, 'newSiteName')) + wizardContext.activityTitle = localize('functionAppCreateActivityTitle', 'Create Function App "{0}"', nonNullProp(wizardContext, 'newSiteName')); // only disable shared key access if the user is using a managed identity and a flex consumption plan since other app service plans // and containerized function still rely on connection strings wizardContext.disableSharedKeyAccess = wizardContext.useManagedIdentity && wizardContext.useFlexConsumptionPlan; @@ -110,7 +110,7 @@ export class SubscriptionTreeItem extends SubscriptionTreeItemBase { let node: SlotTreeItem | ContainerTreeItem; if (context.dockerfilePath) { - const resolved = new ResolvedContainerizedFunctionAppResource(subscription.subscription, nonNullProp(wizardContext, 'site')) + const resolved = new ResolvedContainerizedFunctionAppResource(subscription.subscription, nonNullProp(wizardContext, 'site')); node = new ContainerTreeItem(subscription, resolved); } else { const resolved = new ResolvedFunctionAppResource(subscription.subscription, nonNullProp(wizardContext, 'site')); diff --git a/src/tree/containerizedFunctionApp/AppSettingsClient.ts b/src/tree/containerizedFunctionApp/AppSettingsClient.ts index 8bb130f8a..337179e53 100644 --- a/src/tree/containerizedFunctionApp/AppSettingsClient.ts +++ b/src/tree/containerizedFunctionApp/AppSettingsClient.ts @@ -42,7 +42,7 @@ export class ContainerAppSettingsClient implements IAppSettingsClient { } public async listApplicationSettings(): Promise { - return await this._client.webApps.listApplicationSettings(this._resourceGroup, this._siteName) + return await this._client.webApps.listApplicationSettings(this._resourceGroup, this._siteName); } public async updateApplicationSettings(appSettings: StringDictionary): Promise { diff --git a/src/tree/containerizedFunctionApp/ContainerFunctionTreeItem.ts b/src/tree/containerizedFunctionApp/ContainerFunctionTreeItem.ts index ff4d9829f..39c2f2ad6 100644 --- a/src/tree/containerizedFunctionApp/ContainerFunctionTreeItem.ts +++ b/src/tree/containerizedFunctionApp/ContainerFunctionTreeItem.ts @@ -14,7 +14,7 @@ import { type ContainerFunctionItem } from "./ContainerFunctionItem"; import { type ContainerFunctionsTreeItem } from "./ContainerFunctionsTreeItem"; export class ContainerFunctionTreeItem extends FunctionTreeItemBase { - public readonly parent: ContainerFunctionsTreeItem; + declare public readonly parent: ContainerFunctionsTreeItem; public constructor(parent: ContainerFunctionsTreeItem, func: ContainerFunctionItem) { super(parent, func); @@ -31,7 +31,7 @@ export class ContainerFunctionTreeItem extends FunctionTreeItemBase { return { data: this.rawConfig, label: this.function.name, - } + }; } public get contextValue(): string { diff --git a/src/tree/containerizedFunctionApp/ContainerFunctionsTreeItem.ts b/src/tree/containerizedFunctionApp/ContainerFunctionsTreeItem.ts index 57028cc1a..7c9e860e8 100644 --- a/src/tree/containerizedFunctionApp/ContainerFunctionsTreeItem.ts +++ b/src/tree/containerizedFunctionApp/ContainerFunctionsTreeItem.ts @@ -7,7 +7,7 @@ import { type FunctionEnvelope, type Site } from "@azure/arm-appservice"; import { createWebSiteClient } from "@microsoft/vscode-azext-azureappservice"; import { uiUtils } from "@microsoft/vscode-azext-azureutils"; import { nonNullProp, nonNullValueAndProp, type AzExtTreeItem, type IActionContext } from "@microsoft/vscode-azext-utils"; -import * as retry from 'p-retry'; +import retry from 'p-retry'; import { ParsedFunctionJson } from "../../funcConfig/function"; import { localize } from "../../localize"; import { FunctionsTreeItemBase } from "../FunctionsTreeItemBase"; diff --git a/src/tree/containerizedFunctionApp/ImageTreeItem.ts b/src/tree/containerizedFunctionApp/ImageTreeItem.ts index a22d789d9..7a4fde1a0 100644 --- a/src/tree/containerizedFunctionApp/ImageTreeItem.ts +++ b/src/tree/containerizedFunctionApp/ImageTreeItem.ts @@ -31,7 +31,7 @@ export class ImageTreeItem extends AzExtParentTreeItem { contextValue: localize('name', 'name'), iconPath: new ThemeIcon('dash') }) - ] + ]; } public hasMoreChildrenImpl(): boolean { diff --git a/src/tree/containerizedFunctionApp/ResolvedContainerizedFunctionAppResource.ts b/src/tree/containerizedFunctionApp/ResolvedContainerizedFunctionAppResource.ts index de729ce1a..a0c7e531b 100644 --- a/src/tree/containerizedFunctionApp/ResolvedContainerizedFunctionAppResource.ts +++ b/src/tree/containerizedFunctionApp/ResolvedContainerizedFunctionAppResource.ts @@ -89,7 +89,7 @@ export class ResolvedContainerizedFunctionAppResource extends ResolvedFunctionAp } public async isReadOnly(): Promise { - return true + return true; } public async getHostJson(context: IActionContext): Promise { @@ -119,7 +119,7 @@ export class ResolvedContainerizedFunctionAppResource extends ResolvedFunctionAp result = version || latestGAVersion; this._cachedVersion = result; } - return result + return result; } public async getApplicationSettings(context: IActionContext): Promise { @@ -149,7 +149,7 @@ export class ResolvedContainerizedFunctionAppResource extends ResolvedFunctionAp contextValuesToAdd: ['azFunc', 'container'], }); - const children: AzExtTreeItem[] = [this._functionsTreeItem, this.appSettingsTreeItem, this._imageTreeItem,] + const children: AzExtTreeItem[] = [this._functionsTreeItem, this.appSettingsTreeItem, this._imageTreeItem,]; return children; } @@ -190,7 +190,7 @@ export class ResolvedContainerizedFunctionAppResource extends ResolvedFunctionAp } } - return undefined + return undefined; } public compareChildrenImpl(): number { diff --git a/src/tree/durableTaskScheduler/ContainerClient.ts b/src/tree/durableTaskScheduler/ContainerClient.ts index 02886d24f..754ef775e 100644 --- a/src/tree/durableTaskScheduler/ContainerClient.ts +++ b/src/tree/durableTaskScheduler/ContainerClient.ts @@ -96,7 +96,7 @@ export class ShellContainerClient implements ContainerClient { try { return await command(); } - catch (error) { + catch (_error) { throw new Error(localize('containerRuntimeError', 'Unable to perform container command. Is a container runtime installed and running?')); } } diff --git a/src/tree/durableTaskScheduler/DurableTaskHubResourceModel.ts b/src/tree/durableTaskScheduler/DurableTaskHubResourceModel.ts index 66d670e53..09e5fb04c 100644 --- a/src/tree/durableTaskScheduler/DurableTaskHubResourceModel.ts +++ b/src/tree/durableTaskScheduler/DurableTaskHubResourceModel.ts @@ -57,7 +57,7 @@ export class DurableTaskHubResourceModel implements DurableTaskSchedulerModel, D async getTreeItem(): Promise { - const treeItem = new TreeItem(this.name) + const treeItem = new TreeItem(this.name); treeItem.iconPath = treeUtils.getIconPath('durableTaskScheduler/DurableTaskScheduler'); treeItem.contextValue = 'azFunc.dts.taskHub;azFunc.dts.taskHubDashboard'; diff --git a/src/tree/durableTaskScheduler/DurableTaskSchedulerClient.ts b/src/tree/durableTaskScheduler/DurableTaskSchedulerClient.ts index 17cd1aa07..86ab328b6 100644 --- a/src/tree/durableTaskScheduler/DurableTaskSchedulerClient.ts +++ b/src/tree/durableTaskScheduler/DurableTaskSchedulerClient.ts @@ -214,7 +214,7 @@ export class HttpDurableTaskSchedulerClient implements DurableTaskSchedulerClien return { asyncOperation: response.headers.get('Azure-AsyncOperation') ?? undefined - } + }; } private async getAsJson(url: string, authentication: AzureAuthentication): Promise { @@ -246,7 +246,7 @@ export class HttpDurableTaskSchedulerClient implements DurableTaskSchedulerClien return { asyncOperation: response.headers.get('Azure-AsyncOperation') ?? undefined, value - } + }; } private async fetch(options: FetchOptions): Promise { diff --git a/src/tree/durableTaskScheduler/DurableTaskSchedulerEmulatorsWorkspaceResourceModel.ts b/src/tree/durableTaskScheduler/DurableTaskSchedulerEmulatorsWorkspaceResourceModel.ts index ee2f0c9e3..73268236d 100644 --- a/src/tree/durableTaskScheduler/DurableTaskSchedulerEmulatorsWorkspaceResourceModel.ts +++ b/src/tree/durableTaskScheduler/DurableTaskSchedulerEmulatorsWorkspaceResourceModel.ts @@ -22,7 +22,7 @@ export class DurableTaskSchedulerEmulatorsWorkspaceResourceModel implements Dura this.getEmulatorsTask = this.emulatorClient.getEmulators(); try { - const emulators = await this.getEmulatorsTask + const emulators = await this.getEmulatorsTask; return emulators.map(emulator => new DurableTaskSchedulerEmulatorWorkspaceResourceModel(emulator)); } diff --git a/src/tree/durableTaskScheduler/DurableTaskSchedulerErrorWorkspaceResourceModel.ts b/src/tree/durableTaskScheduler/DurableTaskSchedulerErrorWorkspaceResourceModel.ts index 5aadecf50..822f723db 100644 --- a/src/tree/durableTaskScheduler/DurableTaskSchedulerErrorWorkspaceResourceModel.ts +++ b/src/tree/durableTaskScheduler/DurableTaskSchedulerErrorWorkspaceResourceModel.ts @@ -15,7 +15,7 @@ export class DurableTaskSchedulerErrorWorkspaceResourceModel implements DurableT const treeItem = new TreeItem(this.error); treeItem.contextValue = 'azFunc.dts.emulatorError'; - treeItem.iconPath = new ThemeIcon('warning') + treeItem.iconPath = new ThemeIcon('warning'); return treeItem; } diff --git a/src/tree/durableTaskScheduler/DurableTaskSchedulerResourceModel.ts b/src/tree/durableTaskScheduler/DurableTaskSchedulerResourceModel.ts index afc5f1f7d..46dad3f19 100644 --- a/src/tree/durableTaskScheduler/DurableTaskSchedulerResourceModel.ts +++ b/src/tree/durableTaskScheduler/DurableTaskSchedulerResourceModel.ts @@ -3,13 +3,13 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { type ViewPropertiesModel, type AzureResource, type AzureResourceModel } from "@microsoft/vscode-azureresources-api"; -import { type DurableTaskSchedulerModel } from "./DurableTaskSchedulerModel"; -import { type DurableTaskSchedulerResource, type DurableTaskSchedulerClient } from "./DurableTaskSchedulerClient"; -import { DurableTaskHubResourceModel } from "./DurableTaskHubResourceModel"; +import { type AzureResource, type AzureResourceModel, type ViewPropertiesModel } from "@microsoft/vscode-azureresources-api"; +import retry from 'p-retry'; import { TreeItem, TreeItemCollapsibleState } from "vscode"; import { localize } from '../../localize'; -import * as retry from 'p-retry'; +import { DurableTaskHubResourceModel } from "./DurableTaskHubResourceModel"; +import { type DurableTaskSchedulerClient, type DurableTaskSchedulerResource } from "./DurableTaskSchedulerClient"; +import { type DurableTaskSchedulerModel } from "./DurableTaskSchedulerModel"; export class DurableTaskSchedulerResourceModel implements DurableTaskSchedulerModel, AzureResourceModel { public constructor( @@ -26,7 +26,6 @@ export class DurableTaskSchedulerResourceModel implements DurableTaskSchedulerMo // NOTE: The DTS RP may return a 500 when getting task hubs for a just-deleted scheduler. // In the case of such a failure, just wait a moment and try again. - const taskHubs = await retry( () => this.schedulerClient.getSchedulerTaskHubs(this.resource.subscription, this.resource.resourceGroup as string, this.resource.name), { diff --git a/src/tree/localProject/InitLocalProjectTreeItem.ts b/src/tree/localProject/InitLocalProjectTreeItem.ts index 3d1847ac0..81f4e0524 100644 --- a/src/tree/localProject/InitLocalProjectTreeItem.ts +++ b/src/tree/localProject/InitLocalProjectTreeItem.ts @@ -23,7 +23,7 @@ export class InitLocalProjectTreeItem extends LocalProjectTreeItemBase { return false; } - // eslint-disable-next-line @typescript-eslint/require-await + public async loadMoreChildrenImpl(_clearCache: boolean): Promise { const ti: GenericTreeItem = new GenericTreeItem(this, { contextValue: 'initProject', diff --git a/src/tree/localProject/InvalidLocalProjectTreeItem.ts b/src/tree/localProject/InvalidLocalProjectTreeItem.ts index b4404b62c..ec22be4d4 100644 --- a/src/tree/localProject/InvalidLocalProjectTreeItem.ts +++ b/src/tree/localProject/InvalidLocalProjectTreeItem.ts @@ -21,7 +21,7 @@ export class InvalidLocalProjectTreeItem extends LocalProjectTreeItemBase { return false; } - // eslint-disable-next-line @typescript-eslint/require-await + public async loadMoreChildrenImpl(_clearCache: boolean): Promise { throw this._projectError; } diff --git a/src/tree/localProject/LocalFunctionTreeItem.ts b/src/tree/localProject/LocalFunctionTreeItem.ts index 0fc24812a..b5fed3a9e 100644 --- a/src/tree/localProject/LocalFunctionTreeItem.ts +++ b/src/tree/localProject/LocalFunctionTreeItem.ts @@ -9,7 +9,7 @@ import { FunctionTreeItemBase } from '../FunctionTreeItemBase'; import { type LocalFunctionsTreeItem } from './LocalFunctionsTreeItem'; export class LocalFunctionTreeItem extends FunctionTreeItemBase { - public readonly parent: LocalFunctionsTreeItem; + declare public readonly parent: LocalFunctionsTreeItem; public readonly functionJsonPath: string | undefined; private constructor(parent: LocalFunctionsTreeItem, localFunction: ILocalFunction) { diff --git a/src/tree/localProject/LocalFunctionsTreeItem.ts b/src/tree/localProject/LocalFunctionsTreeItem.ts index fa5583cd2..95927059c 100644 --- a/src/tree/localProject/LocalFunctionsTreeItem.ts +++ b/src/tree/localProject/LocalFunctionsTreeItem.ts @@ -19,7 +19,7 @@ export class ProjectNotRunningError extends Error { } export class LocalFunctionsTreeItem extends FunctionsTreeItemBase { - public readonly parent: LocalProjectTreeItem; + declare public readonly parent: LocalProjectTreeItem; public isReadOnly: boolean; public constructor(parent: LocalProjectTreeItem) { @@ -44,7 +44,7 @@ export class LocalFunctionsTreeItem extends FunctionsTreeItemBase { children.push(new InvalidTreeItem(this, invalidLocalFunction.error, { label: invalidLocalFunction.name, contextValue: 'azFuncInvalidLocalFunction' - })) + })); } if (this.parent.preCompiledProjectPath) { @@ -92,6 +92,6 @@ export class LocalFunctionsTreeItem extends FunctionsTreeItemBase { export async function getFunctionFolders(context: IActionContext, projectPath: string): Promise { return await telemetryUtils.runWithDurationTelemetry(context, 'getFuncs', async () => { const funcJsonUris = await findFiles(projectPath, `*/${functionJsonFileName}`); - return funcJsonUris.map(uri => path.basename(path.dirname(uri.fsPath))) + return funcJsonUris.map(uri => path.basename(path.dirname(uri.fsPath))); }); } diff --git a/src/tree/localProject/LocalProjectTreeItem.ts b/src/tree/localProject/LocalProjectTreeItem.ts index ab0f4c35e..677eb1793 100644 --- a/src/tree/localProject/LocalProjectTreeItem.ts +++ b/src/tree/localProject/LocalProjectTreeItem.ts @@ -88,7 +88,7 @@ export class LocalProjectTreeItem extends LocalProjectTreeItemBase implements Di return false; } - // eslint-disable-next-line @typescript-eslint/require-await + public async loadMoreChildrenImpl(_clearCache: boolean): Promise { return [this._localFunctionsTreeItem, this._localSettingsTreeItem]; } diff --git a/src/tree/projectContextValues.ts b/src/tree/projectContextValues.ts index 91133789a..345d272a2 100644 --- a/src/tree/projectContextValues.ts +++ b/src/tree/projectContextValues.ts @@ -1,7 +1,6 @@ - /*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See LICENSE.md in the project root for license information. + * Licensed under the MIT License. See LICENSE in the project root for license information. *--------------------------------------------------------------------------------------------*/ const contextValueSeparator: string = ';'; diff --git a/src/tree/remoteProject/ManagedIdentityTreeItem.ts b/src/tree/remoteProject/ManagedIdentityTreeItem.ts index 4804a01ca..b872e1f4f 100644 --- a/src/tree/remoteProject/ManagedIdentityTreeItem.ts +++ b/src/tree/remoteProject/ManagedIdentityTreeItem.ts @@ -14,7 +14,7 @@ import { UserAssignedIdentitiesTreeItem } from './UserAssignedIdentitiesTreeItem export class ManagedIdentityTreeItem extends AzExtParentTreeItem { public readonly label: string = localize('Identity', 'Identity'); public static contextValue: string = 'azFuncManagedIdentity'; - public readonly parent: SlotTreeItem; + declare public readonly parent: SlotTreeItem; public readonly site: ParsedSite; public suppressMaskLabel: boolean = true; diff --git a/src/tree/remoteProject/RemoteFunctionTreeItem.ts b/src/tree/remoteProject/RemoteFunctionTreeItem.ts index fe3e9b52e..b25ef7ca2 100644 --- a/src/tree/remoteProject/RemoteFunctionTreeItem.ts +++ b/src/tree/remoteProject/RemoteFunctionTreeItem.ts @@ -17,7 +17,7 @@ import { type RemoteFunction } from './RemoteFunction'; import { type RemoteFunctionsTreeItem } from './RemoteFunctionsTreeItem'; export class RemoteFunctionTreeItem extends FunctionTreeItemBase { - public readonly parent: RemoteFunctionsTreeItem; + declare public readonly parent: RemoteFunctionsTreeItem; private constructor(parent: RemoteFunctionsTreeItem, func: RemoteFunction) { super(parent, func, false); @@ -42,7 +42,7 @@ export class RemoteFunctionTreeItem extends FunctionTreeItemBase { return { data: this.rawConfig, label: this.function.name, - } + }; } public async deleteTreeItemImpl(context: IActionContext): Promise { diff --git a/src/tree/remoteProject/RemoteFunctionsTreeItem.ts b/src/tree/remoteProject/RemoteFunctionsTreeItem.ts index 4d83e5197..47731ddca 100644 --- a/src/tree/remoteProject/RemoteFunctionsTreeItem.ts +++ b/src/tree/remoteProject/RemoteFunctionsTreeItem.ts @@ -5,7 +5,7 @@ import { type FunctionEnvelope } from '@azure/arm-appservice'; import { nonNullProp, type AzExtTreeItem, type IActionContext } from '@microsoft/vscode-azext-utils'; -import * as retry from 'p-retry'; +import retry from 'p-retry'; import { ParsedFunctionJson } from '../../funcConfig/function'; import { localize } from '../../localize'; import { FunctionsTreeItemBase } from '../FunctionsTreeItemBase'; @@ -14,7 +14,7 @@ import { RemoteFunction } from './RemoteFunction'; import { RemoteFunctionTreeItem, getFunctionNameFromId } from './RemoteFunctionTreeItem'; export class RemoteFunctionsTreeItem extends FunctionsTreeItemBase { - public readonly parent: SlotTreeItem; + declare public readonly parent: SlotTreeItem; public isReadOnly: boolean; private _nextLink: string | undefined; diff --git a/src/tree/remoteProject/SystemIdentityTreeItemBase.ts b/src/tree/remoteProject/SystemIdentityTreeItemBase.ts index 7c3b79f68..7f727cdf0 100644 --- a/src/tree/remoteProject/SystemIdentityTreeItemBase.ts +++ b/src/tree/remoteProject/SystemIdentityTreeItemBase.ts @@ -21,7 +21,7 @@ export async function createSystemIdentityTreeItem(context: IActionContext, pare class SystemIdentityTreeItem extends AzExtParentTreeItem { public readonly identity: Identity; - public readonly parent: ManagedIdentityTreeItem; + declare public readonly parent: ManagedIdentityTreeItem; public static contextValue: string = 'systemIdentity'; public state: string; @@ -47,7 +47,7 @@ class SystemIdentityTreeItem extends AzExtParentTreeItem { } public get id(): string { - return `${this.parent.id}/${this.state}` + return `${this.parent.id}/${this.state}`; } public get label(): string { @@ -79,7 +79,7 @@ class DisabledIdentityTreeItem extends AzExtTreeItem { } public get id(): string { - return `${this.parent.id}/${this.state}` + return `${this.parent.id}/${this.state}`; } public get label(): string { diff --git a/src/tree/remoteProject/UserAssignedIdentitiesTreeItem.ts b/src/tree/remoteProject/UserAssignedIdentitiesTreeItem.ts index 9e993055a..1c5931062 100644 --- a/src/tree/remoteProject/UserAssignedIdentitiesTreeItem.ts +++ b/src/tree/remoteProject/UserAssignedIdentitiesTreeItem.ts @@ -12,7 +12,7 @@ import { UserAssignedIdentityTreeItem } from './UserAssignedIdentityTreeItem'; export class UserAssignedIdentitiesTreeItem extends AzExtParentTreeItem { public readonly label: string = localize('userAssignedIdentities', 'User Assigned'); - public readonly parent: SlotTreeItem; + declare public readonly parent: SlotTreeItem; public isReadOnly: boolean; public readonly contextValue: string = 'userAssignedIdentities'; public get id(): string { diff --git a/src/tree/remoteProject/UserAssignedIdentityTreeItem.ts b/src/tree/remoteProject/UserAssignedIdentityTreeItem.ts index 2613d853d..82758e30c 100644 --- a/src/tree/remoteProject/UserAssignedIdentityTreeItem.ts +++ b/src/tree/remoteProject/UserAssignedIdentityTreeItem.ts @@ -35,7 +35,7 @@ export class UserAssignedIdentityTreeItem extends AzExtParentTreeItem { } public hasMoreChildrenImpl(): boolean { - return false + return false; } public get id(): string { diff --git a/src/utils/azure.ts b/src/utils/azure.ts index 8b0eb4074..2695bc458 100644 --- a/src/utils/azure.ts +++ b/src/utils/azure.ts @@ -7,7 +7,6 @@ import { AppKind, type IAppServiceWizardContext } from '@microsoft/vscode-azext- import { VerifyProvidersStep } from '@microsoft/vscode-azext-azureutils'; import { AzureWizard, type AzureWizardExecuteStep, type IActionContext, type IAzureQuickPickItem } from '@microsoft/vscode-azext-utils'; import { isArray } from 'util'; -import { type IFunctionAppWizardContext } from '../commands/createFunctionApp/IFunctionAppWizardContext'; import { webProvider } from '../constants'; import { localize } from '../localize'; import { type ICreateFunctionAppContext, type SubscriptionTreeItem } from '../tree/SubscriptionTreeItem'; @@ -45,7 +44,7 @@ export async function registerProviders(context: ICreateFunctionAppContext, subs const storageProvider = 'Microsoft.Storage'; const providerExecuteSteps: AzureWizardExecuteStep[] = [new VerifyProvidersStep([webProvider, storageProvider, 'Microsoft.Insights', 'Microsoft.OperationalInsights'])]; - const providerWizard: AzureWizard = new AzureWizard(providerContext, { executeSteps: providerExecuteSteps }); + const providerWizard = new AzureWizard(providerContext, { executeSteps: providerExecuteSteps }); await providerWizard.execute(); } diff --git a/src/utils/azureClients.ts b/src/utils/azureClients.ts index b9ffe3703..2648b3163 100644 --- a/src/utils/azureClients.ts +++ b/src/utils/azureClients.ts @@ -10,15 +10,11 @@ import { type EventHubManagementClient } from '@azure/arm-eventhub'; import { type ResourceGraphClient } from '@azure/arm-resourcegraph'; import { type ServiceBusManagementClient } from '@azure/arm-servicebus'; import { type SqlManagementClient } from '@azure/arm-sql'; -import { type StorageManagementClient } from '@azure/arm-storage'; import { createAzureClient, createAzureSubscriptionClient, type AzExtClientContext } from '@microsoft/vscode-azext-azureutils'; // Lazy-load @azure packages to improve startup performance. // NOTE: The client is the only import that matters, the rest of the types disappear when compiled to JavaScript -export async function createStorageClient(context: AzExtClientContext): Promise { - return createAzureClient(context, (await import('@azure/arm-storage')).StorageManagementClient); -} export async function createCosmosDBClient(context: AzExtClientContext): Promise { return createAzureClient(context, (await import('@azure/arm-cosmosdb')).CosmosDBManagementClient); diff --git a/src/utils/ballerinaUtils.ts b/src/utils/ballerinaUtils.ts index 4d4af87b3..463c3ac82 100644 --- a/src/utils/ballerinaUtils.ts +++ b/src/utils/ballerinaUtils.ts @@ -25,7 +25,7 @@ export namespace ballerinaUtils { unlinkSync(mainBalPath); const devContainerPath: string = `${context.projectPath}/.devcontainer.json`; unlinkSync(devContainerPath); - } catch (error) { + } catch (_error) { handleBallerinaNotFoundErr(context); } } diff --git a/src/utils/bundleFeedUtils.ts b/src/utils/bundleFeedUtils.ts index e35c0190a..bea945faa 100644 --- a/src/utils/bundleFeedUtils.ts +++ b/src/utils/bundleFeedUtils.ts @@ -76,7 +76,7 @@ export namespace bundleFeedUtils { bindings: `${functionsCdn}${templateVersion}/StaticContent/v2/bindings/userPrompts.json`, userPrompts: `${functionsCdn}${templateVersion}/StaticContent/v2/bindings/userPrompts.json`, resources: `${functionsCdn}${templateVersion}/StaticContent/v2/resources/Resources.{locale}.json`, - } + }; } export function isBundleTemplate(template: FunctionTemplateBase | IBindingTemplate): boolean { diff --git a/src/utils/cliFeedUtils.ts b/src/utils/cliFeedUtils.ts index 6a32fa055..d388e9e9b 100644 --- a/src/utils/cliFeedUtils.ts +++ b/src/utils/cliFeedUtils.ts @@ -67,7 +67,7 @@ export namespace cliFeedUtils { if (cliFeed.tags[newTag]) { tag = newTag; } else { - ext.outputChannel.appendLog(localize('versionWithoutStaging', 'WARNING: Azure Functions v{0} does not support the staging template source. Using default template source instead.', majorVersion)) + ext.outputChannel.appendLog(localize('versionWithoutStaging', 'WARNING: Azure Functions v{0} does not support the staging template source. Using default template source instead.', majorVersion)); } } diff --git a/src/utils/dotnetUtils.ts b/src/utils/dotnetUtils.ts index 97c460415..51973d7b9 100644 --- a/src/utils/dotnetUtils.ts +++ b/src/utils/dotnetUtils.ts @@ -44,7 +44,7 @@ export namespace dotnetUtils { export async function getProjFiles(context: IActionContext, projectLanguage: ProjectLanguage, projectPath: string): Promise { return await telemetryUtils.runWithDurationTelemetry(context, 'getNetProjFiles', async () => { const pattern = projectLanguage === ProjectLanguage.FSharp ? '*.fsproj' : '*.csproj'; - const uris = await findFiles(projectPath, pattern) + const uris = await findFiles(projectPath, pattern); return uris.map(uri => path.basename(uri.fsPath)).filter(f => f.toLowerCase() !== 'extensions.csproj').map(f => new ProjectFile(f, projectPath)); }); } diff --git a/src/utils/getCoreNodeModule.ts b/src/utils/getCoreNodeModule.ts index 40c9e6fa5..e4c65c0d8 100644 --- a/src/utils/getCoreNodeModule.ts +++ b/src/utils/getCoreNodeModule.ts @@ -10,16 +10,16 @@ import * as vscode from 'vscode'; */ export function getCoreNodeModule(moduleName: string): T | undefined { try { - // eslint-disable-next-line @typescript-eslint/no-unsafe-return + return require(`${vscode.env.appRoot}/node_modules.asar/${moduleName}`); - } catch (err) { + } catch (_err) { // ignore } try { - // eslint-disable-next-line @typescript-eslint/no-unsafe-return + return require(`${vscode.env.appRoot}/node_modules/${moduleName}`); - } catch (err) { + } catch (_err) { // ignore } return undefined; diff --git a/src/utils/gitUtils.ts b/src/utils/gitUtils.ts index 2f2ab27ee..bcc398e95 100644 --- a/src/utils/gitUtils.ts +++ b/src/utils/gitUtils.ts @@ -13,7 +13,7 @@ export namespace gitUtils { try { await cpUtils.executeCommand(undefined, workingDirectory, gitCommand, '--version'); return true; - } catch (error) { + } catch (_error) { return false; } } @@ -27,7 +27,7 @@ export namespace gitUtils { try { await cpUtils.executeCommand(undefined, workingDirectory, gitCommand, 'rev-parse', '--git-dir'); return true; - } catch (error) { + } catch (_error) { return false; } } diff --git a/src/utils/gradleUtils.ts b/src/utils/gradleUtils.ts index 259d2425d..3b88127bb 100644 --- a/src/utils/gradleUtils.ts +++ b/src/utils/gradleUtils.ts @@ -14,7 +14,7 @@ export namespace gradleUtils { export async function validateGradleInstalled(context: IActionContext): Promise { try { await cpUtils.executeCommand(undefined, undefined, gradleCommand, '--version'); - } catch (error) { + } catch (_error) { const message: string = localize('gradleNotFound', 'Failed to find "gradle", please ensure that the gradle bin directory is in your system path.'); if (!context.errorHandling.suppressDisplay) { diff --git a/src/utils/mavenUtils.ts b/src/utils/mavenUtils.ts index b2c165ebf..81dd9ea12 100644 --- a/src/utils/mavenUtils.ts +++ b/src/utils/mavenUtils.ts @@ -15,7 +15,7 @@ export namespace mavenUtils { export async function validateMavenInstalled(context: IActionContext): Promise { try { await cpUtils.executeCommand(undefined, undefined, mvnCommand, '--version'); - } catch (error) { + } catch (_error) { const message: string = localize('mvnNotFound', 'Failed to find "maven", please ensure that the maven bin directory is in your system path.'); if (!context.errorHandling.suppressDisplay) { @@ -38,10 +38,10 @@ export namespace mavenUtils { // eslint-disable-next-line @typescript-eslint/no-explicit-any xml2js.parseString(pomString, { explicitArray: false }, (err: any, result: any): void => { if (result && !err) { - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + if (result['project'] && result['project']['properties']) { - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + + resolve(result['project']['properties']['functionAppName'] as string | undefined); return; } diff --git a/src/utils/openUrl.ts b/src/utils/openUrl.ts index 2c9fd9bf5..a1be267bc 100644 --- a/src/utils/openUrl.ts +++ b/src/utils/openUrl.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. See License.md in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import * as open from 'open'; +import open from 'open'; export async function openUrl(url: string): Promise { // Using this functionality is blocked by https://github.com/Microsoft/vscode/issues/85930 diff --git a/src/utils/requestUtils.ts b/src/utils/requestUtils.ts index bf96be30b..37b60c03e 100644 --- a/src/utils/requestUtils.ts +++ b/src/utils/requestUtils.ts @@ -52,7 +52,7 @@ export namespace requestUtils { const response: AzExtPipelineResponse = await client.sendRequest(request); const stream: NodeJS.ReadableStream = nonNullProp(response, 'readableStreamBody'); await new Promise((resolve, reject): void => { - stream.pipe(fse.createWriteStream(filePath).on('finish', resolve).on('error', reject)); + stream.pipe(fse.createWriteStream(filePath).on('finish', () => resolve).on('error', reject)); }); } @@ -76,7 +76,7 @@ export namespace requestUtils { * Converts property name like "function_app_id" to "functionAppId" */ function convertPropertyName(name: string): string { - // eslint-disable-next-line no-constant-condition + while (true) { const match: RegExpMatchArray | null = /_([a-z])/g.exec(name); if (match) { diff --git a/src/utils/treeUtils.ts b/src/utils/treeUtils.ts index 38ea212b0..3a3c5278f 100644 --- a/src/utils/treeUtils.ts +++ b/src/utils/treeUtils.ts @@ -5,17 +5,18 @@ import { type AzExtTreeItem, type TreeItemIconPath } from '@microsoft/vscode-azext-utils'; import * as path from 'path'; +import { IconPath, Uri } from 'vscode'; import { ext } from '../extensionVariables'; export namespace treeUtils { - export function getIconPath(iconName: string): string { - return path.join(getResourcesPath(), `${iconName}.svg`); + export function getIconPath(iconName: string): IconPath { + return Uri.file(path.join(getResourcesPath(), `${iconName}.svg`)); } export function getThemedIconPath(iconName: string): TreeItemIconPath { return { - light: path.join(getResourcesPath(), 'light', `${iconName}.svg`), - dark: path.join(getResourcesPath(), 'dark', `${iconName}.svg`) + light: Uri.file(path.join(getResourcesPath(), 'light', `${iconName}.svg`)), + dark: Uri.file(path.join(getResourcesPath(), 'dark', `${iconName}.svg`)) }; } diff --git a/src/utils/verifyExtensionBundle.ts b/src/utils/verifyExtensionBundle.ts index a84b78e05..6024b2f55 100644 --- a/src/utils/verifyExtensionBundle.ts +++ b/src/utils/verifyExtensionBundle.ts @@ -38,7 +38,7 @@ export async function verifyExtensionBundle(context: IFunctionWizardContext | IB let hostJson: IHostJsonV2; try { hostJson = await AzExtFsExtra.readJSON(hostFilePath); - } catch (error) { + } catch (_error) { context.telemetry.properties.bundleResult = 'failedToParseHostJson'; // ignore error - no need to block create process just to verify bundle return; diff --git a/src/utils/workspace.ts b/src/utils/workspace.ts index 787dad9b0..052456b36 100644 --- a/src/utils/workspace.ts +++ b/src/utils/workspace.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { AzExtFsExtra, UserCancelledError, type IActionContext, type IAzureQuickPickItem } from '@microsoft/vscode-azext-utils'; -import * as globby from 'globby'; +import globby from 'globby'; import * as path from 'path'; import * as vscode from 'vscode'; import { browseItem } from '../constants'; @@ -41,13 +41,13 @@ export async function getRootWorkspaceFolder(): Promise { // Per globby docs: "Note that glob patterns can only contain forward-slashes, not backward-slashes, so if you want to construct a glob pattern from path components, you need to use path.posix.join() instead of path.join()" const posixBase = path.posix.normalize(typeof base === 'string' ? base : base.uri.fsPath).replace(/\\/g, '/'); - const escapedBase = escapeCharacters(posixBase) + const escapedBase = escapeCharacters(posixBase); const fullPattern = path.posix.join(escapedBase, pattern); return (await globby(fullPattern, { ignore: ['**/node_modules/**'] })).map(s => vscode.Uri.file(s)); } function escapeCharacters(nonPattern: string): string { - return nonPattern.replace(/[$^*+?()\[\]\\]/g, '\\$&') + return nonPattern.replace(/[$^*+?()\[\]\\]/g, '\\$&'); } export async function selectWorkspaceFolder(context: IActionContext, placeHolder: string, getSubPath?: (f: vscode.WorkspaceFolder) => string | undefined | Promise): Promise { diff --git a/src/vsCodeConfig/settings.ts b/src/vsCodeConfig/settings.ts index 180139c25..db6555eb0 100644 --- a/src/vsCodeConfig/settings.ts +++ b/src/vsCodeConfig/settings.ts @@ -122,7 +122,7 @@ export function isKnownWorkerRuntime(runtime: string | undefined): boolean { export function promptToUpdateDotnetRuntime(azureRuntime: string | undefined, localRuntime: string | undefined): boolean { return azureRuntime === 'dotnet' && localRuntime === 'dotnet-isolated' || - azureRuntime === 'dotnet-isolated' && localRuntime === 'dotnet' + azureRuntime === 'dotnet-isolated' && localRuntime === 'dotnet'; } export function getFuncWatchProblemMatcher(language: string | undefined): string { diff --git a/src/vsCodeConfig/verifyPythonVenv.ts b/src/vsCodeConfig/verifyPythonVenv.ts index 66bacfec0..b45fff058 100644 --- a/src/vsCodeConfig/verifyPythonVenv.ts +++ b/src/vsCodeConfig/verifyPythonVenv.ts @@ -31,7 +31,7 @@ export async function verifyPythonVenv(projectPath: string, context: IActionCont context.telemetry.properties.verifyConfigResult = 'update'; const wizardContext: IPythonVenvWizardContext = { ...context, version, venvName, projectPath, suppressSkipVenv: true }; - const wizard: AzureWizard = new AzureWizard(wizardContext, { + const wizard = new AzureWizard(wizardContext, { promptSteps: [new PythonAliasListStep()], executeSteps: [new PythonVenvCreateStep()], title: localize('createVenv', 'Create virtual environment') diff --git a/src/workspace/LocalProject.ts b/src/workspace/LocalProject.ts index e8659c682..e5530e339 100644 --- a/src/workspace/LocalProject.ts +++ b/src/workspace/LocalProject.ts @@ -23,7 +23,7 @@ export class LocalProject implements LocalProjectInternal { public async getHostJson(): Promise { const version: FuncVersion = await this.getVersion(); - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any const data = await AzExtFsExtra.readJSON(path.join(this.options.effectiveProjectPath, hostFileName)); return parseHostJson(data, version); } diff --git a/src/workspace/listLocalFunctions.ts b/src/workspace/listLocalFunctions.ts index 7879be5b8..229b4c11c 100644 --- a/src/workspace/listLocalFunctions.ts +++ b/src/workspace/listLocalFunctions.ts @@ -44,7 +44,7 @@ export async function listLocalFunctions(project: LocalProjectInternal): Promise const result: ListLocalFunctionsResult = { functions: [], invalidFunctions: [] - } + }; const functions: string[] = await getFunctionFolders(context, project.options.effectiveProjectPath); for (const func of functions) { diff --git a/src/workspace/listLocalProjects.ts b/src/workspace/listLocalProjects.ts index 8362bd034..81fbb27dc 100644 --- a/src/workspace/listLocalProjects.ts +++ b/src/workspace/listLocalProjects.ts @@ -77,7 +77,7 @@ export async function listLocalProjects(): Promise { error, projectPath, workspaceFolder - }) + }); } } } @@ -87,7 +87,7 @@ export async function listLocalProjects(): Promise { // Result is non-null because we are rethrowing errors above // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - return result! + return result!; } type CompiledProjectInfo = { compiledProjectPath: string; isIsolated: boolean }; diff --git a/test/ParsedFunctionJson.test.ts b/test/ParsedFunctionJson.test.ts index 204aa9893..4575a6062 100644 --- a/test/ParsedFunctionJson.test.ts +++ b/test/ParsedFunctionJson.test.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; -import { HttpAuthLevel, ParsedFunctionJson } from '../extension.bundle'; +import { HttpAuthLevel, ParsedFunctionJson } from '../src/funcConfig/function'; suite('ParsedFunctionJson', () => { test('null', () => { diff --git a/test/addParallelSuite.ts b/test/addParallelSuite.ts index dc790c5b3..52dcf4501 100644 --- a/test/addParallelSuite.ts +++ b/test/addParallelSuite.ts @@ -3,7 +3,8 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { delay, nonNullProp } from '../extension.bundle'; +import { delay } from '../src/utils/delay'; +import { nonNullProp } from '../src/utils/nonNull'; import { cleanTestWorkspace, longRunningTestsEnabled } from './global.test'; export interface ParallelTest { diff --git a/test/api.test.ts b/test/api.test.ts index 78de34b0d..562abcaef 100644 --- a/test/api.test.ts +++ b/test/api.test.ts @@ -4,10 +4,12 @@ *--------------------------------------------------------------------------------------------*/ import { runWithInputs } from '@microsoft/vscode-azext-dev'; -import { type apiUtils } from "@microsoft/vscode-azext-utils"; +import { registerOnActionStartHandler, type apiUtils } from "@microsoft/vscode-azext-utils"; import * as path from 'path'; import { extensions, type Extension } from "vscode"; -import { extensionId, FuncVersion, nonNullValue, ProjectLanguage, registerOnActionStartHandler } from '../extension.bundle'; +import { extensionId, ProjectLanguage } from '../src/constants'; +import { FuncVersion } from '../src/FuncVersion'; +import { nonNullValue } from '../src/utils/nonNull'; // eslint-disable-next-line no-restricted-imports import { type AzureFunctionsExtensionApi } from '../src/vscode-azurefunctions.api'; import { getTestWorkspaceFolder, testFolderPath } from './global.test'; diff --git a/test/convertToValidPackageName.test.ts b/test/convertToValidPackageName.test.ts index 3cbb432db..a4bad7df8 100644 --- a/test/convertToValidPackageName.test.ts +++ b/test/convertToValidPackageName.test.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; -import { convertToValidPackageName } from '../extension.bundle'; +import { convertToValidPackageName } from '../src/commands/createNewProject/ProjectCreateStep/JavaScriptProjectCreateStep'; suite('convertToValidPackageName', () => { const testCases: [string, string, string][] = [ diff --git a/test/createFunction/FunctionTesterBase.ts b/test/createFunction/FunctionTesterBase.ts index 2c0d39c9d..c62c5e821 100644 --- a/test/createFunction/FunctionTesterBase.ts +++ b/test/createFunction/FunctionTesterBase.ts @@ -8,7 +8,12 @@ import { AzExtFsExtra } from '@microsoft/vscode-azext-utils'; import * as assert from 'assert'; import * as path from 'path'; import { type Disposable } from 'vscode'; -import { createFunctionInternal, getRandomHexString, TemplateFilter, type FunctionTemplateBase, type FuncVersion, type ProjectLanguage, type TemplateSource } from '../../extension.bundle'; +import { createFunctionInternal } from '../../src/commands/createFunction/createFunction'; +import { ProjectLanguage, TemplateFilter } from '../../src/constants'; +import { TemplateSource } from '../../src/extensionVariables'; +import { FuncVersion } from '../../src/FuncVersion'; +import { FunctionTemplateBase } from '../../src/templates/IFunctionTemplate'; +import { getRandomHexString } from '../../src/utils/fs'; import { addParallelSuite, type ParallelSuiteOptions, type ParallelTest } from '../addParallelSuite'; import { runForTemplateSource, testFolderPath } from '../global.test'; diff --git a/test/createFunction/createFunction.CSharp.test.ts b/test/createFunction/createFunction.CSharp.test.ts index 00f821834..e165227c4 100644 --- a/test/createFunction/createFunction.CSharp.test.ts +++ b/test/createFunction/createFunction.CSharp.test.ts @@ -5,7 +5,10 @@ import { AzExtFsExtra } from '@microsoft/vscode-azext-utils'; import * as path from 'path'; -import { durableUtils, FuncVersion, ProjectLanguage, type TemplateSource } from '../../extension.bundle'; +import { ProjectLanguage } from '../../src/constants'; +import { TemplateSource } from '../../src/extensionVariables'; +import { FuncVersion } from '../../src/FuncVersion'; +import { durableUtils } from '../../src/utils/durableUtils'; import { backupLatestTemplateSources, isLongRunningVersion } from '../global.test'; import { getRotatingAuthLevel } from '../nightly/getRotatingValue'; import { FunctionTesterBase, type CreateFunctionTestCase } from './FunctionTesterBase'; diff --git a/test/createFunction/createFunction.JavaScript.v1.test.ts b/test/createFunction/createFunction.JavaScript.v1.test.ts index 4e7056338..19638ac35 100644 --- a/test/createFunction/createFunction.JavaScript.v1.test.ts +++ b/test/createFunction/createFunction.JavaScript.v1.test.ts @@ -4,7 +4,9 @@ *--------------------------------------------------------------------------------------------*/ import * as path from 'path'; -import { FuncVersion, ProjectLanguage, type TemplateSource } from '../../extension.bundle'; +import { ProjectLanguage } from '../../src/constants'; +import { TemplateSource } from '../../src/extensionVariables'; +import { FuncVersion } from '../../src/FuncVersion'; import { backupLatestTemplateSources, shouldSkipVersion } from '../global.test'; import { FunctionTesterBase } from './FunctionTesterBase'; diff --git a/test/createFunction/createFunction.Script.v2.test.ts b/test/createFunction/createFunction.Script.v2.test.ts index 8dbc95876..740315d2a 100644 --- a/test/createFunction/createFunction.Script.v2.test.ts +++ b/test/createFunction/createFunction.Script.v2.test.ts @@ -6,7 +6,9 @@ import { AzExtFsExtra } from '@microsoft/vscode-azext-utils'; import * as path from 'path'; import * as vscode from 'vscode'; -import { FuncVersion, ProjectLanguage, durableUtils, funcVersionSetting, projectLanguageSetting } from '../../extension.bundle'; +import { funcVersionSetting, ProjectLanguage, projectLanguageSetting } from '../../src/constants'; +import { FuncVersion } from '../../src/FuncVersion'; +import { durableUtils } from '../../src/utils/durableUtils'; import { backupLatestTemplateSources, isLongRunningVersion } from '../global.test'; import { getRotatingAuthLevel } from '../nightly/getRotatingValue'; import { runWithFuncSetting } from '../runWithSetting'; diff --git a/test/envUtils.test.ts b/test/envUtils.test.ts index f220af486..91261cf94 100644 --- a/test/envUtils.test.ts +++ b/test/envUtils.test.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; -import { envUtils } from '../extension.bundle'; +import { envUtils } from '../src/utils/envUtils'; suite('envUtils', () => { test('isEnvironmentVariableSet', () => { diff --git a/test/fsUtils.test.ts b/test/fsUtils.test.ts index 087fd7532..4b177b05d 100644 --- a/test/fsUtils.test.ts +++ b/test/fsUtils.test.ts @@ -5,7 +5,7 @@ import * as assert from 'assert'; import * as path from 'path'; -import { isPathEqual, isSubpath } from '../extension.bundle'; +import { isPathEqual, isSubpath } from '../src/utils/fs'; suite('fsUtils', () => { test('isPathEqual, posix, true', () => { diff --git a/test/getScriptResourcesLanguage.test.ts b/test/getScriptResourcesLanguage.test.ts index f832fae86..74ee223b2 100644 --- a/test/getScriptResourcesLanguage.test.ts +++ b/test/getScriptResourcesLanguage.test.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; -import { getScriptResourcesLanguage } from '../extension.bundle'; +import { getScriptResourcesLanguage } from '../src/templates/script/getScriptResourcesLanguage'; async function verifyLanguage(vscodeLanguage: string, expected: string): Promise { assert.equal(getScriptResourcesLanguage(vscodeLanguage), expected); diff --git a/test/global.test.ts b/test/global.test.ts index 304462e5d..51c11fcf9 100644 --- a/test/global.test.ts +++ b/test/global.test.ts @@ -3,13 +3,19 @@ * Licensed under the MIT License. See LICENSE.md in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { createTestActionContext, runWithTestActionContext, TestOutputChannel, TestUserInput } from '@microsoft/vscode-azext-dev'; -import { AzExtFsExtra } from '@microsoft/vscode-azext-utils'; +import { TestOutputChannel, TestUserInput } from '@microsoft/vscode-azext-dev'; +import { AzExtFsExtra, IActionContext, parseError, registerOnActionStartHandler } from '@microsoft/vscode-azext-utils'; import * as assert from 'assert'; import * as os from 'os'; import * as path from 'path'; import * as vscode from 'vscode'; -import { CentralTemplateProvider, deploySubpathSetting, envUtils, ext, FuncVersion, funcVersionSetting, getGlobalSetting, getRandomHexString, parseError, preDeployTaskSetting, ProjectLanguage, projectLanguageSetting, pythonVenvSetting, registerOnActionStartHandler, TemplateFilter, templateFilterSetting, TemplateSource, updateGlobalSetting, updateWorkspaceSetting, type IActionContext } from '../extension.bundle'; +import { deploySubpathSetting, funcVersionSetting, preDeployTaskSetting, projectLanguageSetting, pythonVenvSetting, templateFilterSetting } from '../src/constants'; +import { ext, TemplateSource } from '../src/extensionVariables'; +import { FuncVersion } from '../src/FuncVersion'; +import { CentralTemplateProvider } from '../src/templates/CentralTemplateProvider'; +import { envUtils } from '../src/utils/envUtils'; +import { getRandomHexString } from '../src/utils/fs'; +import { getGlobalSetting, updateGlobalSetting, updateWorkspaceSetting } from '../src/vsCodeConfig/settings'; /** * Folder for most tests that do not need a workspace open @@ -54,6 +60,7 @@ suiteSetup(async function (this: Mocha.Context): Promise { } await funcExtension.activate(); // activate the extension before tests begin + this.skip(); ext.outputChannel = new TestOutputChannel(); registerOnActionStartHandler(context => { @@ -64,10 +71,6 @@ suiteSetup(async function (this: Mocha.Context): Promise { // Use prerelease func cli installed from gulp task (unless otherwise specified in env) ext.defaultFuncCliPath = process.env.FUNC_PATH || path.join(os.homedir(), 'tools', 'func', 'func'); - if (!updateBackupTemplates) { - await preLoadTemplates(); - } - // set AzureWebJobsStorage so that it doesn't prompt during tests process.env.AzureWebJobsStorage = 'ignore'; }); @@ -84,36 +87,6 @@ suiteTeardown(async function (this: Mocha.Context): Promise { await updateGlobalSetting(requestTimeoutKey, oldRequestTimeout); }); -/** - * Pre-load templates so that the first related unit test doesn't time out - */ -async function preLoadTemplates(): Promise { - const providers = [ext.templateProvider.get(await createTestActionContext())]; - for (const source of backupLatestTemplateSources) { - const provider = new CentralTemplateProvider(source); - templateProviderMap.set(source, provider); - providers.push(provider); - } - - const tasks: Promise[] = []; - for (const provider of providers) { - await runWithTestActionContext('preLoadTemplates', async context => { - ext.templateProvider.registerActionVariable(provider, context); - for (const version of Object.values(FuncVersion)) { - if (version === FuncVersion.v4) { - // v4 doesn't have templates yet - continue; - } - - for (const language of [ProjectLanguage.JavaScript, ProjectLanguage.CSharp]) { - tasks.push(provider.getFunctionTemplates(context, testWorkspaceFolders[0], language, undefined, version, TemplateFilter.Verified, undefined)); - } - } - }); - } - await Promise.all(tasks); -} - /** * Not worth testing older versions for every build */ diff --git a/test/hasMinFuncCliVersion.test.ts b/test/hasMinFuncCliVersion.test.ts index e056203da..1daf7ba0d 100644 --- a/test/hasMinFuncCliVersion.test.ts +++ b/test/hasMinFuncCliVersion.test.ts @@ -5,7 +5,8 @@ import { createTestActionContext } from '@microsoft/vscode-azext-dev'; import * as assert from 'assert'; -import { FuncVersion, hasMinFuncCliVersion } from '../extension.bundle'; +import { FuncVersion } from '../src/FuncVersion'; +import { hasMinFuncCliVersion } from '../src/funcCoreTools/hasMinFuncCliVersion'; suite('hasMinFuncCliVersion', () => { test('Smaller major version', async () => { diff --git a/test/index.ts b/test/index.ts deleted file mode 100644 index c695e3ae7..000000000 --- a/test/index.ts +++ /dev/null @@ -1,56 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See LICENSE.md in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -import * as globby from 'globby'; -import * as Mocha from 'mocha'; -import * as path from 'path'; -import { envUtils } from '../extension.bundle'; - -export async function run(): Promise { - const options: Mocha.MochaOptions = { - ui: 'tdd', - color: true, - reporter: 'mocha-multi-reporters', - reporterOptions: { - reporterEnabled: 'spec, mocha-junit-reporter', - mochaJunitReporterReporterOptions: { - mochaFile: path.resolve(__dirname, '..', '..', 'test-results.xml') - } - } - }; - - addEnvVarsToMochaOptions(options); - console.log(`Mocha options: ${JSON.stringify(options, undefined, 2)}`); - - const mocha = new Mocha(options); - - let files: string[]; - if (envUtils.isEnvironmentVariableSet(process.env.AZFUNC_UPDATE_BACKUP_TEMPLATES)) { - files = ['updateBackupTemplates.js']; - } else { - files = await globby('**/**.test.js', { cwd: __dirname }) - } - - files.forEach(f => mocha.addFile(path.resolve(__dirname, f))); - - const failures = await new Promise(resolve => mocha.run(resolve)); - if (failures > 0) { - throw new Error(`${failures} tests failed.`); - } -} - -function addEnvVarsToMochaOptions(options: Mocha.MochaOptions): void { - for (const envVar of Object.keys(process.env)) { - const match: RegExpMatchArray | null = envVar.match(/^mocha_(.+)/i); - if (match) { - const [, option] = match; - let value: string | number = process.env[envVar] || ''; - if (typeof value === 'string' && !isNaN(parseInt(value))) { - value = parseInt(value); - } - (options)[option] = value; - } - } -} diff --git a/test/nightly/createProjectAndDeploy.test.ts b/test/nightly/createProjectAndDeploy.test.ts index 169677d80..714f71078 100644 --- a/test/nightly/createProjectAndDeploy.test.ts +++ b/test/nightly/createProjectAndDeploy.test.ts @@ -5,12 +5,17 @@ import { type ServiceClient } from '@azure/core-client'; import { createPipelineRequest } from '@azure/core-rest-pipeline'; +import { createGenericClient } from '@microsoft/vscode-azext-azureutils'; import { TestInput, createTestActionContext, runWithTestActionContext } from '@microsoft/vscode-azext-dev'; -import { AzExtFsExtra } from '@microsoft/vscode-azext-utils'; +import { AzExtFsExtra, nonNullProp } from '@microsoft/vscode-azext-utils'; import * as assert from 'assert'; import * as path from 'path'; import * as vscode from 'vscode'; -import { ProjectLanguage, copyFunctionUrl, createGenericClient, createNewProjectInternal, deployProductionSlot, getRandomAlphanumericString, getRandomHexString, nonNullProp } from '../../extension.bundle'; +import { copyFunctionUrl } from '../../src/commands/copyFunctionUrl'; +import { createNewProjectInternal } from '../../src/commands/createNewProject/createNewProject'; +import { deployProductionSlot } from '../../src/commands/deploy/deploy'; +import { ProjectLanguage } from '../../src/constants'; +import { getRandomAlphanumericString, getRandomHexString } from '../../src/utils/fs'; import { addParallelSuite, runInSeries, type ParallelTest } from '../addParallelSuite'; import { getTestWorkspaceFolder } from '../global.test'; import { NodeModelVersion, PythonModelVersion, defaultTestFuncVersion, getJavaScriptValidateOptions, getPythonValidateOptions, getTypeScriptValidateOptions, validateProject, type IValidateProjectOptions } from '../project/validateProject'; diff --git a/test/nightly/functionAppOperations.test.ts b/test/nightly/functionAppOperations.test.ts index 49681d6c4..34625e876 100644 --- a/test/nightly/functionAppOperations.test.ts +++ b/test/nightly/functionAppOperations.test.ts @@ -6,8 +6,11 @@ import { type Site } from '@azure/arm-appservice'; import { tryGetWebApp } from '@microsoft/vscode-azext-azureappservice'; import { runWithTestActionContext } from '@microsoft/vscode-azext-dev'; +import { DialogResponses } from '@microsoft/vscode-azext-utils'; import * as assert from 'assert'; -import { DialogResponses, createFunctionAppAdvanced, deleteFunctionApp, getRandomHexString } from '../../extension.bundle'; +import { createFunctionAppAdvanced } from '../../src/commands/createFunctionApp/createFunctionApp'; +import { deleteFunctionApp } from '../../src/commands/deleteFunctionApp'; +import { getRandomHexString } from '../../src/utils/fs'; import { cleanTestWorkspace, longRunningTestsEnabled } from '../global.test'; import { getRotatingLocation } from './getRotatingValue'; import { resourceGroupsToDelete, testClient } from './global.nightly.test'; diff --git a/test/nightly/global.nightly.test.ts b/test/nightly/global.nightly.test.ts index faef3621f..d004636a7 100644 --- a/test/nightly/global.nightly.test.ts +++ b/test/nightly/global.nightly.test.ts @@ -6,12 +6,14 @@ import { WebSiteManagementClient } from '@azure/arm-appservice'; import { ResourceManagementClient } from '@azure/arm-resources'; import { createTestActionContext } from '@microsoft/vscode-azext-dev'; -import { AzureAccountTreeItemWithProjects, createAzureClient, ext } from '../../extension.bundle'; import { longRunningTestsEnabled } from '../global.test'; +import { createAzureClient } from '@microsoft/vscode-azext-azureutils'; import { createSubscriptionContext, subscriptionExperience, type ISubscriptionContext } from '@microsoft/vscode-azext-utils'; import { type AzureSubscription } from '@microsoft/vscode-azureresources-api'; import * as vscode from 'vscode'; +import { ext } from '../../src/extensionVariables'; +import { AzureAccountTreeItemWithProjects } from '../../src/tree/AzureAccountTreeItemWithProjects'; export let testClient: WebSiteManagementClient; export let subscriptionContext: ISubscriptionContext; diff --git a/test/nugetUtils.test.ts b/test/nugetUtils.test.ts index 494db0ece..0a792fb09 100644 --- a/test/nugetUtils.test.ts +++ b/test/nugetUtils.test.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; -import { nugetUtils } from '../extension.bundle'; +import { nugetUtils } from '../src/utils/nugetUtils'; suite('nugetUtils.tryGetMaxInRange', () => { interface ITestCase { diff --git a/test/parseJson.test.ts b/test/parseJson.test.ts index 54fc80534..953c31053 100644 --- a/test/parseJson.test.ts +++ b/test/parseJson.test.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; -import { getLineAndColumnFromOffset, parseJson } from '../extension.bundle'; +import { getLineAndColumnFromOffset, parseJson } from '../src/utils/parseJson'; suite('parseJson', () => { test('Valid json', () => { diff --git a/test/project/createAndValidateProject.ts b/test/project/createAndValidateProject.ts index b688db9b9..fb777f19f 100644 --- a/test/project/createAndValidateProject.ts +++ b/test/project/createAndValidateProject.ts @@ -5,8 +5,10 @@ import { type TestActionContext, type TestInput } from '@microsoft/vscode-azext-dev'; import * as path from 'path'; -import { ProjectLanguage, createNewProjectInternal, getRandomHexString, hiddenStacksSetting } from '../../extension.bundle'; // eslint-disable-next-line no-restricted-imports +import { createNewProjectInternal } from '../../src/commands/createNewProject/createNewProject'; +import { hiddenStacksSetting, ProjectLanguage } from '../../src/constants'; +import { getRandomHexString } from '../../src/utils/fs'; import type * as api from '../../src/vscode-azurefunctions.api'; import { testFolderPath } from '../global.test'; import { runWithFuncSetting } from '../runWithSetting'; diff --git a/test/project/createNewProject.test.ts b/test/project/createNewProject.test.ts index 685dc811b..25a101ecc 100644 --- a/test/project/createNewProject.test.ts +++ b/test/project/createNewProject.test.ts @@ -4,7 +4,9 @@ *--------------------------------------------------------------------------------------------*/ import { runWithTestActionContext } from '@microsoft/vscode-azext-dev'; -import { FuncVersion, JavaBuildTool, ProjectLanguage, TemplateSource } from '../../extension.bundle'; +import { JavaBuildTool, ProjectLanguage } from '../../src/constants'; +import { TemplateSource } from '../../src/extensionVariables'; +import { FuncVersion } from '../../src/FuncVersion'; import { addParallelSuite, type ParallelTest } from '../addParallelSuite'; import { backupLatestTemplateSources, runForTemplateSource, shouldSkipVersion } from '../global.test'; import { createAndValidateProject, type ICreateProjectTestOptions } from './createAndValidateProject'; diff --git a/test/project/createNewPythonProject.test.ts b/test/project/createNewPythonProject.test.ts index 11416988e..7e3970fab 100644 --- a/test/project/createNewPythonProject.test.ts +++ b/test/project/createNewPythonProject.test.ts @@ -6,7 +6,8 @@ import { runWithTestActionContext } from '@microsoft/vscode-azext-dev'; import { AzExtFsExtra } from '@microsoft/vscode-azext-utils'; import * as path from 'path'; -import { FuncVersion, getRandomHexString } from '../../extension.bundle'; +import { FuncVersion } from '../../src/FuncVersion'; +import { getRandomHexString } from '../../src/utils/fs'; import { longRunningTestsEnabled, testFolderPath } from '../global.test'; import { runWithFuncSetting } from '../runWithSetting'; import { createAndValidateProject } from './createAndValidateProject'; diff --git a/test/project/initProjectForVSCode.test.ts b/test/project/initProjectForVSCode.test.ts index c1c5f6e38..30f666785 100644 --- a/test/project/initProjectForVSCode.test.ts +++ b/test/project/initProjectForVSCode.test.ts @@ -6,7 +6,10 @@ import { runWithTestActionContext, type TestInput } from '@microsoft/vscode-azext-dev'; import { AzExtFsExtra } from '@microsoft/vscode-azext-utils'; import * as path from 'path'; -import { FuncVersion, getRandomHexString, initProjectForVSCode, JavaBuildTool, ProjectLanguage } from '../../extension.bundle'; +import { initProjectForVSCode } from '../../src/commands/initProjectForVSCode/initProjectForVSCode'; +import { JavaBuildTool, ProjectLanguage } from '../../src/constants'; +import { FuncVersion } from '../../src/FuncVersion'; +import { getRandomHexString } from '../../src/utils/fs'; import { cleanTestWorkspace, testFolderPath } from '../global.test'; import { getBallerinaValidateOptions, getCSharpValidateOptions, getCustomValidateOptions, getFSharpValidateOptions, getJavaScriptValidateOptions, getJavaValidateOptions, getPowerShellValidateOptions, getPythonValidateOptions, getTypeScriptValidateOptions, validateProject, type IValidateProjectOptions } from './validateProject'; diff --git a/test/project/validateProject.ts b/test/project/validateProject.ts index 41928b5a9..b14c75177 100644 --- a/test/project/validateProject.ts +++ b/test/project/validateProject.ts @@ -6,9 +6,14 @@ import { AzExtFsExtra } from '@microsoft/vscode-azext-utils'; import * as assert from 'assert'; import * as fse from 'fs-extra'; -import * as globby from 'globby'; +import globby from 'globby'; import * as path from 'path'; -import { FuncVersion, JavaBuildTool, ProjectLanguage, extensionId, getContainingWorkspace, type IExtensionsJson, type ILaunchJson, type ITasksJson } from '../../extension.bundle'; +import { JavaBuildTool, ProjectLanguage, extensionId } from '../../src/constants'; +import { FuncVersion } from '../../src/FuncVersion'; +import { getContainingWorkspace } from '../../src/utils/workspace'; +import { IExtensionsJson } from '../../src/vsCodeConfig/extensions'; +import { ILaunchJson } from '../../src/vsCodeConfig/launch'; +import { ITasksJson } from '../../src/vsCodeConfig/tasks'; export const defaultTestFuncVersion: FuncVersion = FuncVersion.v4; diff --git a/test/runWithSetting.ts b/test/runWithSetting.ts index a99ffff41..0a31a3389 100644 --- a/test/runWithSetting.ts +++ b/test/runWithSetting.ts @@ -3,7 +3,8 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { ext, getGlobalSetting, updateGlobalSetting } from "../extension.bundle"; +import { ext } from "../src/extensionVariables"; +import { getGlobalSetting, updateGlobalSetting } from "../src/vsCodeConfig/settings"; type SettingValue = {} | string | boolean | undefined; diff --git a/test/templateCount.test.ts b/test/templateCount.test.ts index e422a170e..21e9b8ce1 100644 --- a/test/templateCount.test.ts +++ b/test/templateCount.test.ts @@ -5,7 +5,11 @@ import { runWithTestActionContext } from '@microsoft/vscode-azext-dev'; import * as assert from 'assert'; -import { FuncVersion, ProjectLanguage, TemplateFilter, TemplateSource, type CentralTemplateProvider, type FunctionTemplateBase } from '../extension.bundle'; +import { ProjectLanguage, TemplateFilter } from '../src/constants'; +import { TemplateSource } from '../src/extensionVariables'; +import { FuncVersion } from '../src/FuncVersion'; +import { type CentralTemplateProvider } from '../src/templates/CentralTemplateProvider'; +import { type FunctionTemplateBase } from '../src/templates/IFunctionTemplate'; import { getTestWorkspaceFolder, longRunningTestsEnabled, runForTemplateSource, shouldSkipVersion } from './global.test'; import { javaUtils } from './utils/javaUtils'; diff --git a/test/tryParseFuncVersion.test.ts b/test/tryParseFuncVersion.test.ts index 79b224589..3abc96086 100644 --- a/test/tryParseFuncVersion.test.ts +++ b/test/tryParseFuncVersion.test.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; -import { FuncVersion, tryParseFuncVersion } from '../extension.bundle'; +import { FuncVersion, tryParseFuncVersion } from '../src/FuncVersion'; suite('tryParseFuncVersion', () => { const specificOne: string = '1.0.0'; diff --git a/test/updateBackupTemplates.ts b/test/updateBackupTemplates.ts index 668169aec..70630b505 100644 --- a/test/updateBackupTemplates.ts +++ b/test/updateBackupTemplates.ts @@ -4,7 +4,11 @@ *--------------------------------------------------------------------------------------------*/ import { createTestActionContext } from '@microsoft/vscode-azext-dev'; -import { CentralTemplateProvider, FuncVersion, ProjectLanguage, supportedLanguages as resourceLanguages, type TemplateProviderBase } from '../extension.bundle'; +import { ProjectLanguage } from '../src/constants'; +import { FuncVersion } from '../src/FuncVersion'; +import { CentralTemplateProvider } from '../src/templates/CentralTemplateProvider'; +import { supportedLanguages as resourceLanguages } from '../src/templates/script/getScriptResourcesLanguage'; +import { TemplateProviderBase } from '../src/templates/TemplateProviderBase'; import { getTestWorkspaceFolder, updateBackupTemplates } from './global.test'; import { javaUtils } from './utils/javaUtils'; diff --git a/test/utils/javaUtils.ts b/test/utils/javaUtils.ts index a6c88d4ee..28b60356d 100644 --- a/test/utils/javaUtils.ts +++ b/test/utils/javaUtils.ts @@ -6,7 +6,8 @@ import { runWithTestActionContext, TestInput } from '@microsoft/vscode-azext-dev'; import { AzExtFsExtra } from '@microsoft/vscode-azext-utils'; import * as path from 'path'; -import { createNewProjectInternal, ProjectLanguage } from '../../extension.bundle'; +import { createNewProjectInternal } from '../../src/commands/createNewProject/createNewProject'; +import { ProjectLanguage } from '../../src/constants'; import { cleanTestWorkspace } from '../global.test'; export namespace javaUtils { diff --git a/test/validateCSharpNamespace.test.ts b/test/validateCSharpNamespace.test.ts index 7b6c6bc69..7fc4a0919 100644 --- a/test/validateCSharpNamespace.test.ts +++ b/test/validateCSharpNamespace.test.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; -import { validateCSharpNamespace } from '../extension.bundle'; +import { validateCSharpNamespace } from '../src/commands/createFunction/dotnetSteps/DotnetNamespaceStep'; suite('validateCSharpNamespace', () => { test('Valid values', async () => { diff --git a/test/venvUtils.test.ts b/test/venvUtils.test.ts index 7c3a09238..98c24fd47 100644 --- a/test/venvUtils.test.ts +++ b/test/venvUtils.test.ts @@ -6,7 +6,13 @@ import { AzExtFsExtra } from '@microsoft/vscode-azext-utils'; import * as assert from 'assert'; import * as path from 'path'; -import { cpUtils, delay, ext, getGlobalSetting, getRandomHexString, pythonVenvSetting, updateGlobalSetting, venvUtils } from '../extension.bundle'; +import { pythonVenvSetting } from '../src/constants'; +import { ext } from '../src/extensionVariables'; +import { cpUtils } from '../src/utils/cpUtils'; +import { delay } from '../src/utils/delay'; +import { getRandomHexString } from '../src/utils/fs'; +import { venvUtils } from '../src/utils/venvUtils'; +import { getGlobalSetting, updateGlobalSetting } from '../src/vsCodeConfig/settings'; import { longRunningTestsEnabled, testFolderPath } from './global.test'; import { runWithSetting } from './runWithSetting'; diff --git a/test/verifyVersionAndLanguage.test.ts b/test/verifyVersionAndLanguage.test.ts index 0c1416b16..000acfb81 100644 --- a/test/verifyVersionAndLanguage.test.ts +++ b/test/verifyVersionAndLanguage.test.ts @@ -6,7 +6,10 @@ import { createTestActionContext } from '@microsoft/vscode-azext-dev'; import { AzExtFsExtra } from '@microsoft/vscode-azext-utils'; import * as path from 'path'; -import { FuncVersion, getRandomHexString, ProjectLanguage, verifyVersionAndLanguage } from '../extension.bundle'; +import { verifyVersionAndLanguage } from '../src/commands/deploy/verifyAppSettings'; +import { ProjectLanguage } from '../src/constants'; +import { FuncVersion } from '../src/FuncVersion'; +import { getRandomHexString } from '../src/utils/fs'; import { assertThrowsAsync } from './assertThrowsAsync'; import { testFolderPath } from './global.test'; diff --git a/tsconfig.json b/tsconfig.json index 02d9a91c8..dd8c6c46c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,10 +1,11 @@ { "compilerOptions": { - "module": "commonjs", - "target": "es2018", + "module": "nodenext", + "moduleResolution": "nodenext", + "target": "es2022", "outDir": "out", "lib": [ - "es6" + "es2022" ], "sourceMap": true, "rootDir": ".", @@ -12,7 +13,9 @@ "noImplicitThis": true, "noImplicitReturns": true, "strictNullChecks": true, + "skipLibCheck": true, // needed to ignore vscode-jsonrpc package "noUnusedParameters": true, + "allowSyntheticDefaultImports": true, "baseUrl": "./", "paths": { "*": [ @@ -22,8 +25,9 @@ } }, "exclude": [ - "node_modules", + "**/node_modules", ".vscode-test", - "gulpfile.ts" + "**/dist", + "**/out" ] } diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index ad1492770..000000000 --- a/webpack.config.js +++ /dev/null @@ -1,50 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -'use strict'; - -//@ts-check - -// See https://github.com/Microsoft/vscode-azuretools/wiki/webpack for guidance - -const process = require('process'); -const dev = require("@microsoft/vscode-azext-dev"); -const CopyWebpackPlugin = require('copy-webpack-plugin'); - -let DEBUG_WEBPACK = !/^(false|0)?$/i.test(process.env.DEBUG_WEBPACK || ''); - -let config = dev.getDefaultWebpackConfig({ - target: 'node', - projectRoot: __dirname, - verbosity: DEBUG_WEBPACK ? 'debug' : 'normal', - externals: - { - // Fix "Module not found" errors in ./node_modules/websocket/lib/{BufferUtil,Validation}.js - // These files are not in node_modules and so will fail normally at runtime and instead use fallbacks. - // Make them as external so webpack doesn't try to process them, and they'll simply fail at runtime as before. - '../build/Release/validation': 'commonjs ../build/Release/validation', - '../build/default/validation': 'commonjs ../build/default/validation', - '../build/Release/bufferutil': 'commonjs ../build/Release/bufferutil', - '../build/default/bufferutil': 'commonjs ../build/default/bufferutil', - - // ./getCoreNodeModule.js (path from windowsProcessTree.ts) uses a dynamic require which can't be webpacked - './getCoreNodeModule': 'commonjs getCoreNodeModule', - }, - plugins: [ - // Copy files to dist folder where the runtime can find them - new CopyWebpackPlugin({ - patterns: [ - // getCoreNodeModule.js -> dist/node_modules/getCoreNodeModule.js - { from: './out/src/utils/getCoreNodeModule.js', to: 'node_modules' } - ] - }) - ] -}); - -if (DEBUG_WEBPACK) { - console.log('Config:', config); -} - -module.exports = config;