diff --git a/.github/workflows/build-vscode-extension.yml b/.github/workflows/build-vscode-extension.yml
index 066a23a1a3..26d825c965 100644
--- a/.github/workflows/build-vscode-extension.yml
+++ b/.github/workflows/build-vscode-extension.yml
@@ -20,7 +20,7 @@ jobs:
id: checksecret_job
run: |
echo "is_SONAR_TOKEN_set=${{ env.SONAR_TOKEN != '' }}" >> $GITHUB_OUTPUT
-
+
test_and_generate_binaries:
needs: [checksecret]
strategy:
@@ -48,7 +48,7 @@ jobs:
- name: Use .NET 9
uses: actions/setup-dotnet@v4
with:
- dotnet-version: '9.x'
+ dotnet-version: "9.x"
- id: last_release
run: |
@@ -61,8 +61,10 @@ jobs:
- run: scripts/update-vscode-releases.ps1 -version "v${{ steps.last_release.outputs.RELEASE_VERSION }}" -packageJsonFilePath "./vscode/microsoft-kiota/package.json" -runtimeFilePath "./vscode/npm-package/runtime.json" -online
shell: pwsh
-
+
- name: Install dependencies
+ env:
+ SKIP_POSTINSTALL: "true"
run: npm install
working-directory: vscode
@@ -145,19 +147,21 @@ jobs:
shell: pwsh
- name: Install dependencies
+ env:
+ SKIP_POSTINSTALL: "true"
run: npm install
working-directory: vscode
- run: npm run package:${{ matrix.builds.id }}
if: matrix.builds.id == 'package'
- name: 'Package - ${{ matrix.builds.id }}'
+ name: "Package - ${{ matrix.builds.id }}"
working-directory: vscode
- run: |
npm i -g @vscode/vsce
vsce package
working-directory: vscode/${{ matrix.builds.path }}
- name: 'Package - ${{ matrix.builds.id }}'
+ name: "Package - ${{ matrix.builds.id }}"
if: matrix.builds.id == 'vscode'
- name: Upload artifact
@@ -176,4 +180,4 @@ jobs:
run: exit 0
- name: One or more build matrix options failed
if: ${{ contains(needs.*.result, 'failure') }}
- run: exit 1
\ No newline at end of file
+ run: exit 1
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index faed940697..6a5b2d856e 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -92,6 +92,8 @@ jobs:
- name: Restore dependencies
run: dotnet restore
- name: Build
+ env:
+ SKIP_POSTINSTALL: "true"
run: dotnet build --no-restore -c Release
- name: Perform CodeQL Analysis
diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml
index 3baeda962c..aa757eb1cc 100644
--- a/.github/workflows/dotnet.yml
+++ b/.github/workflows/dotnet.yml
@@ -21,6 +21,8 @@ jobs:
- name: Check formatting
run: dotnet format --verify-no-changes
- name: Build
+ env:
+ SKIP_POSTINSTALL: "true"
run: dotnet build kiota.sln --no-restore
- name: Test
run: dotnet test kiota.sln --no-build --verbosity normal --collect:"XPlat Code Coverage"
diff --git a/kiota.sln b/kiota.sln
index 0f9857aaac..da1839650a 100644
--- a/kiota.sln
+++ b/kiota.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.30804.86
+# Visual Studio Version 17
+VisualStudioVersion = 17.13.35931.197
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "kiota", "src\kiota\kiota.csproj", "{944FCE5E-0CFA-4018-B353-E14FA1395007}"
EndProject
@@ -19,6 +19,28 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{EAAC5CEA-33B
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KiotaGenerated", "src\Kiota.Generated\KiotaGenerated.csproj", "{01ABDF23-60CD-4CE3-8DC7-8654C4BA1EE8}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kiota.NPM.IntegrationTests", "tests\Kiota.NPM.IntegrationTests\Kiota.NPM.IntegrationTests.csproj", "{51296EA6-7A4A-2A93-5060-1FBD4CB31CC5}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NPMProjects", "NPMProjects", "{02EA681E-C7D8-13C7-8484-4AC65E1B71E8}"
+EndProject
+Project("{54A90642-561A-4BB1-A94E-469ADEE60C69}") = "npm-package", "vscode\npm-package\npm-package.esproj", "{C6BFB632-723D-238A-EA11-44E78644612E}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Workflows", "Workflows", "{099BEFDC-D101-4DB6-B028-E24376B6DC50}"
+ ProjectSection(SolutionItems) = preProject
+ .github\workflows\auto-merge-dependabot.yml = .github\workflows\auto-merge-dependabot.yml
+ .github\workflows\build-vscode-extension.yml = .github\workflows\build-vscode-extension.yml
+ .github\workflows\check-translations.yml = .github\workflows\check-translations.yml
+ .github\workflows\codeql-analysis.yml = .github\workflows\codeql-analysis.yml
+ .github\workflows\codeql-required-workaround.yml = .github\workflows\codeql-required-workaround.yml
+ .github\workflows\dotnet-required-workaround.yml = .github\workflows\dotnet-required-workaround.yml
+ .github\workflows\dotnet.yml = .github\workflows\dotnet.yml
+ .github\workflows\idempotency-tests.yml = .github\workflows\idempotency-tests.yml
+ .github\workflows\integration-tests.yml = .github\workflows\integration-tests.yml
+ .github\workflows\load-tests.yml = .github\workflows\load-tests.yml
+ .github\workflows\project-auto-add.yml = .github\workflows\project-auto-add.yml
+ .github\workflows\sonarcloud.yml = .github\workflows\sonarcloud.yml
+ EndProjectSection
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -49,15 +71,32 @@ Global
{01ABDF23-60CD-4CE3-8DC7-8654C4BA1EE8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{01ABDF23-60CD-4CE3-8DC7-8654C4BA1EE8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{01ABDF23-60CD-4CE3-8DC7-8654C4BA1EE8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {51296EA6-7A4A-2A93-5060-1FBD4CB31CC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {51296EA6-7A4A-2A93-5060-1FBD4CB31CC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {51296EA6-7A4A-2A93-5060-1FBD4CB31CC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {51296EA6-7A4A-2A93-5060-1FBD4CB31CC5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C6BFB632-723D-238A-EA11-44E78644612E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C6BFB632-723D-238A-EA11-44E78644612E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C6BFB632-723D-238A-EA11-44E78644612E}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {C6BFB632-723D-238A-EA11-44E78644612E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C6BFB632-723D-238A-EA11-44E78644612E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C6BFB632-723D-238A-EA11-44E78644612E}.Release|Any CPU.Deploy.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {85C3AE3B-2D83-4457-B2F9-E56D64F4E443}
- EndGlobalSection
GlobalSection(NestedProjects) = preSolution
+ {944FCE5E-0CFA-4018-B353-E14FA1395007} = {EAAC5CEA-33B8-495D-9CD0-B36794B8AFE7}
+ {1F5FC53F-061A-4CED-8B53-FC5C63DBEBFF} = {EAAC5CEA-33B8-495D-9CD0-B36794B8AFE7}
+ {A2B2F620-BC5D-47EA-8B98-5A942EC9CA9A} = {2DF34BB8-B19F-4623-9E3D-9F59A14C0660}
+ {019E5612-7663-40A2-A2EA-46E39D31F0A2} = {2DF34BB8-B19F-4623-9E3D-9F59A14C0660}
{E4C108A5-A13F-4C3F-B32A-86210A4EC52A} = {2DF34BB8-B19F-4623-9E3D-9F59A14C0660}
{01ABDF23-60CD-4CE3-8DC7-8654C4BA1EE8} = {EAAC5CEA-33B8-495D-9CD0-B36794B8AFE7}
+ {51296EA6-7A4A-2A93-5060-1FBD4CB31CC5} = {2DF34BB8-B19F-4623-9E3D-9F59A14C0660}
+ {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} = {EAAC5CEA-33B8-495D-9CD0-B36794B8AFE7}
+ {C6BFB632-723D-238A-EA11-44E78644612E} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {85C3AE3B-2D83-4457-B2F9-E56D64F4E443}
EndGlobalSection
EndGlobal
diff --git a/tests/Kiota.NPM.IntegrationTests/.runsettings b/tests/Kiota.NPM.IntegrationTests/.runsettings
new file mode 100644
index 0000000000..feaf6cde62
--- /dev/null
+++ b/tests/Kiota.NPM.IntegrationTests/.runsettings
@@ -0,0 +1,6 @@
+
+
+
+ true
+
+
\ No newline at end of file
diff --git a/tests/Kiota.NPM.IntegrationTests/Assets/package.json b/tests/Kiota.NPM.IntegrationTests/Assets/package.json
new file mode 100644
index 0000000000..8a99d48358
--- /dev/null
+++ b/tests/Kiota.NPM.IntegrationTests/Assets/package.json
@@ -0,0 +1,13 @@
+{
+ "name": "kiota-consumer",
+ "version": "1.0.0",
+ "description": "",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "author": "",
+ "license": "MIT",
+ "dependencies": {
+ "@microsoft/kiota": "file:./microsoft-kiota-1.0.0.tgz"
+ }
+}
diff --git a/tests/Kiota.NPM.IntegrationTests/InstallTests.cs b/tests/Kiota.NPM.IntegrationTests/InstallTests.cs
new file mode 100644
index 0000000000..9acb1503b2
--- /dev/null
+++ b/tests/Kiota.NPM.IntegrationTests/InstallTests.cs
@@ -0,0 +1,207 @@
+using System;
+using System.Diagnostics;
+using System.IO;
+using Xunit;
+using Xunit.Abstractions;
+
+
+namespace Kiota.NPM.IntegrationTests;
+
+public class InstallTests
+{
+ private readonly ITestOutputHelper _outputHelper;
+
+ public InstallTests(ITestOutputHelper outputHelper)
+ {
+ _outputHelper = outputHelper ?? throw new ArgumentNullException(nameof(outputHelper));
+ }
+
+ [Fact]
+ public void Install_Creates_Working_Bin_Command()
+ {
+ // This test first compiles then packs the Kiota project to a local folder created for
+ // the individual test run, such that there is a tarball waiting in the folder.
+ // Then it copies the package.json file from the Assets folder to the test folder.
+ // Then it runs npm install in the test folder.
+ // Finally, it asserts two things:
+ // Firstly, if the kiota command is available in the node_modules/.bin folder.
+ // Secondly, if the npx command can be used to run the kiota command successfully
+ // with the '--version' command line option which must successfully return a string which conforms to a pattern expressing the version of kiota.
+
+ // Create a temporary directory for the test
+ var testDir = Path.Combine(Path.GetTempPath(), $"kiota-npm-test-{Guid.NewGuid()}");
+ Directory.CreateDirectory(testDir);
+
+ try
+ {
+ // Pack the project using npm
+ var projectDir = Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, "../../../../../vscode/npm-package"));
+ _outputHelper.WriteLine($"Running pack in {projectDir}");
+ var npmPackProcess = RunProcess("npm", $"pack --pack-destination {testDir}", projectDir);
+ _outputHelper.WriteLine("Checking if npm pack process exited successfully.");
+ Assert.Equal(0, npmPackProcess.exitCode);
+
+ // Copy package.json from Assets folder to test directory
+ var assetsDir = Path.Combine(AppContext.BaseDirectory, "../../../Assets");
+ File.Copy(Path.Combine(assetsDir, "package.json"), Path.Combine(testDir, "package.json"));
+
+ // Run npm install in the test directory
+ var npmProcess = RunProcess("npm", "install", testDir);
+ _outputHelper.WriteLine("Checking if npm install process exited successfully.");
+ Assert.Equal(0, npmProcess.exitCode);
+
+ // Assert 1: Check if kiota exists in node_modules/.bin
+ var kiotaPath = Path.Combine(testDir, "node_modules", ".bin", "kiota");
+ if (OperatingSystem.IsWindows())
+ {
+ kiotaPath += ".cmd"; // On Windows, the bin command is a .cmd file
+ }
+ _outputHelper.WriteLine($"Checking if Kiota command exists at {kiotaPath}.");
+ Assert.True(File.Exists(kiotaPath), $"Kiota command not found at {kiotaPath}");
+
+ // Assert 2: Run kiota --version using npx and check output
+ var npxProcess = RunProcess("npx", "kiota --version", testDir);
+ _outputHelper.WriteLine("Checking if npx process to run 'kiota --version' exited successfully.");
+ Assert.Equal(0, npxProcess.exitCode);
+
+ // Check if output matches version pattern (e.g., 1.2.3 or 1.2.3-preview.4)
+ var versionPattern = @"^\d+\.\d+\.\d+.*$";
+ _outputHelper.WriteLine("Checking if the output of 'kiota --version' matches the expected version pattern.");
+ Assert.Matches(versionPattern, npxProcess.output);
+ }
+ finally
+ {
+ // Clean up
+ try
+ {
+ Directory.Delete(testDir, true);
+ }
+ catch
+ {
+ // Best effort cleanup
+ }
+ }
+ }
+
+ private (int exitCode, string output) RunProcess(string fileName, string arguments, string workingDirectory)
+ {
+ // Try to find npm or npx in standard locations if not found directly
+ if ((fileName == "npm" || fileName == "npx") && OperatingSystem.IsWindows())
+ {
+ // Check common locations for npm/npx on Windows
+ string commandExtension = ".cmd";
+ string[] possiblePaths = new[]
+ {
+ Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "nodejs", $"{fileName}{commandExtension}"),
+ Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), "nodejs", $"{fileName}{commandExtension}"),
+ // Add from npm global prefix
+ Path.Combine(Environment.GetEnvironmentVariable("APPDATA") ?? "", "npm", $"{fileName}{commandExtension}"),
+ // Try npm global installation path
+ Path.Combine(Environment.GetEnvironmentVariable("APPDATA") ?? "", "npm", "node_modules", "npm", "bin", $"{fileName}{commandExtension}")
+ };
+
+ foreach (var path in possiblePaths)
+ {
+ if (File.Exists(path))
+ {
+ _outputHelper.WriteLine($"Found {fileName} at {path}");
+ fileName = path;
+ break;
+ }
+ }
+ }
+ else if ((fileName == "npm" || fileName == "npx") && (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS()))
+ {
+ // Check common locations for npm/npx on Linux/macOS
+ string[] possiblePaths = new[]
+ {
+ $"/usr/bin/{fileName}",
+ $"/usr/local/bin/{fileName}",
+ $"/opt/homebrew/bin/{fileName}", // Common on macOS with Homebrew
+ $"{Environment.GetEnvironmentVariable("HOME")}/.npm/bin/{fileName}", // User's npm bin directory
+ $"{Environment.GetEnvironmentVariable("HOME")}/.nvm/versions/node/*/bin/{fileName}" // nvm installations
+ };
+
+ foreach (var path in possiblePaths)
+ {
+ // Handle wildcard paths (for nvm)
+ if (path.Contains("*"))
+ {
+ var directory = Path.GetDirectoryName(path);
+ if (directory != null && Directory.Exists(directory.Replace("*", "")))
+ {
+ // Get the highest version directory
+ var dirs = Directory.GetDirectories(directory.Replace("*", ""));
+ if (dirs.Length > 0)
+ {
+ var exactPath = Path.Combine(dirs[^1], Path.GetFileName(path));
+ if (File.Exists(exactPath))
+ {
+ _outputHelper.WriteLine($"Found {fileName} at {exactPath}");
+ fileName = exactPath;
+ break;
+ }
+ }
+ }
+ continue;
+ }
+
+ if (File.Exists(path))
+ {
+ _outputHelper.WriteLine($"Found {fileName} at {path}");
+ fileName = path;
+ break;
+ }
+ }
+ }
+
+ // Fall back to PATH environment if still using the short name
+ if (fileName == "npm" || fileName == "npx")
+ {
+ // Log that we're using PATH resolution
+ _outputHelper.WriteLine($"Using PATH environment to resolve {fileName}");
+ }
+
+ using (var process = new Process())
+ {
+ process.StartInfo = new ProcessStartInfo
+ {
+ FileName = fileName,
+ Arguments = arguments,
+ WorkingDirectory = workingDirectory,
+ RedirectStandardOutput = true,
+ RedirectStandardError = true,
+ UseShellExecute = false,
+ CreateNoWindow = true
+ };
+
+ var outputBuilder = new StringWriter();
+
+ process.OutputDataReceived += (sender, args) =>
+ {
+ if (args.Data != null)
+ {
+ outputBuilder.WriteLine(args.Data);
+ }
+ };
+
+ process.ErrorDataReceived += (sender, args) =>
+ {
+ if (args.Data != null)
+ {
+ outputBuilder.WriteLine($"Error: {args.Data}");
+ }
+ };
+
+ if (!process.Start())
+ {
+ throw new InvalidOperationException($"Failed to start process '{fileName}' in directory '{workingDirectory}'");
+ }
+ process.BeginOutputReadLine();
+ process.BeginErrorReadLine();
+
+ process.WaitForExit();
+ return (process.ExitCode, outputBuilder.ToString().Trim());
+ }
+ }
+}
diff --git a/tests/Kiota.NPM.IntegrationTests/Kiota.NPM.IntegrationTests.csproj b/tests/Kiota.NPM.IntegrationTests/Kiota.NPM.IntegrationTests.csproj
new file mode 100644
index 0000000000..42a5b8d5d7
--- /dev/null
+++ b/tests/Kiota.NPM.IntegrationTests/Kiota.NPM.IntegrationTests.csproj
@@ -0,0 +1,19 @@
+
+
+
+ net9.0
+
+ false
+ true
+ ..\..\src\Microsoft.OpenApi.snk
+
+
+
+
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+
\ No newline at end of file
diff --git a/vscode/.gitignore b/vscode/.gitignore
index 39ecdda6af..515a0c0c9a 100644
--- a/vscode/.gitignore
+++ b/vscode/.gitignore
@@ -1,3 +1,4 @@
node_modules/
.kiota
-.kiotabin
\ No newline at end of file
+.kiotabin
+*.tgz
\ No newline at end of file
diff --git a/vscode/npm-package/eslint.config.mjs b/vscode/npm-package/eslint.config.mjs
index c9f39933e1..06768032eb 100644
--- a/vscode/npm-package/eslint.config.mjs
+++ b/vscode/npm-package/eslint.config.mjs
@@ -1,4 +1,4 @@
-import stylisticTs from '@stylistic/eslint-plugin-ts';
+import stylisticTs from '@stylistic/eslint-plugin';
import typescriptEslint from "@typescript-eslint/eslint-plugin";
import tsParser from "@typescript-eslint/parser";
diff --git a/vscode/npm-package/npm-package.esproj b/vscode/npm-package/npm-package.esproj
new file mode 100644
index 0000000000..9372ce1a3f
--- /dev/null
+++ b/vscode/npm-package/npm-package.esproj
@@ -0,0 +1,14 @@
+
+
+
+ true
+
+
+
+ npm pack
+
+ true
+ tests\
+ Jest
+
+
\ No newline at end of file
diff --git a/vscode/npm-package/package-lock.json b/vscode/npm-package/package-lock.json
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/vscode/npm-package/package.json b/vscode/npm-package/package.json
index d2c7fbae00..813b3efaaf 100644
--- a/vscode/npm-package/package.json
+++ b/vscode/npm-package/package.json
@@ -22,6 +22,9 @@
"default": "./dist/cjs/index.js"
}
},
+ "bin": {
+ "kiota": "./scripts/cli.js"
+ },
"types": "dist/esm/types/index.d.ts",
"typesVersions": {
"*": {
@@ -35,7 +38,8 @@
},
"files": [
"dist",
- "runtime.json"
+ "runtime.json",
+ "scripts"
],
"scripts": {
"lint": "eslint",
@@ -50,7 +54,8 @@
"generate-readme": "node scripts/generate-readme.js",
"test:coverage": "jest --coverage --runInBand",
"prepack": "npm run build",
- "package": "npm pack"
+ "package": "npm pack",
+ "postinstall": "node scripts/bootstrap.js"
},
"keywords": [
"Kiota"
@@ -66,8 +71,12 @@
"devDependencies": {
"@types/adm-zip": "^0.5.7",
"@types/jest": "^29.5.14",
+ "eslint": "^9.24.0",
+ "@stylistic/eslint-plugin": "^4.2.0",
+ "@typescript-eslint/eslint-plugin": "^8.29.1",
"glob": "^11.0.1",
"jest": "^29.7.0",
+ "jest-editor-support": "^32.0.0-beta.1",
"rimraf": "^6.0.1",
"ts-jest": "^29.3.1",
"ts-loader": "^9.5.2"
diff --git a/vscode/npm-package/readme.md b/vscode/npm-package/readme.md
index 80998d83e9..0b153bd5ac 100644
--- a/vscode/npm-package/readme.md
+++ b/vscode/npm-package/readme.md
@@ -11,6 +11,7 @@ npm install @microsoft/kiota
```
## Usage
+The following JS/TS functions are made available.
Once installed, you can use the available functions to generate and interact with Kiota clients.
Below is a reference for each function, including parameters and return values.
diff --git a/vscode/npm-package/scripts/bootstrap.js b/vscode/npm-package/scripts/bootstrap.js
new file mode 100644
index 0000000000..4944479001
--- /dev/null
+++ b/vscode/npm-package/scripts/bootstrap.js
@@ -0,0 +1,14 @@
+if (process.env.SKIP_POSTINSTALL === 'true') {
+ process.exit(0);
+}
+
+const { getKiotaVersion } = require('../dist/cjs/lib/getKiotaVersion.js');
+
+(async () => {
+ try {
+ const result = await getKiotaVersion();
+ console.log(`Kiota version ${result} installed successfully!`);
+ } catch (error) {
+ console.error("An error occurred while bootstrapping Kiota.", error);
+ }
+})();
\ No newline at end of file
diff --git a/vscode/npm-package/scripts/cli.js b/vscode/npm-package/scripts/cli.js
new file mode 100644
index 0000000000..4fb1662080
--- /dev/null
+++ b/vscode/npm-package/scripts/cli.js
@@ -0,0 +1,16 @@
+#!/usr/bin/env node
+const { execFileSync } = require('child_process');
+const { getKiotaPath } = require('../dist/cjs/install.js');
+
+const binaryPath = getKiotaPath();
+
+try {
+ execFileSync(binaryPath, process.argv.slice(2), { stdio: 'inherit' });
+} catch (err) {
+ if (err.code === 'ENOENT') {
+ console.error(`Error: Unable to find the specified executable ${binaryPath}.`);
+ } else {
+ console.error(`Error: ${err.message}`);
+ }
+ process.exit(1); // Exit with a failure code
+}
diff --git a/vscode/npm-package/tsconfig.json b/vscode/npm-package/tsconfig.json
index 9f89f94649..e21536675d 100644
--- a/vscode/npm-package/tsconfig.json
+++ b/vscode/npm-package/tsconfig.json
@@ -18,7 +18,7 @@
"resolveJsonModule": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
- "skipLibCheck": true,
+ "skipLibCheck": true
},
"exclude": [
"dist",
diff --git a/vscode/npm-package/types.ts b/vscode/npm-package/types.ts
index 4c042cca61..66a518ebd5 100644
--- a/vscode/npm-package/types.ts
+++ b/vscode/npm-package/types.ts
@@ -38,11 +38,16 @@ export interface KiotaLogEntry {
}
export enum OpenApiAuthType {
- None = 0,
- ApiKey = 1,
- Http = 2,
- OAuth2 = 3,
- OpenIdConnect = 4,
+ // eslint-disable-next-line @typescript-eslint/naming-convention
+ None = 0,
+ // eslint-disable-next-line @typescript-eslint/naming-convention
+ ApiKey = 1,
+ // eslint-disable-next-line @typescript-eslint/naming-convention
+ Http = 2,
+ // eslint-disable-next-line @typescript-eslint/naming-convention
+ OAuth2 = 3,
+ // eslint-disable-next-line @typescript-eslint/naming-convention
+ OpenIdConnect = 4,
}
// key is the security scheme name, value is array of scopes
@@ -315,7 +320,9 @@ export interface GeneratePluginResult extends KiotaResult {
export interface PluginManifestResult extends KiotaResult {
isValid: boolean;
+ // eslint-disable-next-line @typescript-eslint/naming-convention
schema_version: string;
+ // eslint-disable-next-line @typescript-eslint/naming-convention
name_for_human: string;
functions: PluginFunction[];
runtime: PluginRuntime[];
@@ -328,12 +335,14 @@ export interface PluginFunction {
export interface PluginAuth {
type: string; // None, OAuthPluginVault, ApiKeyPluginVault
+ // eslint-disable-next-line @typescript-eslint/naming-convention
reference_id?: string;
}
export interface PluginRuntime {
type: string;
auth: PluginAuth;
+ // eslint-disable-next-line @typescript-eslint/naming-convention
run_for_functions: string[];
}
diff --git a/vscode/package-lock.json b/vscode/package-lock.json
index e8bff1045e..63e8b24ecb 100644
--- a/vscode/package-lock.json
+++ b/vscode/package-lock.json
@@ -41,7 +41,7 @@
"@vscode/test-electron": "^2.4.1",
"chai": "^5.2.0",
"mocha": "^11.1.0",
- "sinon": "^19.0.2",
+ "sinon": "^20.0.0",
"webpack": "^5.98.0",
"webpack-cli": "^6.0.1"
},
@@ -180,6 +180,43 @@
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
"dev": true
},
+ "node_modules/@babel/helper-environment-visitor": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz",
+ "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-function-name": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz",
+ "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/template": "^7.24.7",
+ "@babel/types": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-hoist-variables": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz",
+ "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/@babel/helper-module-imports": {
"version": "7.25.9",
"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz",
@@ -219,6 +256,18 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@babel/helper-split-export-declaration": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz",
+ "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/@babel/helper-string-parser": {
"version": "7.25.9",
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
@@ -633,9 +682,9 @@
}
},
"node_modules/@eslint/config-array": {
- "version": "0.19.2",
- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz",
- "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==",
+ "version": "0.20.0",
+ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz",
+ "integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==",
"dev": true,
"dependencies": {
"@eslint/object-schema": "^2.1.6",
@@ -669,9 +718,9 @@
}
},
"node_modules/@eslint/config-helpers": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.1.0.tgz",
- "integrity": "sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==",
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.1.tgz",
+ "integrity": "sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==",
"dev": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -690,9 +739,9 @@
}
},
"node_modules/@eslint/eslintrc": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.0.tgz",
- "integrity": "sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz",
+ "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==",
"dev": true,
"dependencies": {
"ajv": "^6.12.4",
@@ -735,9 +784,9 @@
}
},
"node_modules/@eslint/js": {
- "version": "9.22.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.22.0.tgz",
- "integrity": "sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==",
+ "version": "9.24.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.24.0.tgz",
+ "integrity": "sha512-uIY/y3z0uvOGX8cp1C2fiC4+ZmBhp6yZWkojtHL1YEMnRt1Y63HB9TM17proGEmeG7HeUY+UP36F0aknKYTpYA==",
"dev": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -1129,6 +1178,28 @@
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
+ "node_modules/@jest/pattern": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-PpuWkTJwcFJlyo6YOuMLi96doaaDfz90gOAU+cuyIZyr6wjbjKjdMkHlt7rE6gNaZNEUEA9sSJzKsg8oXfLW0w==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*",
+ "jest-regex-util": "30.0.0-alpha.7"
+ },
+ "engines": {
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
+ }
+ },
+ "node_modules/@jest/pattern/node_modules/jest-regex-util": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-EUHpErwer3WQVcX1wKlvGHtIzVnGz5PzFVzp3/PzI+kTGduDvo0JuOnKHWuBYVwc5TADQmrdNiVU3+25swZoug==",
+ "dev": true,
+ "engines": {
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
+ }
+ },
"node_modules/@jest/reporters": {
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz",
@@ -1248,6 +1319,57 @@
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
+ "node_modules/@jest/snapshot-utils": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-mXfMgNqHdiuWXavhZPaH+EfASKp5DUqfr9ISvcl+YO0HxtOvQH2Ulttwsq9MYkhbKpiwTTk17Tt6NTBogmRlGw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "30.0.0-alpha.7",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "natural-compare": "^1.4.0"
+ },
+ "engines": {
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
+ }
+ },
+ "node_modules/@jest/snapshot-utils/node_modules/@jest/schemas": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-fzJDwdg3E8Gq+Aqo/h+JQc1ZD+Mqbkz7OVqpoUa0A2Btd70zdgu1Hza8AyhJjr83paRQ+ZCHnHepp4/+tpqDFQ==",
+ "dev": true,
+ "dependencies": {
+ "@sinclair/typebox": "^0.34.0"
+ },
+ "engines": {
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
+ }
+ },
+ "node_modules/@jest/snapshot-utils/node_modules/@jest/types": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-hrdUqtIjUMpoNlpmo4DQfe6fvD0Rk02kdOv0+AsAbO689llpzNmb+kLcojzKp/H2jVGqcYrUb0wNSRgn4KcuqA==",
+ "dev": true,
+ "dependencies": {
+ "@jest/pattern": "30.0.0-alpha.7",
+ "@jest/schemas": "30.0.0-alpha.7",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.8",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
+ }
+ },
+ "node_modules/@jest/snapshot-utils/node_modules/@sinclair/typebox": {
+ "version": "0.34.33",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.33.tgz",
+ "integrity": "sha512-5HAV9exOMcXRUxo+9iYB5n09XxzCXnfy4VTNW4xnDv+FgjzAGY989C28BIdljKqmF+ZltUwujE3aossvcVtq6g==",
+ "dev": true
+ },
"node_modules/@jest/source-map": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz",
@@ -2529,6 +2651,18 @@
"node": ">=14"
}
},
+ "node_modules/@pkgr/core": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.2.tgz",
+ "integrity": "sha512-fdDH1LSGfZdTH2sxdpVMw31BanV28K/Gry0cVFxaNP77neJSkd82mM8ErPNYs9e+0O7SdHBLTDzDgwUuy18RnQ==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/unts"
+ }
+ },
"node_modules/@sigstore/bundle": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz",
@@ -2647,11 +2781,24 @@
"node": ">=4"
}
},
- "node_modules/@sinonjs/text-encoding": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.3.tgz",
- "integrity": "sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA==",
- "dev": true
+ "node_modules/@stylistic/eslint-plugin": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-4.2.0.tgz",
+ "integrity": "sha512-8hXezgz7jexGHdo5WN6JBEIPHCSFyyU4vgbxevu4YLVS5vl+sxqAAGyXSzfNDyR6xMNSH5H1x67nsXcYMOHtZA==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/utils": "^8.23.0",
+ "eslint-visitor-keys": "^4.2.0",
+ "espree": "^10.3.0",
+ "estraverse": "^5.3.0",
+ "picomatch": "^4.0.2"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "peerDependencies": {
+ "eslint": ">=9.0.0"
+ }
},
"node_modules/@stylistic/eslint-plugin-ts": {
"version": "4.2.0",
@@ -2670,6 +2817,18 @@
"eslint": ">=9.0.0"
}
},
+ "node_modules/@stylistic/eslint-plugin/node_modules/picomatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
"node_modules/@tufjs/canonical-json": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz",
@@ -2917,16 +3076,16 @@
"dev": true
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.29.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.29.0.tgz",
- "integrity": "sha512-PAIpk/U7NIS6H7TEtN45SPGLQaHNgB7wSjsQV/8+KYokAb2T/gloOA/Bee2yd4/yKVhPKe5LlaUGhAZk5zmSaQ==",
+ "version": "8.29.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.29.1.tgz",
+ "integrity": "sha512-ba0rr4Wfvg23vERs3eB+P3lfj2E+2g3lhWcCVukUuhtcdUx5lSIFZlGFEBHKr+3zizDa/TvZTptdNHVZWAkSBg==",
"dev": true,
"dependencies": {
"@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.29.0",
- "@typescript-eslint/type-utils": "8.29.0",
- "@typescript-eslint/utils": "8.29.0",
- "@typescript-eslint/visitor-keys": "8.29.0",
+ "@typescript-eslint/scope-manager": "8.29.1",
+ "@typescript-eslint/type-utils": "8.29.1",
+ "@typescript-eslint/utils": "8.29.1",
+ "@typescript-eslint/visitor-keys": "8.29.1",
"graphemer": "^1.4.0",
"ignore": "^5.3.1",
"natural-compare": "^1.4.0",
@@ -2945,6 +3104,53 @@
"typescript": ">=4.8.4 <5.9.0"
}
},
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": {
+ "version": "8.29.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.1.tgz",
+ "integrity": "sha512-2nggXGX5F3YrsGN08pw4XpMLO1Rgtnn4AzTegC2MDesv6q3QaTU5yU7IbS1tf1IwCR0Hv/1EFygLn9ms6LIpDA==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "8.29.1",
+ "@typescript-eslint/visitor-keys": "8.29.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": {
+ "version": "8.29.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.1.tgz",
+ "integrity": "sha512-VT7T1PuJF1hpYC3AGm2rCgJBjHL3nc+A/bhOp9sGMKfi5v0WufsX/sHCFBfNTx2F+zA6qBc/PD0/kLRLjdt8mQ==",
+ "dev": true,
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "8.29.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.1.tgz",
+ "integrity": "sha512-RGLh5CRaUEf02viP5c1Vh1cMGffQscyHe7HPAzGpfmfflFg1wUz2rYxd+OZqwpeypYvZ8UxSxuIpF++fmOzEcg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "8.29.1",
+ "eslint-visitor-keys": "^4.2.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
"node_modules/@typescript-eslint/parser": {
"version": "8.29.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.29.0.tgz",
@@ -2987,13 +3193,13 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "8.29.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.29.0.tgz",
- "integrity": "sha512-ahaWQ42JAOx+NKEf5++WC/ua17q5l+j1GFrbbpVKzFL/tKVc0aYY8rVSYUpUvt2hUP1YBr7mwXzx+E/DfUWI9Q==",
+ "version": "8.29.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.29.1.tgz",
+ "integrity": "sha512-DkDUSDwZVCYN71xA4wzySqqcZsHKic53A4BLqmrWFFpOpNSoxX233lwGu/2135ymTCR04PoKiEEEvN1gFYg4Tw==",
"dev": true,
"dependencies": {
- "@typescript-eslint/typescript-estree": "8.29.0",
- "@typescript-eslint/utils": "8.29.0",
+ "@typescript-eslint/typescript-estree": "8.29.1",
+ "@typescript-eslint/utils": "8.29.1",
"debug": "^4.3.4",
"ts-api-utils": "^2.0.1"
},
@@ -3009,6 +3215,62 @@
"typescript": ">=4.8.4 <5.9.0"
}
},
+ "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": {
+ "version": "8.29.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.1.tgz",
+ "integrity": "sha512-VT7T1PuJF1hpYC3AGm2rCgJBjHL3nc+A/bhOp9sGMKfi5v0WufsX/sHCFBfNTx2F+zA6qBc/PD0/kLRLjdt8mQ==",
+ "dev": true,
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "8.29.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.1.tgz",
+ "integrity": "sha512-l1enRoSaUkQxOQnbi0KPUtqeZkSiFlqrx9/3ns2rEDhGKfTa+88RmXqedC1zmVTOWrLc2e6DEJrTA51C9iLH5g==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "8.29.1",
+ "@typescript-eslint/visitor-keys": "8.29.1",
+ "debug": "^4.3.4",
+ "fast-glob": "^3.3.2",
+ "is-glob": "^4.0.3",
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^2.0.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.4 <5.9.0"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "8.29.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.1.tgz",
+ "integrity": "sha512-RGLh5CRaUEf02viP5c1Vh1cMGffQscyHe7HPAzGpfmfflFg1wUz2rYxd+OZqwpeypYvZ8UxSxuIpF++fmOzEcg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "8.29.1",
+ "eslint-visitor-keys": "^4.2.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
"node_modules/@typescript-eslint/types": {
"version": "8.29.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.0.tgz",
@@ -3049,15 +3311,15 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "8.29.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.29.0.tgz",
- "integrity": "sha512-gX/A0Mz9Bskm8avSWFcK0gP7cZpbY4AIo6B0hWYFCaIsz750oaiWR4Jr2CI+PQhfW1CpcQr9OlfPS+kMFegjXA==",
+ "version": "8.29.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.29.1.tgz",
+ "integrity": "sha512-QAkFEbytSaB8wnmB+DflhUPz6CLbFWE2SnSCrRMEa+KnXIzDYbpsn++1HGvnfAsUY44doDXmvRkO5shlM/3UfA==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
- "@typescript-eslint/scope-manager": "8.29.0",
- "@typescript-eslint/types": "8.29.0",
- "@typescript-eslint/typescript-estree": "8.29.0"
+ "@typescript-eslint/scope-manager": "8.29.1",
+ "@typescript-eslint/types": "8.29.1",
+ "@typescript-eslint/typescript-estree": "8.29.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3071,6 +3333,79 @@
"typescript": ">=4.8.4 <5.9.0"
}
},
+ "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": {
+ "version": "8.29.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.1.tgz",
+ "integrity": "sha512-2nggXGX5F3YrsGN08pw4XpMLO1Rgtnn4AzTegC2MDesv6q3QaTU5yU7IbS1tf1IwCR0Hv/1EFygLn9ms6LIpDA==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "8.29.1",
+ "@typescript-eslint/visitor-keys": "8.29.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": {
+ "version": "8.29.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.1.tgz",
+ "integrity": "sha512-VT7T1PuJF1hpYC3AGm2rCgJBjHL3nc+A/bhOp9sGMKfi5v0WufsX/sHCFBfNTx2F+zA6qBc/PD0/kLRLjdt8mQ==",
+ "dev": true,
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "8.29.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.1.tgz",
+ "integrity": "sha512-l1enRoSaUkQxOQnbi0KPUtqeZkSiFlqrx9/3ns2rEDhGKfTa+88RmXqedC1zmVTOWrLc2e6DEJrTA51C9iLH5g==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "8.29.1",
+ "@typescript-eslint/visitor-keys": "8.29.1",
+ "debug": "^4.3.4",
+ "fast-glob": "^3.3.2",
+ "is-glob": "^4.0.3",
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^2.0.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.4 <5.9.0"
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "8.29.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.1.tgz",
+ "integrity": "sha512-RGLh5CRaUEf02viP5c1Vh1cMGffQscyHe7HPAzGpfmfflFg1wUz2rYxd+OZqwpeypYvZ8UxSxuIpF++fmOzEcg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "8.29.1",
+ "eslint-visitor-keys": "^4.2.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
"node_modules/@typescript-eslint/visitor-keys": {
"version": "8.29.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.0.tgz",
@@ -3088,6 +3423,12 @@
"url": "https://opencollective.com/typescript-eslint"
}
},
+ "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.8",
"resolved": "https://registry.npmjs.org/@vscode/extension-telemetry/-/extension-telemetry-0.9.8.tgz",
@@ -3138,19 +3479,6 @@
"node": ">=8"
}
},
- "node_modules/@vscode/test-cli/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/@vscode/test-cli/node_modules/binary-extensions": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
@@ -3204,24 +3532,10 @@
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true
},
- "node_modules/@vscode/test-cli/node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/@vscode/test-cli/node_modules/glob": {
- "version": "10.4.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
+ "node_modules/@vscode/test-cli/node_modules/glob": {
+ "version": "10.4.5",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
+ "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
"dev": true,
"dependencies": {
"foreground-child": "^3.1.0",
@@ -3377,15 +3691,6 @@
"node": ">=10"
}
},
- "node_modules/@vscode/test-cli/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/@vscode/test-cli/node_modules/path-scurry": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
@@ -4074,6 +4379,19 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
+ "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/aproba": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
@@ -5707,18 +6025,18 @@
}
},
"node_modules/eslint": {
- "version": "9.22.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.22.0.tgz",
- "integrity": "sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==",
+ "version": "9.24.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.24.0.tgz",
+ "integrity": "sha512-eh/jxIEJyZrvbWRe4XuVclLPDYSYYYgLy5zXGGxD6j8zjSAxFEzI2fL/8xNq6O2yKqVt+eF2YhV+hxjV6UKXwQ==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.12.1",
- "@eslint/config-array": "^0.19.2",
- "@eslint/config-helpers": "^0.1.0",
+ "@eslint/config-array": "^0.20.0",
+ "@eslint/config-helpers": "^0.2.0",
"@eslint/core": "^0.12.0",
- "@eslint/eslintrc": "^3.3.0",
- "@eslint/js": "9.22.0",
+ "@eslint/eslintrc": "^3.3.1",
+ "@eslint/js": "9.24.0",
"@eslint/plugin-kit": "^0.2.7",
"@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1",
@@ -6317,6 +6635,20 @@
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
"dev": true
},
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
"node_modules/function-bind": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
@@ -7585,146 +7917,636 @@
"jest": "bin/jest.js"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-config": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz",
+ "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.11.6",
+ "@jest/test-sequencer": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "babel-jest": "^29.7.0",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "deepmerge": "^4.2.2",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "jest-circus": "^29.7.0",
+ "jest-environment-node": "^29.7.0",
+ "jest-get-type": "^29.6.3",
+ "jest-regex-util": "^29.6.3",
+ "jest-resolve": "^29.7.0",
+ "jest-runner": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-validate": "^29.7.0",
+ "micromatch": "^4.0.4",
+ "parse-json": "^5.2.0",
+ "pretty-format": "^29.7.0",
+ "slash": "^3.0.0",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "@types/node": "*",
+ "ts-node": ">=9.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "ts-node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-config/node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/jest-config/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/jest-config/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/jest-diff": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz",
+ "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "diff-sequences": "^29.6.3",
+ "jest-get-type": "^29.6.3",
+ "pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-docblock": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz",
+ "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==",
+ "dev": true,
+ "dependencies": {
+ "detect-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-each": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz",
+ "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^29.6.3",
+ "jest-util": "^29.7.0",
+ "pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-editor-support": {
+ "version": "32.0.0-beta.1",
+ "resolved": "https://registry.npmjs.org/jest-editor-support/-/jest-editor-support-32.0.0-beta.1.tgz",
+ "integrity": "sha512-IimucoTLZXwR1+1YEeqc++XjYRxffCEfr+uRlfwuVC5LiyIYUmPqo5x+f6EMkohUMOyQMICB5tEohrDw9smL1A==",
+ "dev": true,
+ "dependencies": {
+ "@babel/parser": "^7.20.7",
+ "@babel/traverse": "7.23.2",
+ "@babel/types": "^7.20.7",
+ "@jest/snapshot-utils": "^30.0.0-alpha.5",
+ "@jest/test-result": "^29.3.1",
+ "@jest/types": "^29.3.1",
+ "jest-snapshot": "^30.0.0-alpha.5"
+ }
+ },
+ "node_modules/jest-editor-support/node_modules/@babel/traverse": {
+ "version": "7.23.2",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz",
+ "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.22.13",
+ "@babel/generator": "^7.23.0",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/parser": "^7.23.0",
+ "@babel/types": "^7.23.0",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/jest-editor-support/node_modules/@jest/expect-utils": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-lr711aEHiXWM9X0BC/fH+HID5eatdCjluh2PKxKHPZbjmtWA5RiHXC/s16cPFI6voSnofOjDICvzNVxSO87ZrQ==",
+ "dev": true,
+ "dependencies": {
+ "jest-get-type": "30.0.0-alpha.7"
+ },
+ "engines": {
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
+ }
+ },
+ "node_modules/jest-editor-support/node_modules/@jest/schemas": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-fzJDwdg3E8Gq+Aqo/h+JQc1ZD+Mqbkz7OVqpoUa0A2Btd70zdgu1Hza8AyhJjr83paRQ+ZCHnHepp4/+tpqDFQ==",
+ "dev": true,
+ "dependencies": {
+ "@sinclair/typebox": "^0.34.0"
+ },
+ "engines": {
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
+ }
+ },
+ "node_modules/jest-editor-support/node_modules/@jest/transform": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-uv/gA0QdtnSHJLoQngSzJGXCjTDykJpQFUUuuYN/G9GVPM/aORyNb3ybkkozgjHSV9eC1hJCoQRuraEDJa1pSg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.11.6",
+ "@jest/types": "30.0.0-alpha.7",
+ "@jridgewell/trace-mapping": "^0.3.18",
+ "babel-plugin-istanbul": "^7.0.0",
+ "chalk": "^4.0.0",
+ "convert-source-map": "^2.0.0",
+ "fast-json-stable-stringify": "^2.1.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "30.0.0-alpha.7",
+ "jest-regex-util": "30.0.0-alpha.7",
+ "jest-util": "30.0.0-alpha.7",
+ "micromatch": "^4.0.8",
+ "pirates": "^4.0.4",
+ "slash": "^3.0.0",
+ "write-file-atomic": "^5.0.0"
+ },
+ "engines": {
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
+ }
+ },
+ "node_modules/jest-editor-support/node_modules/@jest/transform/node_modules/@jest/types": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-hrdUqtIjUMpoNlpmo4DQfe6fvD0Rk02kdOv0+AsAbO689llpzNmb+kLcojzKp/H2jVGqcYrUb0wNSRgn4KcuqA==",
+ "dev": true,
+ "dependencies": {
+ "@jest/pattern": "30.0.0-alpha.7",
+ "@jest/schemas": "30.0.0-alpha.7",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.8",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
+ }
+ },
+ "node_modules/jest-editor-support/node_modules/@sinclair/typebox": {
+ "version": "0.34.33",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.33.tgz",
+ "integrity": "sha512-5HAV9exOMcXRUxo+9iYB5n09XxzCXnfy4VTNW4xnDv+FgjzAGY989C28BIdljKqmF+ZltUwujE3aossvcVtq6g==",
+ "dev": true
+ },
+ "node_modules/jest-editor-support/node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-editor-support/node_modules/babel-plugin-istanbul": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.0.tgz",
+ "integrity": "sha512-C5OzENSx/A+gt7t4VH1I2XsflxyPUmXRFPKBxt33xncdOmq7oROVM3bZv9Ysjjkv8OJYDMa+tKuKMvqU/H3xdw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.3",
+ "istanbul-lib-instrument": "^6.0.2",
+ "test-exclude": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/jest-editor-support/node_modules/ci-info": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.2.0.tgz",
+ "integrity": "sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-editor-support/node_modules/diff-sequences": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-T8qx2cdaE0DW3nMpgf0jxOvSECOIkvPpjEeTs3qVT/+gzhZGLKjex4lc+dNiaLA92hDwmt6AG9WO/j2RUlNQJw==",
+ "dev": true,
+ "engines": {
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
+ }
+ },
+ "node_modules/jest-editor-support/node_modules/expect": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-tWb6p3Dn1S8GTunR9jfsku6l6dkZrqZQ5smI+UWx0KIk5ugS0QuPo66w40NdWRWcH+JklC9Dk8Elh2S2M4FfSw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/expect-utils": "30.0.0-alpha.7",
+ "jest-get-type": "30.0.0-alpha.7",
+ "jest-matcher-utils": "30.0.0-alpha.7",
+ "jest-message-util": "30.0.0-alpha.7",
+ "jest-mock": "30.0.0-alpha.7",
+ "jest-util": "30.0.0-alpha.7"
+ },
+ "engines": {
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
+ }
+ },
+ "node_modules/jest-editor-support/node_modules/globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/jest-editor-support/node_modules/jest-diff": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-a2O+O+qBIhpUtKSwApNDN6zWqNuP1vfSN1maXmm0ix1+GkBezSdNWSGlcQqJNVM1cwSD/oQQo7EzhixpMi6TWQ==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "diff-sequences": "30.0.0-alpha.7",
+ "jest-get-type": "30.0.0-alpha.7",
+ "pretty-format": "30.0.0-alpha.7"
+ },
+ "engines": {
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
+ }
+ },
+ "node_modules/jest-editor-support/node_modules/jest-get-type": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-0Zt3y51PSw3FZxgRYyoC6TlKnL2Z2wMWS1NCQbs/CrmNEDRNpx9ZMF+UIByQgFcDT+fB3U/gwKeLtmSpNhJRNw==",
+ "dev": true,
+ "engines": {
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
+ }
+ },
+ "node_modules/jest-editor-support/node_modules/jest-haste-map": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-Yxxbsm00ne7b1kis8WEkCl1gf+7/TQl8S25iyGp+mDHvhzP8SFpX7Pi1Mi1D+Y0kAO8A0S+6s5UO9QXj9CKCcg==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "30.0.0-alpha.7",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "30.0.0-alpha.7",
+ "jest-util": "30.0.0-alpha.7",
+ "jest-worker": "30.0.0-alpha.7",
+ "micromatch": "^4.0.8",
+ "walker": "^1.0.8"
+ },
+ "engines": {
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "^2.3.2"
+ }
+ },
+ "node_modules/jest-editor-support/node_modules/jest-haste-map/node_modules/@jest/types": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-hrdUqtIjUMpoNlpmo4DQfe6fvD0Rk02kdOv0+AsAbO689llpzNmb+kLcojzKp/H2jVGqcYrUb0wNSRgn4KcuqA==",
+ "dev": true,
+ "dependencies": {
+ "@jest/pattern": "30.0.0-alpha.7",
+ "@jest/schemas": "30.0.0-alpha.7",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.8",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
+ }
+ },
+ "node_modules/jest-editor-support/node_modules/jest-matcher-utils": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-qD99h6nz8VXD+qimS4BSfFKtWXsDsFtKk10jGBdo5+yiuSViY/plr1MWKA1QpbJswXmqcTiPeoViNmhUKqjefw==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "jest-diff": "30.0.0-alpha.7",
+ "jest-get-type": "30.0.0-alpha.7",
+ "pretty-format": "30.0.0-alpha.7"
+ },
+ "engines": {
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
+ }
+ },
+ "node_modules/jest-editor-support/node_modules/jest-message-util": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-Wzfx5D8SQwdeb4iXex86ddzTMK2QTc0FUIIFEQ7VuQ+RWEcCRgpOPu6QaQqLl9X8q/JZ1yU/6ZIhb7dpJ6TnWw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "30.0.0-alpha.7",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.8",
+ "pretty-format": "30.0.0-alpha.7",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
+ }
+ },
+ "node_modules/jest-editor-support/node_modules/jest-message-util/node_modules/@jest/types": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-hrdUqtIjUMpoNlpmo4DQfe6fvD0Rk02kdOv0+AsAbO689llpzNmb+kLcojzKp/H2jVGqcYrUb0wNSRgn4KcuqA==",
+ "dev": true,
+ "dependencies": {
+ "@jest/pattern": "30.0.0-alpha.7",
+ "@jest/schemas": "30.0.0-alpha.7",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.8",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
+ }
+ },
+ "node_modules/jest-editor-support/node_modules/jest-mock": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-HQc7Uem+l5hzVZNMKpUV5F27AahfgmMuYbyRT5NV9OGD2WGkw9BouKAcV5tFGykcQc2+Rt5kk/hF1l5qi4Iwrw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "30.0.0-alpha.7",
+ "@types/node": "*",
+ "jest-util": "30.0.0-alpha.7"
+ },
+ "engines": {
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
+ }
+ },
+ "node_modules/jest-editor-support/node_modules/jest-mock/node_modules/@jest/types": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-hrdUqtIjUMpoNlpmo4DQfe6fvD0Rk02kdOv0+AsAbO689llpzNmb+kLcojzKp/H2jVGqcYrUb0wNSRgn4KcuqA==",
+ "dev": true,
+ "dependencies": {
+ "@jest/pattern": "30.0.0-alpha.7",
+ "@jest/schemas": "30.0.0-alpha.7",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.8",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
}
},
- "node_modules/jest-config": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz",
- "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==",
+ "node_modules/jest-editor-support/node_modules/jest-regex-util": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-EUHpErwer3WQVcX1wKlvGHtIzVnGz5PzFVzp3/PzI+kTGduDvo0JuOnKHWuBYVwc5TADQmrdNiVU3+25swZoug==",
+ "dev": true,
+ "engines": {
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
+ }
+ },
+ "node_modules/jest-editor-support/node_modules/jest-snapshot": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-c9T892KMUTJJp0FtiR/ynFcIWeS5y7bH/DItXUws1aBO4BA6BxU/qG/1CBHCqmuSFPLmYaKy0wGPEdbXmXchEQ==",
"dev": true,
"dependencies": {
"@babel/core": "^7.11.6",
- "@jest/test-sequencer": "^29.7.0",
- "@jest/types": "^29.6.3",
- "babel-jest": "^29.7.0",
+ "@babel/generator": "^7.7.2",
+ "@babel/plugin-syntax-jsx": "^7.7.2",
+ "@babel/plugin-syntax-typescript": "^7.7.2",
+ "@babel/types": "^7.3.3",
+ "@jest/expect-utils": "30.0.0-alpha.7",
+ "@jest/snapshot-utils": "30.0.0-alpha.7",
+ "@jest/transform": "30.0.0-alpha.7",
+ "@jest/types": "30.0.0-alpha.7",
+ "babel-preset-current-node-syntax": "^1.0.0",
"chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "deepmerge": "^4.2.2",
- "glob": "^7.1.3",
+ "expect": "30.0.0-alpha.7",
"graceful-fs": "^4.2.9",
- "jest-circus": "^29.7.0",
- "jest-environment-node": "^29.7.0",
- "jest-get-type": "^29.6.3",
- "jest-regex-util": "^29.6.3",
- "jest-resolve": "^29.7.0",
- "jest-runner": "^29.7.0",
- "jest-util": "^29.7.0",
- "jest-validate": "^29.7.0",
- "micromatch": "^4.0.4",
- "parse-json": "^5.2.0",
- "pretty-format": "^29.7.0",
- "slash": "^3.0.0",
- "strip-json-comments": "^3.1.1"
+ "jest-diff": "30.0.0-alpha.7",
+ "jest-get-type": "30.0.0-alpha.7",
+ "jest-matcher-utils": "30.0.0-alpha.7",
+ "jest-message-util": "30.0.0-alpha.7",
+ "jest-util": "30.0.0-alpha.7",
+ "pretty-format": "30.0.0-alpha.7",
+ "semver": "^7.5.3",
+ "synckit": "^0.9.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "peerDependencies": {
- "@types/node": "*",
- "ts-node": ">=9.0.0"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "ts-node": {
- "optional": true
- }
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
}
},
- "node_modules/jest-config/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "node_modules/jest-editor-support/node_modules/jest-snapshot/node_modules/@jest/types": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-hrdUqtIjUMpoNlpmo4DQfe6fvD0Rk02kdOv0+AsAbO689llpzNmb+kLcojzKp/H2jVGqcYrUb0wNSRgn4KcuqA==",
"dev": true,
"dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "@jest/pattern": "30.0.0-alpha.7",
+ "@jest/schemas": "30.0.0-alpha.7",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.8",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
}
},
- "node_modules/jest-config/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
+ "node_modules/jest-editor-support/node_modules/jest-util": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-8slx+UQVqYE7WgkOyAab//u0YlTKXFIv31+nsHNFpT0boE5E/w4uJ/HSer0SWpUOotcrGLveeWYi2Pyy8gxVfg==",
"dev": true,
"dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "@jest/types": "30.0.0-alpha.7",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^4.0.0"
},
"engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
}
},
- "node_modules/jest-config/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "node_modules/jest-editor-support/node_modules/jest-util/node_modules/@jest/types": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-hrdUqtIjUMpoNlpmo4DQfe6fvD0Rk02kdOv0+AsAbO689llpzNmb+kLcojzKp/H2jVGqcYrUb0wNSRgn4KcuqA==",
"dev": true,
"dependencies": {
- "brace-expansion": "^1.1.7"
+ "@jest/pattern": "30.0.0-alpha.7",
+ "@jest/schemas": "30.0.0-alpha.7",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.8",
+ "chalk": "^4.0.0"
},
"engines": {
- "node": "*"
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
}
},
- "node_modules/jest-diff": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz",
- "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==",
+ "node_modules/jest-editor-support/node_modules/jest-worker": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-kL3vimPjBpN1PKymyD1JYJM5SDTzqtkIs4TcaI4nUIktJEVulnZf0j4YjaAtnYflFohJfgmcPKP6IHqPHcn6dw==",
"dev": true,
"dependencies": {
- "chalk": "^4.0.0",
- "diff-sequences": "^29.6.3",
- "jest-get-type": "^29.6.3",
- "pretty-format": "^29.7.0"
+ "@types/node": "*",
+ "@ungap/structured-clone": "^1.2.0",
+ "jest-util": "30.0.0-alpha.7",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
}
},
- "node_modules/jest-docblock": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz",
- "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==",
+ "node_modules/jest-editor-support/node_modules/picomatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/jest-editor-support/node_modules/pretty-format": {
+ "version": "30.0.0-alpha.7",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.0-alpha.7.tgz",
+ "integrity": "sha512-2gg8UNJxO+v6IiWydXPTM2LvCuIBxT2RC53Ind6IW0Cu9zvxoCMKeAAVV9nfukZyK01GFdYXhoH2zW18PsA6MQ==",
"dev": true,
"dependencies": {
- "detect-newline": "^3.0.0"
+ "@jest/schemas": "30.0.0-alpha.7",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^16.10.0 || ^18.12.0 || >=20.0.0"
}
},
- "node_modules/jest-each": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz",
- "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==",
+ "node_modules/jest-editor-support/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,
"dependencies": {
- "@jest/types": "^29.6.3",
- "chalk": "^4.0.0",
- "jest-get-type": "^29.6.3",
- "jest-util": "^29.7.0",
- "pretty-format": "^29.7.0"
+ "has-flag": "^4.0.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
"node_modules/jest-environment-node": {
@@ -7778,42 +8600,6 @@
"fsevents": "^2.3.2"
}
},
- "node_modules/jest-haste-map/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/jest-haste-map/node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/jest-haste-map/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/jest-leak-detector": {
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz",
@@ -8362,12 +9148,6 @@
"integrity": "sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==",
"dev": true
},
- "node_modules/just-extend": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz",
- "integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==",
- "dev": true
- },
"node_modules/keyv": {
"version": "4.5.4",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
@@ -9344,19 +10124,6 @@
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
- "node_modules/mocha/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/mocha/node_modules/binary-extensions": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
@@ -9393,20 +10160,6 @@
"fsevents": "~2.3.2"
}
},
- "node_modules/mocha/node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
"node_modules/mocha/node_modules/glob": {
"version": "10.4.5",
"resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
@@ -9493,15 +10246,6 @@
"node": ">=10"
}
},
- "node_modules/mocha/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/mocha/node_modules/path-scurry": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
@@ -9637,28 +10381,6 @@
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
"dev": true
},
- "node_modules/nise": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/nise/-/nise-6.1.1.tgz",
- "integrity": "sha512-aMSAzLVY7LyeM60gvBS423nBmIPP+Wy7St7hsb+8/fc1HmeoHJfLO8CKse4u3BtOZvQLJghYPI2i/1WZrEj5/g==",
- "dev": true,
- "dependencies": {
- "@sinonjs/commons": "^3.0.1",
- "@sinonjs/fake-timers": "^13.0.1",
- "@sinonjs/text-encoding": "^0.7.3",
- "just-extend": "^6.2.0",
- "path-to-regexp": "^8.1.0"
- }
- },
- "node_modules/nise/node_modules/@sinonjs/fake-timers": {
- "version": "13.0.5",
- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz",
- "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==",
- "dev": true,
- "dependencies": {
- "@sinonjs/commons": "^3.0.1"
- }
- },
"node_modules/node-fetch": {
"version": "2.6.7",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
@@ -9825,6 +10547,15 @@
"node": "^16.14.0 || >=18.0.0"
}
},
+ "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/npm-bundled": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz",
@@ -10507,15 +11238,6 @@
"node": "20 || >=22"
}
},
- "node_modules/path-to-regexp": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz",
- "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==",
- "dev": true,
- "engines": {
- "node": ">=16"
- }
- },
"node_modules/path-type": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
@@ -11539,16 +12261,15 @@
}
},
"node_modules/sinon": {
- "version": "19.0.4",
- "resolved": "https://registry.npmjs.org/sinon/-/sinon-19.0.4.tgz",
- "integrity": "sha512-myidFob7fjmYHJb+CHNLtAYScxn3sngGq4t75L2rCGGpE/k4OQVkN3KE5FsN+XkO2+fcDZ65PGvq3KHrlLAm7g==",
+ "version": "20.0.0",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-20.0.0.tgz",
+ "integrity": "sha512-+FXOAbdnj94AQIxH0w1v8gzNxkawVvNqE3jUzRLptR71Oykeu2RrQXXl/VQjKay+Qnh73fDt/oDfMo6xMeDQbQ==",
"dev": true,
"dependencies": {
"@sinonjs/commons": "^3.0.1",
"@sinonjs/fake-timers": "^13.0.5",
"@sinonjs/samsam": "^8.0.1",
"diff": "^7.0.0",
- "nise": "^6.1.1",
"supports-color": "^7.2.0"
},
"funding": {
@@ -12022,6 +12743,22 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/synckit": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz",
+ "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==",
+ "dev": true,
+ "dependencies": {
+ "@pkgr/core": "^0.1.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/unts"
+ }
+ },
"node_modules/tapable": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
@@ -13417,6 +14154,7 @@
"npm-package": {
"name": "@microsoft/kiota",
"version": "1.0.0",
+ "hasInstallScript": true,
"license": "MIT",
"dependencies": {
"adm-zip": "^0.5.16",
@@ -13424,11 +14162,18 @@
"uuid": "^11.1.0",
"vscode-jsonrpc": "^8.2.1"
},
+ "bin": {
+ "kiota": "scripts/cli.js"
+ },
"devDependencies": {
+ "@stylistic/eslint-plugin": "^4.2.0",
"@types/adm-zip": "^0.5.7",
"@types/jest": "^29.5.14",
+ "@typescript-eslint/eslint-plugin": "^8.29.1",
+ "eslint": "^9.24.0",
"glob": "^11.0.1",
"jest": "^29.7.0",
+ "jest-editor-support": "^32.0.0-beta.1",
"rimraf": "^6.0.1",
"ts-jest": "^29.3.1",
"ts-loader": "^9.5.2"