diff --git a/.azure-pipelines/ci-build.yml b/.azure-pipelines/ci-build.yml
index 277200dc9d..6dc9012172 100644
--- a/.azure-pipelines/ci-build.yml
+++ b/.azure-pipelines/ci-build.yml
@@ -154,10 +154,10 @@ extends:
version: 8.x
# Install the nuget tool.
- - task: NuGetToolInstaller@0
- displayName: "Use NuGet >=6.1.0"
+ - task: NuGetToolInstaller@1
+ displayName: "Use NuGet >=6.11.0"
inputs:
- versionSpec: ">=6.1.0"
+ versionSpec: ">=6.11.0"
checkLatest: true
- pwsh: $(Build.SourcesDirectory)/scripts/get-prerelease-version.ps1 -currentBranch $(Build.SourceBranch) -previewBranch ${{ parameters.previewBranch }} -excludeHeadingDash
diff --git a/it/python/requirements-dev.txt b/it/python/requirements-dev.txt
index e5ede76a74..e26a11f28f 100644
--- a/it/python/requirements-dev.txt
+++ b/it/python/requirements-dev.txt
@@ -40,7 +40,7 @@ platformdirs==4.2.2 ; python_version >= '3.7'
pluggy==1.5.0 ; python_version >= '3.7'
-pylint==3.2.6
+pylint==3.2.7
pytest==8.3.2
@@ -136,5 +136,5 @@ sniffio==1.3.1 ; python_version >= '3.7'
uritemplate==4.1.1 ; python_version >= '3.6'
-yarl==1.9.4 ; python_version >= '3.7'
+yarl==1.9.7 ; python_version >= '3.7'
diff --git a/it/typescript/package-lock.json b/it/typescript/package-lock.json
index 906b3a78cf..40ab6f072c 100644
--- a/it/typescript/package-lock.json
+++ b/it/typescript/package-lock.json
@@ -22,10 +22,10 @@
},
"devDependencies": {
"@es-exec/esbuild-plugin-start": "^0.0.5",
- "@stylistic/eslint-plugin-ts": "^2.7.1",
- "@types/node": "^22.5.1",
- "@typescript-eslint/eslint-plugin": "^8.3.0",
- "@typescript-eslint/parser": "^8.3.0",
+ "@stylistic/eslint-plugin-ts": "^2.7.2",
+ "@types/node": "^22.5.2",
+ "@typescript-eslint/eslint-plugin": "^8.4.0",
+ "@typescript-eslint/parser": "^8.4.0",
"esbuild": "^0.23.1",
"eslint": "^9.9.1",
"eslint-config-prettier": "^9.1.0",
@@ -886,9 +886,9 @@
"integrity": "sha512-35k/Nn+wlqkOf9AxIlhOA19mndrUMDspRuV3lO/9IgqKk0W7b8LwuWup5bGt4wZ1sCZij/lDTQMTY9WKTKrusg=="
},
"node_modules/@stylistic/eslint-plugin-ts": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-ts/-/eslint-plugin-ts-2.7.1.tgz",
- "integrity": "sha512-pjqpqQ++xYAKvjsKJXUeLrbrkySkv2uT8BN/XRZHvZinb6XL4Dv2o3zHypKdmMANoZiAANwvLYcKoAmETVbxGw==",
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-ts/-/eslint-plugin-ts-2.7.2.tgz",
+ "integrity": "sha512-uf3hmqWLK1upUnTmUSn4XDvNu1o6b1nY+xdema8dGGY+zH663V+0cHN3xqexDuQ8do1f0wV3hChkfmz3jWC4Uw==",
"dev": true,
"dependencies": {
"@types/eslint": "^9.6.1",
@@ -938,25 +938,25 @@
"dev": true
},
"node_modules/@types/node": {
- "version": "22.5.1",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.1.tgz",
- "integrity": "sha512-KkHsxej0j9IW1KKOOAA/XBA0z08UFSrRQHErzEfA3Vgq57eXIMYboIlHJuYIfd+lwCQjtKqUu3UnmKbtUc9yRw==",
+ "version": "22.5.2",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.2.tgz",
+ "integrity": "sha512-acJsPTEqYqulZS/Yp/S3GgeE6GZ0qYODUR8aVr/DkhHQ8l9nd4j5x1/ZJy9/gHrRlFMqkO6i0I3E27Alu4jjPg==",
"dev": true,
"dependencies": {
"undici-types": "~6.19.2"
}
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.3.0.tgz",
- "integrity": "sha512-FLAIn63G5KH+adZosDYiutqkOkYEx0nvcwNNfJAf+c7Ae/H35qWwTYvPZUKFj5AS+WfHG/WJJfWnDnyNUlp8UA==",
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.4.0.tgz",
+ "integrity": "sha512-rg8LGdv7ri3oAlenMACk9e+AR4wUV0yrrG+XKsGKOK0EVgeEDqurkXMPILG2836fW4ibokTB5v4b6Z9+GYQDEw==",
"dev": true,
"dependencies": {
"@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.3.0",
- "@typescript-eslint/type-utils": "8.3.0",
- "@typescript-eslint/utils": "8.3.0",
- "@typescript-eslint/visitor-keys": "8.3.0",
+ "@typescript-eslint/scope-manager": "8.4.0",
+ "@typescript-eslint/type-utils": "8.4.0",
+ "@typescript-eslint/utils": "8.4.0",
+ "@typescript-eslint/visitor-keys": "8.4.0",
"graphemer": "^1.4.0",
"ignore": "^5.3.1",
"natural-compare": "^1.4.0",
@@ -980,15 +980,15 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.3.0.tgz",
- "integrity": "sha512-h53RhVyLu6AtpUzVCYLPhZGL5jzTD9fZL+SYf/+hYOx2bDkyQXztXSc4tbvKYHzfMXExMLiL9CWqJmVz6+78IQ==",
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.4.0.tgz",
+ "integrity": "sha512-NHgWmKSgJk5K9N16GIhQ4jSobBoJwrmURaLErad0qlLjrpP5bECYg+wxVTGlGZmJbU03jj/dfnb6V9bw+5icsA==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "8.3.0",
- "@typescript-eslint/types": "8.3.0",
- "@typescript-eslint/typescript-estree": "8.3.0",
- "@typescript-eslint/visitor-keys": "8.3.0",
+ "@typescript-eslint/scope-manager": "8.4.0",
+ "@typescript-eslint/types": "8.4.0",
+ "@typescript-eslint/typescript-estree": "8.4.0",
+ "@typescript-eslint/visitor-keys": "8.4.0",
"debug": "^4.3.4"
},
"engines": {
@@ -1008,13 +1008,13 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.3.0.tgz",
- "integrity": "sha512-mz2X8WcN2nVu5Hodku+IR8GgCOl4C0G/Z1ruaWN4dgec64kDBabuXyPAr+/RgJtumv8EEkqIzf3X2U5DUKB2eg==",
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.4.0.tgz",
+ "integrity": "sha512-n2jFxLeY0JmKfUqy3P70rs6vdoPjHK8P/w+zJcV3fk0b0BwRXC/zxRTEnAsgYT7MwdQDt/ZEbtdzdVC+hcpF0A==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "8.3.0",
- "@typescript-eslint/visitor-keys": "8.3.0"
+ "@typescript-eslint/types": "8.4.0",
+ "@typescript-eslint/visitor-keys": "8.4.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -1025,13 +1025,13 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.3.0.tgz",
- "integrity": "sha512-wrV6qh//nLbfXZQoj32EXKmwHf4b7L+xXLrP3FZ0GOUU72gSvLjeWUl5J5Ue5IwRxIV1TfF73j/eaBapxx99Lg==",
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.4.0.tgz",
+ "integrity": "sha512-pu2PAmNrl9KX6TtirVOrbLPLwDmASpZhK/XU7WvoKoCUkdtq9zF7qQ7gna0GBZFN0hci0vHaSusiL2WpsQk37A==",
"dev": true,
"dependencies": {
- "@typescript-eslint/typescript-estree": "8.3.0",
- "@typescript-eslint/utils": "8.3.0",
+ "@typescript-eslint/typescript-estree": "8.4.0",
+ "@typescript-eslint/utils": "8.4.0",
"debug": "^4.3.4",
"ts-api-utils": "^1.3.0"
},
@@ -1049,9 +1049,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.3.0.tgz",
- "integrity": "sha512-y6sSEeK+facMaAyixM36dQ5NVXTnKWunfD1Ft4xraYqxP0lC0POJmIaL/mw72CUMqjY9qfyVfXafMeaUj0noWw==",
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.4.0.tgz",
+ "integrity": "sha512-T1RB3KQdskh9t3v/qv7niK6P8yvn7ja1mS7QK7XfRVL6wtZ8/mFs/FHf4fKvTA0rKnqnYxl/uHFNbnEt0phgbw==",
"dev": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -1062,13 +1062,13 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.3.0.tgz",
- "integrity": "sha512-Mq7FTHl0R36EmWlCJWojIC1qn/ZWo2YiWYc1XVtasJ7FIgjo0MVv9rZWXEE7IK2CGrtwe1dVOxWwqXUdNgfRCA==",
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.4.0.tgz",
+ "integrity": "sha512-kJ2OIP4dQw5gdI4uXsaxUZHRwWAGpREJ9Zq6D5L0BweyOrWsL6Sz0YcAZGWhvKnH7fm1J5YFE1JrQL0c9dd53A==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "8.3.0",
- "@typescript-eslint/visitor-keys": "8.3.0",
+ "@typescript-eslint/types": "8.4.0",
+ "@typescript-eslint/visitor-keys": "8.4.0",
"debug": "^4.3.4",
"fast-glob": "^3.3.2",
"is-glob": "^4.0.3",
@@ -1114,15 +1114,15 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.3.0.tgz",
- "integrity": "sha512-F77WwqxIi/qGkIGOGXNBLV7nykwfjLsdauRB/DOFPdv6LTF3BHHkBpq81/b5iMPSF055oO2BiivDJV4ChvNtXA==",
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.4.0.tgz",
+ "integrity": "sha512-swULW8n1IKLjRAgciCkTCafyTHHfwVQFt8DovmaF69sKbOxTSFMmIZaSHjqO9i/RV0wIblaawhzvtva8Nmm7lQ==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
- "@typescript-eslint/scope-manager": "8.3.0",
- "@typescript-eslint/types": "8.3.0",
- "@typescript-eslint/typescript-estree": "8.3.0"
+ "@typescript-eslint/scope-manager": "8.4.0",
+ "@typescript-eslint/types": "8.4.0",
+ "@typescript-eslint/typescript-estree": "8.4.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -1136,12 +1136,12 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.3.0.tgz",
- "integrity": "sha512-RmZwrTbQ9QveF15m/Cl28n0LXD6ea2CjkhH5rQ55ewz3H24w+AMCJHPVYaZ8/0HoG8Z3cLLFFycRXxeO2tz9FA==",
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.4.0.tgz",
+ "integrity": "sha512-zTQD6WLNTre1hj5wp09nBIDiOc2U5r/qmzo7wxPn4ZgAjHql09EofqhF9WF+fZHzL5aCyaIpPcT2hyxl73kr9A==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "8.3.0",
+ "@typescript-eslint/types": "8.4.0",
"eslint-visitor-keys": "^3.4.3"
},
"engines": {
diff --git a/it/typescript/package.json b/it/typescript/package.json
index 832164a45c..25641419f0 100644
--- a/it/typescript/package.json
+++ b/it/typescript/package.json
@@ -19,10 +19,10 @@
"prettier": "./.prettierrc.json",
"devDependencies": {
"@es-exec/esbuild-plugin-start": "^0.0.5",
- "@stylistic/eslint-plugin-ts": "^2.7.1",
- "@types/node": "^22.5.1",
- "@typescript-eslint/eslint-plugin": "^8.3.0",
- "@typescript-eslint/parser": "^8.3.0",
+ "@stylistic/eslint-plugin-ts": "^2.7.2",
+ "@types/node": "^22.5.2",
+ "@typescript-eslint/eslint-plugin": "^8.4.0",
+ "@typescript-eslint/parser": "^8.4.0",
"esbuild": "^0.23.1",
"eslint": "^9.9.1",
"eslint-config-prettier": "^9.1.0",
diff --git a/src/Kiota.Builder/Kiota.Builder.csproj b/src/Kiota.Builder/Kiota.Builder.csproj
index ac1bc23035..35bc5f511e 100644
--- a/src/Kiota.Builder/Kiota.Builder.csproj
+++ b/src/Kiota.Builder/Kiota.Builder.csproj
@@ -44,13 +44,13 @@
-
+
-
+
-
+
diff --git a/src/kiota/kiota.csproj b/src/kiota/kiota.csproj
index 4a4ebe6808..8ced68f9c7 100644
--- a/src/kiota/kiota.csproj
+++ b/src/kiota/kiota.csproj
@@ -48,7 +48,7 @@
-
+
diff --git a/tests/Kiota.Builder.Tests/Kiota.Builder.Tests.csproj b/tests/Kiota.Builder.Tests/Kiota.Builder.Tests.csproj
index b3fc9acafa..27f319ca7c 100644
--- a/tests/Kiota.Builder.Tests/Kiota.Builder.Tests.csproj
+++ b/tests/Kiota.Builder.Tests/Kiota.Builder.Tests.csproj
@@ -18,7 +18,7 @@
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/tests/Kiota.Tests/Kiota.Tests.csproj b/tests/Kiota.Tests/Kiota.Tests.csproj
index 702c9592d1..7b021178fd 100644
--- a/tests/Kiota.Tests/Kiota.Tests.csproj
+++ b/tests/Kiota.Tests/Kiota.Tests.csproj
@@ -21,7 +21,7 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
+
diff --git a/vscode/microsoft-kiota/package-lock.json b/vscode/microsoft-kiota/package-lock.json
index 39ce18689c..d75dcab660 100644
--- a/vscode/microsoft-kiota/package-lock.json
+++ b/vscode/microsoft-kiota/package-lock.json
@@ -21,8 +21,8 @@
"@types/mocha": "^10.0.7",
"@types/node": "22.x",
"@types/vscode": "^1.92.0",
- "@typescript-eslint/eslint-plugin": "^8.3.0",
- "@typescript-eslint/parser": "^8.3.0",
+ "@typescript-eslint/eslint-plugin": "^8.4.0",
+ "@typescript-eslint/parser": "^8.4.0",
"@vscode/test-electron": "^2.4.1",
"eslint": "^9.9.1",
"glob": "^11.0.0",
@@ -535,16 +535,16 @@
"dev": true
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.3.0.tgz",
- "integrity": "sha512-FLAIn63G5KH+adZosDYiutqkOkYEx0nvcwNNfJAf+c7Ae/H35qWwTYvPZUKFj5AS+WfHG/WJJfWnDnyNUlp8UA==",
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.4.0.tgz",
+ "integrity": "sha512-rg8LGdv7ri3oAlenMACk9e+AR4wUV0yrrG+XKsGKOK0EVgeEDqurkXMPILG2836fW4ibokTB5v4b6Z9+GYQDEw==",
"dev": true,
"dependencies": {
"@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.3.0",
- "@typescript-eslint/type-utils": "8.3.0",
- "@typescript-eslint/utils": "8.3.0",
- "@typescript-eslint/visitor-keys": "8.3.0",
+ "@typescript-eslint/scope-manager": "8.4.0",
+ "@typescript-eslint/type-utils": "8.4.0",
+ "@typescript-eslint/utils": "8.4.0",
+ "@typescript-eslint/visitor-keys": "8.4.0",
"graphemer": "^1.4.0",
"ignore": "^5.3.1",
"natural-compare": "^1.4.0",
@@ -568,15 +568,15 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.3.0.tgz",
- "integrity": "sha512-h53RhVyLu6AtpUzVCYLPhZGL5jzTD9fZL+SYf/+hYOx2bDkyQXztXSc4tbvKYHzfMXExMLiL9CWqJmVz6+78IQ==",
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.4.0.tgz",
+ "integrity": "sha512-NHgWmKSgJk5K9N16GIhQ4jSobBoJwrmURaLErad0qlLjrpP5bECYg+wxVTGlGZmJbU03jj/dfnb6V9bw+5icsA==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "8.3.0",
- "@typescript-eslint/types": "8.3.0",
- "@typescript-eslint/typescript-estree": "8.3.0",
- "@typescript-eslint/visitor-keys": "8.3.0",
+ "@typescript-eslint/scope-manager": "8.4.0",
+ "@typescript-eslint/types": "8.4.0",
+ "@typescript-eslint/typescript-estree": "8.4.0",
+ "@typescript-eslint/visitor-keys": "8.4.0",
"debug": "^4.3.4"
},
"engines": {
@@ -596,13 +596,13 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.3.0.tgz",
- "integrity": "sha512-mz2X8WcN2nVu5Hodku+IR8GgCOl4C0G/Z1ruaWN4dgec64kDBabuXyPAr+/RgJtumv8EEkqIzf3X2U5DUKB2eg==",
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.4.0.tgz",
+ "integrity": "sha512-n2jFxLeY0JmKfUqy3P70rs6vdoPjHK8P/w+zJcV3fk0b0BwRXC/zxRTEnAsgYT7MwdQDt/ZEbtdzdVC+hcpF0A==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "8.3.0",
- "@typescript-eslint/visitor-keys": "8.3.0"
+ "@typescript-eslint/types": "8.4.0",
+ "@typescript-eslint/visitor-keys": "8.4.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -613,13 +613,13 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.3.0.tgz",
- "integrity": "sha512-wrV6qh//nLbfXZQoj32EXKmwHf4b7L+xXLrP3FZ0GOUU72gSvLjeWUl5J5Ue5IwRxIV1TfF73j/eaBapxx99Lg==",
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.4.0.tgz",
+ "integrity": "sha512-pu2PAmNrl9KX6TtirVOrbLPLwDmASpZhK/XU7WvoKoCUkdtq9zF7qQ7gna0GBZFN0hci0vHaSusiL2WpsQk37A==",
"dev": true,
"dependencies": {
- "@typescript-eslint/typescript-estree": "8.3.0",
- "@typescript-eslint/utils": "8.3.0",
+ "@typescript-eslint/typescript-estree": "8.4.0",
+ "@typescript-eslint/utils": "8.4.0",
"debug": "^4.3.4",
"ts-api-utils": "^1.3.0"
},
@@ -637,9 +637,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.3.0.tgz",
- "integrity": "sha512-y6sSEeK+facMaAyixM36dQ5NVXTnKWunfD1Ft4xraYqxP0lC0POJmIaL/mw72CUMqjY9qfyVfXafMeaUj0noWw==",
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.4.0.tgz",
+ "integrity": "sha512-T1RB3KQdskh9t3v/qv7niK6P8yvn7ja1mS7QK7XfRVL6wtZ8/mFs/FHf4fKvTA0rKnqnYxl/uHFNbnEt0phgbw==",
"dev": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -650,13 +650,13 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.3.0.tgz",
- "integrity": "sha512-Mq7FTHl0R36EmWlCJWojIC1qn/ZWo2YiWYc1XVtasJ7FIgjo0MVv9rZWXEE7IK2CGrtwe1dVOxWwqXUdNgfRCA==",
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.4.0.tgz",
+ "integrity": "sha512-kJ2OIP4dQw5gdI4uXsaxUZHRwWAGpREJ9Zq6D5L0BweyOrWsL6Sz0YcAZGWhvKnH7fm1J5YFE1JrQL0c9dd53A==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "8.3.0",
- "@typescript-eslint/visitor-keys": "8.3.0",
+ "@typescript-eslint/types": "8.4.0",
+ "@typescript-eslint/visitor-keys": "8.4.0",
"debug": "^4.3.4",
"fast-glob": "^3.3.2",
"is-glob": "^4.0.3",
@@ -702,15 +702,15 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.3.0.tgz",
- "integrity": "sha512-F77WwqxIi/qGkIGOGXNBLV7nykwfjLsdauRB/DOFPdv6LTF3BHHkBpq81/b5iMPSF055oO2BiivDJV4ChvNtXA==",
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.4.0.tgz",
+ "integrity": "sha512-swULW8n1IKLjRAgciCkTCafyTHHfwVQFt8DovmaF69sKbOxTSFMmIZaSHjqO9i/RV0wIblaawhzvtva8Nmm7lQ==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
- "@typescript-eslint/scope-manager": "8.3.0",
- "@typescript-eslint/types": "8.3.0",
- "@typescript-eslint/typescript-estree": "8.3.0"
+ "@typescript-eslint/scope-manager": "8.4.0",
+ "@typescript-eslint/types": "8.4.0",
+ "@typescript-eslint/typescript-estree": "8.4.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -724,12 +724,12 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.3.0.tgz",
- "integrity": "sha512-RmZwrTbQ9QveF15m/Cl28n0LXD6ea2CjkhH5rQ55ewz3H24w+AMCJHPVYaZ8/0HoG8Z3cLLFFycRXxeO2tz9FA==",
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.4.0.tgz",
+ "integrity": "sha512-zTQD6WLNTre1hj5wp09nBIDiOc2U5r/qmzo7wxPn4ZgAjHql09EofqhF9WF+fZHzL5aCyaIpPcT2hyxl73kr9A==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "8.3.0",
+ "@typescript-eslint/types": "8.4.0",
"eslint-visitor-keys": "^3.4.3"
},
"engines": {
diff --git a/vscode/microsoft-kiota/package.json b/vscode/microsoft-kiota/package.json
index e2a368f018..5733280fdc 100644
--- a/vscode/microsoft-kiota/package.json
+++ b/vscode/microsoft-kiota/package.json
@@ -464,8 +464,8 @@
"@types/mocha": "^10.0.7",
"@types/node": "22.x",
"@types/vscode": "^1.92.0",
- "@typescript-eslint/eslint-plugin": "^8.3.0",
- "@typescript-eslint/parser": "^8.3.0",
+ "@typescript-eslint/eslint-plugin": "^8.4.0",
+ "@typescript-eslint/parser": "^8.4.0",
"@vscode/test-electron": "^2.4.1",
"eslint": "^9.9.1",
"glob": "^11.0.0",
diff --git a/vscode/microsoft-kiota/src/extension.ts b/vscode/microsoft-kiota/src/extension.ts
index cf86cb190d..dafe671129 100644
--- a/vscode/microsoft-kiota/src/extension.ts
+++ b/vscode/microsoft-kiota/src/extension.ts
@@ -145,9 +145,9 @@ export async function activate(
let languagesInformation = await getLanguageInformation(context);
let availableStateInfo: Partial;
- if(Object.keys(deepLinkParams).length > 0){
- if (!deepLinkParams["name"] && openApiTreeProvider.apiTitle ){
- deepLinkParams["name"] = getSanitizedString(openApiTreeProvider.apiTitle);
+ if (Object.keys(deepLinkParams).length > 0) {
+ if (!deepLinkParams.name && openApiTreeProvider.apiTitle) {
+ deepLinkParams.name = getSanitizedString(openApiTreeProvider.apiTitle);
}
availableStateInfo = transformToGenerationconfig(deepLinkParams);
} else {
@@ -212,8 +212,7 @@ export async function activate(
'fx-extension.createprojectfromkiota',
[
pathOfSpec,
- pathPluginManifest,
- true
+ pathPluginManifest
]
);
} catch (error) {
@@ -248,12 +247,12 @@ export async function activate(
) => {
// set deeplink params if exists
if (Object.keys(searchParams).length > 0) {
- let errorsArray: string [];
+ let errorsArray: string[];
[deepLinkParams, errorsArray] = validateDeepLinkQueryParams(searchParams);
- reporter.sendTelemetryEvent("DeepLinked searchOrOpenApiDescription", {
- "searchParameters": JSON.stringify(searchParams),
- "validationErrors": errorsArray.join(", ")
- });
+ reporter.sendTelemetryEvent("DeepLinked searchOrOpenApiDescription", {
+ "searchParameters": JSON.stringify(searchParams),
+ "validationErrors": errorsArray.join(", ")
+ });
}
// proceed to enable loading of openapi description
diff --git a/vscode/microsoft-kiota/src/steps.ts b/vscode/microsoft-kiota/src/steps.ts
index 3a6a661f62..3a7667de70 100644
--- a/vscode/microsoft-kiota/src/steps.ts
+++ b/vscode/microsoft-kiota/src/steps.ts
@@ -3,6 +3,7 @@ import * as vscode from 'vscode';
import { Disposable, l10n, OpenDialogOptions, QuickInput, QuickInputButton, QuickInputButtons, QuickPickItem, Uri, window, workspace } from 'vscode';
import { allGenerationLanguages, generationLanguageToString, KiotaSearchResultItem, LanguagesInformation, maturityLevelToString } from './kiotaInterop';
import { findAppPackageDirectory, getWorkspaceJsonDirectory } from './util';
+import { createTemporaryFolder, isTemporaryDirectory } from './utilities/temporary-folder';
export async function filterSteps(existingFilter: string, filterCallback: (searchQuery: string) => void) {
const state = {} as Partial;
@@ -116,37 +117,37 @@ export async function searchSteps(searchCallBack: (searchQuery: string) => Thena
return state;
}
-export function transformToGenerationconfig(deepLinkParams: Record)
- : Partial
-{
+export function transformToGenerationconfig(deepLinkParams: Record)
+ : Partial {
const generationConfig: Partial = {};
- if (deepLinkParams.kind === "client")
- {
- generationConfig["generationType"] = "client";
- generationConfig["clientClassName"] = deepLinkParams.name;
- generationConfig["language"] = deepLinkParams.language;
+ if (deepLinkParams.kind === "client") {
+ generationConfig.generationType = "client";
+ generationConfig.clientClassName = deepLinkParams.name;
+ generationConfig.language = deepLinkParams.language;
}
- else if (deepLinkParams.kind === "plugin")
- {
- generationConfig["pluginName"] = deepLinkParams.name;
- switch(deepLinkParams.type){
+ else if (deepLinkParams.kind === "plugin") {
+ generationConfig.pluginName = deepLinkParams.name;
+ switch (deepLinkParams.type) {
case "apiplugin":
- generationConfig["generationType"] = "plugin";
- generationConfig["pluginTypes"] = ["ApiPlugin"];
+ generationConfig.generationType = "plugin";
+ generationConfig.pluginTypes = ["ApiPlugin"];
break;
case "openai":
- generationConfig["generationType"] = "plugin";
- generationConfig["pluginTypes"] = ['OpenAI'];
+ generationConfig.generationType = "plugin";
+ generationConfig.pluginTypes = ['OpenAI'];
break;
case "apimanifest":
- generationConfig["generationType"] = "apimanifest";
+ generationConfig.generationType = "apimanifest";
break;
- }
+ }
+ generationConfig.outputPath =
+ (deepLinkParams.source && deepLinkParams.source?.toLowerCase() === 'ttk')
+ ? createTemporaryFolder()
+ : undefined;
}
return generationConfig;
}
-
export async function generateSteps(existingConfiguration: Partial, languagesInformation?: LanguagesInformation) {
const state = { ...existingConfiguration } as Partial;
if (existingConfiguration.generationType && existingConfiguration.clientClassName && existingConfiguration.clientNamespaceName && existingConfiguration.outputPath && existingConfiguration.language &&
@@ -155,7 +156,7 @@ export async function generateSteps(existingConfiguration: Partial 0;
@@ -184,8 +185,8 @@ export async function generateSteps(existingConfiguration: Partial) {
- if (!state.generationType){
+ if (!state.generationType) {
const items = [l10n.t('Generate an API client'), l10n.t('Generate a plugin'), l10n.t('Generate an API manifest')];
const option = await input.showQuickPick({
title: l10n.t('What do you want to generate?'),
step: 1,
totalSteps: 1,
placeholder: l10n.t('Select an option'),
- items: items.map(x => ({label: x})),
+ items: items.map(x => ({ label: x })),
validate: validateIsNotEmpty,
shouldResume: shouldResume
});
- if(option.label === l10n.t('Generate an API client')) {
+ if (option.label === l10n.t('Generate an API client')) {
state.generationType = "client";
}
- else if(option.label === l10n.t('Generate a plugin')) {
+ else if (option.label === l10n.t('Generate a plugin')) {
state.generationType = "plugin";
}
- else if(option.label === l10n.t('Generate an API manifest')) {
+ else if (option.label === l10n.t('Generate an API manifest')) {
state.generationType = "apimanifest";
}
}
let nextStep = getNextStepForGenerationType(state.generationType?.toString() || '');
return (input: MultiStepInput) => nextStep(input, state);
- }
+ }
async function inputClientClassName(input: MultiStepInput, state: Partial) {
if (!state.clientClassName) {
state.clientClassName = await input.showInputBox({
@@ -312,7 +313,7 @@ export async function generateSteps(existingConfiguration: Partial) {
- if (!state.pluginName){
+ if (!state.pluginName) {
state.pluginName = await input.showInputBox({
title: `${l10n.t('Create a new plugin')} - ${l10n.t('plugin name')}`,
step: step++,
@@ -325,11 +326,11 @@ export async function generateSteps(existingConfiguration: Partial inputPluginType(input, state);
- }
+ return (input: MultiStepInput) => inputPluginType(input, state);
+ }
async function inputPluginType(input: MultiStepInput, state: Partial) {
if (!state.pluginTypes) {
- const items = ['API Plugin','Open AI'].map(x => ({ label: x})as QuickPickItem);
+ const items = ['API Plugin', 'Open AI'].map(x => ({ label: x }) as QuickPickItem);
const pluginTypes = await input.showQuickPick({
title: l10n.t('Choose a plugin type'),
step: step++,
@@ -344,7 +345,7 @@ export async function generateSteps(existingConfiguration: Partial inputPluginOutputPath(input, state);
}
async function inputPluginOutputPath(input: MultiStepInput, state: Partial) {
- while (true) {
+ while (!state.outputPath) {
const selectedOption = await input.showQuickPick({
title: `${l10n.t('Create a new plugin')} - ${l10n.t('output directory')}`,
step: 3,
@@ -382,7 +383,7 @@ export async function generateSteps(existingConfiguration: Partial) {
- if (!state.pluginName){
+ if (!state.pluginName) {
state.pluginName = await input.showInputBox({
title: `${l10n.t('Create a new manifest')} - ${l10n.t('manifest name')}`,
step: step++,
diff --git a/vscode/microsoft-kiota/src/utilities/temporary-folder.ts b/vscode/microsoft-kiota/src/utilities/temporary-folder.ts
new file mode 100644
index 0000000000..50ba33dba5
--- /dev/null
+++ b/vscode/microsoft-kiota/src/utilities/temporary-folder.ts
@@ -0,0 +1,33 @@
+import * as fs from 'fs';
+import * as os from 'os';
+import * as path from 'path';
+
+export function createTemporaryFolder(): string | undefined {
+ const uniqueFolderIdentifier = `kiota-${Date.now()}`;
+ const temporaryDirectory = os.tmpdir();
+ const temporaryDirectoryPath = path.join(temporaryDirectory, uniqueFolderIdentifier);
+
+ try {
+ createFolderInFileSystem(temporaryDirectoryPath);
+ return path.resolve(temporaryDirectoryPath);
+ } catch (error) {
+ return undefined;
+ }
+}
+
+function createFolderInFileSystem(directoryPath: string) {
+ const exists = fs.existsSync(directoryPath);
+ if (exists) {
+ return createTemporaryFolder();
+ }
+
+ try {
+ fs.mkdirSync(directoryPath);
+ } catch (err: unknown) {
+ throw new Error(`Error creating temporary directory: ${(err as Error).message}`);
+ }
+}
+
+export function isTemporaryDirectory(path: string): boolean {
+ return path.startsWith(os.tmpdir());
+}
\ No newline at end of file