From 216bad44aaf9ddf80554251778fa4429a20c1f6a Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Thu, 23 Jul 2026 19:18:39 +0800 Subject: [PATCH 1/5] Bump package version to 2.6.0 (#342) * Initial plan * Bump package version to 2.6.0 --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> --- package-lock.json | 4 ++-- package.json | 2 +- src/version.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 30cbd47..9d16248 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@azure/app-configuration-provider", - "version": "2.5.1", + "version": "2.6.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@azure/app-configuration-provider", - "version": "2.5.1", + "version": "2.6.0", "license": "MIT", "dependencies": { "@azure/app-configuration": "^1.11.0", diff --git a/package.json b/package.json index cddad01..7e906a2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@azure/app-configuration-provider", - "version": "2.5.1", + "version": "2.6.0", "description": "The JavaScript configuration provider for Azure App Configuration", "files": [ "dist/", diff --git a/src/version.ts b/src/version.ts index 6428e51..cd2a07a 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1,4 +1,4 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -export const VERSION = "2.5.1"; +export const VERSION = "2.6.0"; From 7d12e82298efa2f615a89fdf901e9e2b3e54bea0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Jul 2026 16:47:17 +0800 Subject: [PATCH 2/5] Bump @vitest/browser from 4.1.8 to 4.1.10 (#344) Bumps [@vitest/browser](https://github.com/vitest-dev/vitest/tree/HEAD/packages/browser) from 4.1.8 to 4.1.10. - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md) - [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.10/packages/browser) --- updated-dependencies: - dependency-name: "@vitest/browser" dependency-version: 4.1.10 dependency-type: direct:development ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 112 +++++++++++++++++++++++----------------------- 1 file changed, 56 insertions(+), 56 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9d16248..a9f08d6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1865,15 +1865,15 @@ } }, "node_modules/@vitest/browser": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@vitest/browser/-/browser-4.1.8.tgz", - "integrity": "sha512-u21VzX07HzlJYpFgkxmjEXar/tG2UqWGgyGG/46SrrPc7rSdCTPw5vuowopO9CIqF8UCUQzDFdbVnNpw6N0BfQ==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/browser/-/browser-4.1.10.tgz", + "integrity": "sha512-UDwuWGwXj646CBx/bQHOaJSX7np0I8JL/UKQYa1e4QrVHH8VdWtx8eaOuf8sy0ShwDgR6NjJAsp5eF6vjF6qng==", "dev": true, "license": "MIT", "dependencies": { "@blazediff/core": "1.9.1", - "@vitest/mocker": "4.1.8", - "@vitest/utils": "4.1.8", + "@vitest/mocker": "4.1.10", + "@vitest/utils": "4.1.10", "magic-string": "^0.30.21", "pngjs": "^7.0.0", "sirv": "^3.0.2", @@ -1884,18 +1884,18 @@ "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "vitest": "4.1.8" + "vitest": "4.1.10" } }, "node_modules/@vitest/browser-playwright": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@vitest/browser-playwright/-/browser-playwright-4.1.8.tgz", - "integrity": "sha512-SR7FqgegaexEg73xvf3ArtygXegagMdXnL0EZMpxrWvvhQxvicD/E8p0ib0J91riPRtQUViyh67Xjw3NqvyhVg==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/browser-playwright/-/browser-playwright-4.1.10.tgz", + "integrity": "sha512-nMoXGEiRpT7m3W7NsbvrM2aKNwiNHZf+zEpUCvMteGjZFvfT96Q9fh7QyB98dvDWXiKvrLxA7bJ1mCOOv+JQPw==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/browser": "4.1.8", - "@vitest/mocker": "4.1.8", + "@vitest/browser": "4.1.10", + "@vitest/mocker": "4.1.10", "tinyrainbow": "^3.1.0" }, "funding": { @@ -1903,7 +1903,7 @@ }, "peerDependencies": { "playwright": "*", - "vitest": "4.1.8" + "vitest": "4.1.10" }, "peerDependenciesMeta": { "playwright": { @@ -1912,16 +1912,16 @@ } }, "node_modules/@vitest/expect": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.8.tgz", - "integrity": "sha512-h3nDO677RDLEGlBxyQ5CW8RlMThSKSRLUePLOx09gNIWRL40edgA1GCZSZgf1W55MFAG6/Sw14KeaAnqv0NKdQ==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.10.tgz", + "integrity": "sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==", "dev": true, "license": "MIT", "dependencies": { "@standard-schema/spec": "^1.1.0", "@types/chai": "^5.2.2", - "@vitest/spy": "4.1.8", - "@vitest/utils": "4.1.8", + "@vitest/spy": "4.1.10", + "@vitest/utils": "4.1.10", "chai": "^6.2.2", "tinyrainbow": "^3.1.0" }, @@ -1940,13 +1940,13 @@ } }, "node_modules/@vitest/mocker": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.8.tgz", - "integrity": "sha512-LEiN/xe4OSIbKe9HQIp5OC24agGD9J5CnmMgsLohVVoOPWL9a2sBoR6VBx43jQZb7Kr1l4RCuyCJzcAa0+dojw==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.10.tgz", + "integrity": "sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "4.1.8", + "@vitest/spy": "4.1.10", "estree-walker": "^3.0.3", "magic-string": "^0.30.21" }, @@ -1977,9 +1977,9 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.8.tgz", - "integrity": "sha512-9GasEBxpZ1VYIpqHf/0+YGg121uSNwCKOJqIrTwWP/TB7DmFCiaBpNl3aPZzoLWfWkuqhbH8vJIVobZkvdo2cA==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.10.tgz", + "integrity": "sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q==", "dev": true, "license": "MIT", "dependencies": { @@ -1990,13 +1990,13 @@ } }, "node_modules/@vitest/runner": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.8.tgz", - "integrity": "sha512-EmVxeBAfMJvycdjd6Hm+RbFBbA9fKvo0Kx37hNpBYoYeavH3RNsBXWDooR1mgD52dCrxIIuP7UotpfiwOikvcg==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.10.tgz", + "integrity": "sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "4.1.8", + "@vitest/utils": "4.1.10", "pathe": "^2.0.3" }, "funding": { @@ -2004,14 +2004,14 @@ } }, "node_modules/@vitest/snapshot": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.8.tgz", - "integrity": "sha512-acfZboRmAIf05DEKcBQy33VXojFJjtUdLyo7oOmV9kebb2xdU01UknNiPuPZoJZQyO7DF0gZdTGTpeAzET9QPQ==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.10.tgz", + "integrity": "sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.1.8", - "@vitest/utils": "4.1.8", + "@vitest/pretty-format": "4.1.10", + "@vitest/utils": "4.1.10", "magic-string": "^0.30.21", "pathe": "^2.0.3" }, @@ -2020,9 +2020,9 @@ } }, "node_modules/@vitest/spy": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.8.tgz", - "integrity": "sha512-6EevtBp6OZOPF7bmz36HrGMeP3txgVSrgebWxHOafDXGkhIzfXK14f8KF6MuFfgXXUeHxmpD3BQxkV00/3s5mA==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.10.tgz", + "integrity": "sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw==", "dev": true, "license": "MIT", "funding": { @@ -2030,13 +2030,13 @@ } }, "node_modules/@vitest/utils": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.8.tgz", - "integrity": "sha512-uOJamYALNhfJ6iolExyQM40yIQwDqYnkKtQ5VCiSe17E33H0aQ/u+1GlRuz4LZBk6Mm3sg90G9hEbmEt37C1Zg==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.10.tgz", + "integrity": "sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.1.8", + "@vitest/pretty-format": "4.1.10", "convert-source-map": "^2.0.0", "tinyrainbow": "^3.1.0" }, @@ -5451,19 +5451,19 @@ } }, "node_modules/vitest": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.8.tgz", - "integrity": "sha512-flY6ScbCIt9HThs+C5HS7jvGOB560DJtk/Z15IQROTA6zEy49Nh8T/dofWTQL+n3vswqn87sbJNiuqw1SDp5Ig==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.10.tgz", + "integrity": "sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/expect": "4.1.8", - "@vitest/mocker": "4.1.8", - "@vitest/pretty-format": "4.1.8", - "@vitest/runner": "4.1.8", - "@vitest/snapshot": "4.1.8", - "@vitest/spy": "4.1.8", - "@vitest/utils": "4.1.8", + "@vitest/expect": "4.1.10", + "@vitest/mocker": "4.1.10", + "@vitest/pretty-format": "4.1.10", + "@vitest/runner": "4.1.10", + "@vitest/snapshot": "4.1.10", + "@vitest/spy": "4.1.10", + "@vitest/utils": "4.1.10", "es-module-lexer": "^2.0.0", "expect-type": "^1.3.0", "magic-string": "^0.30.21", @@ -5491,12 +5491,12 @@ "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", - "@vitest/browser-playwright": "4.1.8", - "@vitest/browser-preview": "4.1.8", - "@vitest/browser-webdriverio": "4.1.8", - "@vitest/coverage-istanbul": "4.1.8", - "@vitest/coverage-v8": "4.1.8", - "@vitest/ui": "4.1.8", + "@vitest/browser-playwright": "4.1.10", + "@vitest/browser-preview": "4.1.10", + "@vitest/browser-webdriverio": "4.1.10", + "@vitest/coverage-istanbul": "4.1.10", + "@vitest/coverage-v8": "4.1.10", + "@vitest/ui": "4.1.10", "happy-dom": "*", "jsdom": "*", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" From 0285f834535e0bad76cdfad9e08dc1b0fa4ef442 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Jul 2026 17:01:23 +0800 Subject: [PATCH 3/5] Bump postcss from 8.5.15 to 8.5.23 (#346) Bumps [postcss](https://github.com/postcss/postcss) from 8.5.15 to 8.5.23. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.5.15...8.5.23) --- updated-dependencies: - dependency-name: postcss dependency-version: 8.5.23 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index a9f08d6..32b5ac7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4143,9 +4143,9 @@ "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", - "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "version": "3.3.16", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", + "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", "dev": true, "funding": [ { @@ -4499,9 +4499,9 @@ } }, "node_modules/postcss": { - "version": "8.5.15", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", - "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", + "version": "8.5.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.23.tgz", + "integrity": "sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==", "dev": true, "funding": [ { @@ -4519,7 +4519,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.12", + "nanoid": "^3.3.16", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, From d7491af417bf4685e0b43f35f349691a0fada81a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Aug 2026 15:29:52 +0800 Subject: [PATCH 4/5] Merge pull request #347 from Azure/dependabot/npm_and_yarn/js-yaml-4.3.1 Bump js-yaml from 4.2.0 to 4.3.1 --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 32b5ac7..84bfb47 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3488,9 +3488,9 @@ "optional": true }, "node_modules/js-yaml": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz", - "integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.1.tgz", + "integrity": "sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==", "dev": true, "funding": [ { From f4de8fbc1c3d20109909db6c4653eeae36793424 Mon Sep 17 00:00:00 2001 From: Zhiyuan Liang <141655842+zhiyuanliang-ms@users.noreply.github.com> Date: Fri, 14 Aug 2026 00:43:25 +0800 Subject: [PATCH 5/5] Fix correlation context header missing issue (#348) * fix correlation context header missing issue * update to 1.12.1 --- package-lock.json | 51 +++++++++++++++-------- package.json | 3 +- src/requestTracing/utils.ts | 6 ++- test/requestTracing.test.ts | 82 ++++++++++++++----------------------- 4 files changed, 71 insertions(+), 71 deletions(-) diff --git a/package-lock.json b/package-lock.json index 84bfb47..fd82949 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,8 @@ "version": "2.6.0", "license": "MIT", "dependencies": { - "@azure/app-configuration": "^1.11.0", + "@azure-rest/core-client": "^2.6.0", + "@azure/app-configuration": "^1.12.1", "@azure/core-rest-pipeline": "^1.6.0", "@azure/identity": "^4.2.1", "@azure/keyvault-secrets": "^4.7.0", @@ -46,15 +47,15 @@ } }, "node_modules/@azure-rest/core-client": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@azure-rest/core-client/-/core-client-2.5.0.tgz", - "integrity": "sha512-KMVIPxG6ygcQ1M2hKHahF7eddKejYsWTjoLIfTWiqnaj42dBkYzj4+S8rK9xxmlOaEHKZHcMrRbm0NfN4kgwHw==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@azure-rest/core-client/-/core-client-2.6.1.tgz", + "integrity": "sha512-KzI10qnkWTsVS2yRBUdc8NLUJ1rOm+292mYs7Pe9wqAj/jv4bRskVm1l8XkKeVTN0OCQtrU5RG0Yhjbz1Wmg7g==", "license": "MIT", "dependencies": { - "@azure/abort-controller": "^2.0.0", - "@azure/core-auth": "^1.9.0", - "@azure/core-rest-pipeline": "^1.5.0", - "@azure/core-tracing": "^1.0.1", + "@azure/abort-controller": "^2.1.2", + "@azure/core-auth": "^1.10.0", + "@azure/core-rest-pipeline": "^1.22.0", + "@azure/core-tracing": "^1.3.0", "@typespec/ts-http-runtime": "^0.3.0", "tslib": "^2.6.2" }, @@ -75,16 +76,17 @@ } }, "node_modules/@azure/app-configuration": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@azure/app-configuration/-/app-configuration-1.11.0.tgz", - "integrity": "sha512-ehfTNvVyr4lFKz1Nfynubqg/kEWMFMjCQs8lADDa+U1HG96QIoelMYFbfWIixw4KhOqoCAIOWEp4bAXIZ0/V/w==", + "version": "1.12.1", + "resolved": "https://ms-feed-25.pkgs.visualstudio.com/1es-public/_packaging/npm-public/npm/registry/@azure/app-configuration/-/app-configuration-1.12.1.tgz", + "integrity": "sha1-2LSU04Fa5i/vOva1DhzFHh3KOcA=", "license": "MIT", "dependencies": { - "@azure/abort-controller": "^2.0.0", + "@azure-rest/core-client": "^2.6.0", + "@azure/abort-controller": "^2.1.2", "@azure/core-auth": "^1.3.0", - "@azure/core-client": "^1.5.0", + "@azure/core-client": "^1.9.2", "@azure/core-http-compat": "^2.0.0", - "@azure/core-lro": "^2.5.1", + "@azure/core-lro": "^3.1.0", "@azure/core-paging": "^1.4.0", "@azure/core-rest-pipeline": "^1.6.0", "@azure/core-tracing": "^1.0.0", @@ -96,6 +98,21 @@ "node": ">=20.0.0" } }, + "node_modules/@azure/app-configuration/node_modules/@azure/core-lro": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@azure/core-lro/-/core-lro-3.3.1.tgz", + "integrity": "sha512-bulm3klLqIAhzI3iQMYQ42i+V9EnevScsHdI9amFfjaw6OJqPBK1038cq5qachoKV3yt/iQQEDittHmZW2aSuA==", + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@azure/core-util": "^1.13.0", + "@azure/logger": "^1.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/@azure/core-auth": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.10.0.tgz", @@ -1851,9 +1868,9 @@ } }, "node_modules/@typespec/ts-http-runtime": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.0.tgz", - "integrity": "sha512-sOx1PKSuFwnIl7z4RN0Ls7N9AQawmR9r66eI5rFCzLDIs8HTIYrIpH9QjYWoX0lkgGrkLxXhi4QnK7MizPRrIg==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.6.tgz", + "integrity": "sha512-jIXhD0eWQ1JA6ln/5Dltyx22UxWNrw0hZmhy2rlv6m6KgF7kplHx3g0fzi09lNmTJQRR91OlemYp3xFnvDK9og==", "license": "MIT", "dependencies": { "http-proxy-agent": "^7.0.0", diff --git a/package.json b/package.json index 7e906a2..80074f6 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,8 @@ "vitest": "^4.1.8" }, "dependencies": { - "@azure/app-configuration": "^1.11.0", + "@azure/app-configuration": "^1.12.1", + "@azure-rest/core-client": "^2.6.0", "@azure/core-rest-pipeline": "^1.6.0", "@azure/identity": "^4.2.1", "@azure/keyvault-secrets": "^4.7.0", diff --git a/src/requestTracing/utils.ts b/src/requestTracing/utils.ts index 3b1337e..db02234 100644 --- a/src/requestTracing/utils.ts +++ b/src/requestTracing/utils.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -import { OperationOptions } from "@azure/core-client"; +import { OperationOptions } from "@azure-rest/core-client"; import { AppConfigurationClient, ConfigurationSettingId, @@ -101,7 +101,9 @@ function applyRequestTracing(requestTracingOptions: const actualOptions = { ...operationOptions }; if (requestTracingOptions.enabled) { actualOptions.requestOptions = { - customHeaders: { + ...actualOptions.requestOptions, + headers: { + ...actualOptions.requestOptions?.headers, [CORRELATION_CONTEXT_HEADER_NAME]: createCorrelationContextHeader(requestTracingOptions) } }; diff --git a/test/requestTracing.test.ts b/test/requestTracing.test.ts index 6a69698..651f126 100644 --- a/test/requestTracing.test.ts +++ b/test/requestTracing.test.ts @@ -34,7 +34,7 @@ describe("request tracing", function () { after(() => { }); - it("should have correct user agent prefix", async () => { + it("should include the provider identifier in the user agent", async () => { try { await load(createMockedConnectionString(fakeEndpoint), { clientOptions, @@ -44,7 +44,7 @@ describe("request tracing", function () { }); } catch { /* empty */ } expect(headerPolicy.headers).not.undefined; - expect(headerPolicy.headers.get("User-Agent")).satisfy((ua: string) => ua.startsWith("javascript-appconfiguration-provider")); + expect(headerPolicy.headers.get("User-Agent")).satisfy((ua: string) => ua.includes("javascript-appconfiguration-provider")); }); it("should have request type in correlation-context header", async () => { @@ -204,18 +204,14 @@ describe("request tracing", function () { }); it("should have filter type in correlation-context header if feature flags use feature filters", async () => { - let correlationContext: string = ""; - const listKvCallback = (listOptions) => { - correlationContext = listOptions?.requestOptions?.customHeaders[CORRELATION_CONTEXT_HEADER_NAME] ?? ""; - }; - mockAppConfigurationClientListConfigurationSettings([[ createMockedFeatureFlag("Alpha_1", { conditions: { client_filters: [ { name: "Microsoft.TimeWindow" } ] } }), createMockedFeatureFlag("Alpha_2", { conditions: { client_filters: [ { name: "Microsoft.Targeting" } ] } }), createMockedFeatureFlag("Alpha_3", { conditions: { client_filters: [ { name: "CustomFilter" } ] } }) - ]], listKvCallback); + ]]); const settings = await load(createMockedConnectionString(fakeEndpoint), { + clientOptions, featureFlagOptions: { enabled: true, selectors: [ {keyFilter: "*"} ], @@ -226,34 +222,30 @@ describe("request tracing", function () { } }); - expect(correlationContext).not.undefined; - expect(correlationContext?.includes("RequestType=Startup")).eq(true); + restoreMocks(); await sleepInMs(1_000 + 1_000); try { await settings.refresh(); } catch { /* empty */ } expect(headerPolicy.headers).not.undefined; + const correlationContext = headerPolicy.headers.get(CORRELATION_CONTEXT_HEADER_NAME); expect(correlationContext).not.undefined; - expect(correlationContext?.includes("RequestType=Watch")).eq(true); - expect(correlationContext?.includes("Filter=CSTM+TIME+TRGT")).eq(true); + expect(correlationContext.includes("RequestType=Watch")).eq(true); + expect(correlationContext.includes("Filter=CSTM+TIME+TRGT")).eq(true); restoreMocks(); }); it("should have max variants in correlation-context header if feature flags use variants", async () => { - let correlationContext: string = ""; - const listKvCallback = (listOptions) => { - correlationContext = listOptions?.requestOptions?.customHeaders[CORRELATION_CONTEXT_HEADER_NAME] ?? ""; - }; - mockAppConfigurationClientListConfigurationSettings([[ createMockedFeatureFlag("Alpha_1", { variants: [ {name: "a"}, {name: "b"}] }), createMockedFeatureFlag("Alpha_2", { variants: [ {name: "a"}, {name: "b"}, {name: "c"}] }), createMockedFeatureFlag("Alpha_3", { variants: [] }) - ]], listKvCallback); + ]]); const settings = await load(createMockedConnectionString(fakeEndpoint), { + clientOptions, featureFlagOptions: { enabled: true, selectors: [ {keyFilter: "*"} ], @@ -264,32 +256,28 @@ describe("request tracing", function () { } }); - expect(correlationContext).not.undefined; - expect(correlationContext?.includes("RequestType=Startup")).eq(true); + restoreMocks(); await sleepInMs(1_000 + 1_000); try { await settings.refresh(); } catch { /* empty */ } expect(headerPolicy.headers).not.undefined; + const correlationContext = headerPolicy.headers.get(CORRELATION_CONTEXT_HEADER_NAME); expect(correlationContext).not.undefined; - expect(correlationContext?.includes("RequestType=Watch")).eq(true); - expect(correlationContext?.includes("MaxVariants=3")).eq(true); + expect(correlationContext.includes("RequestType=Watch")).eq(true); + expect(correlationContext.includes("MaxVariants=3")).eq(true); restoreMocks(); }); it("should have telemety tag in correlation-context header if feature flags enable telemetry", async () => { - let correlationContext: string = ""; - const listKvCallback = (listOptions) => { - correlationContext = listOptions?.requestOptions?.customHeaders[CORRELATION_CONTEXT_HEADER_NAME] ?? ""; - }; - mockAppConfigurationClientListConfigurationSettings([[ createMockedFeatureFlag("Alpha_1", { telemetry: {enabled: true} }) - ]], listKvCallback); + ]]); const settings = await load(createMockedConnectionString(fakeEndpoint), { + clientOptions, featureFlagOptions: { enabled: true, selectors: [ {keyFilter: "*"} ], @@ -300,33 +288,29 @@ describe("request tracing", function () { } }); - expect(correlationContext).not.undefined; - expect(correlationContext?.includes("RequestType=Startup")).eq(true); + restoreMocks(); await sleepInMs(1_000 + 1_000); try { await settings.refresh(); } catch { /* empty */ } expect(headerPolicy.headers).not.undefined; + const correlationContext = headerPolicy.headers.get(CORRELATION_CONTEXT_HEADER_NAME); expect(correlationContext).not.undefined; - expect(correlationContext?.includes("RequestType=Watch")).eq(true); - expect(correlationContext?.includes("FFFeatures=Telemetry")).eq(true); + expect(correlationContext.includes("RequestType=Watch")).eq(true); + expect(correlationContext.includes("FFFeatures=Telemetry")).eq(true); restoreMocks(); }); it("should have seed tag in correlation-context header if feature flags use allocation seed", async () => { - let correlationContext: string = ""; - const listKvCallback = (listOptions) => { - correlationContext = listOptions?.requestOptions?.customHeaders[CORRELATION_CONTEXT_HEADER_NAME] ?? ""; - }; - mockAppConfigurationClientListConfigurationSettings([[ createMockedFeatureFlag("Alpha_1", { telemetry: {enabled: true} }), createMockedFeatureFlag("Alpha_2", { allocation: {seed: "123"} }) - ]], listKvCallback); + ]]); const settings = await load(createMockedConnectionString(fakeEndpoint), { + clientOptions, featureFlagOptions: { enabled: true, selectors: [ {keyFilter: "*"} ], @@ -337,48 +321,44 @@ describe("request tracing", function () { } }); - expect(correlationContext).not.undefined; - expect(correlationContext?.includes("RequestType=Startup")).eq(true); + restoreMocks(); await sleepInMs(1_000 + 1_000); try { await settings.refresh(); } catch { /* empty */ } expect(headerPolicy.headers).not.undefined; + const correlationContext = headerPolicy.headers.get(CORRELATION_CONTEXT_HEADER_NAME); expect(correlationContext).not.undefined; - expect(correlationContext?.includes("RequestType=Watch")).eq(true); - expect(correlationContext?.includes("FFFeatures=Seed+Telemetry")).eq(true); + expect(correlationContext.includes("RequestType=Watch")).eq(true); + expect(correlationContext.includes("FFFeatures=Seed+Telemetry")).eq(true); restoreMocks(); }); it("should have AI tag in correlation-context header if key values use AI configuration", async () => { - let correlationContext: string = ""; - const listKvCallback = (listOptions) => { - correlationContext = listOptions?.requestOptions?.customHeaders[CORRELATION_CONTEXT_HEADER_NAME] ?? ""; - }; - mockAppConfigurationClientListConfigurationSettings([[ createMockedKeyValue({ contentType: "application/json; profile=\"https://azconfig.io/mime-profiles/ai/chat-completion\"" }) - ]], listKvCallback); + ]]); const settings = await load(createMockedConnectionString(fakeEndpoint), { + clientOptions, refreshOptions: { enabled: true, refreshIntervalInMs: 1000 } }); - expect(correlationContext).not.undefined; - expect(correlationContext?.includes("RequestType=Startup")).eq(true); + restoreMocks(); await sleepInMs(1000 + 1); try { await settings.refresh(); } catch { /* empty */ } expect(headerPolicy.headers).not.undefined; + const correlationContext = headerPolicy.headers.get(CORRELATION_CONTEXT_HEADER_NAME); expect(correlationContext).not.undefined; - expect(correlationContext?.includes("Features=AI+AICC")).eq(true); + expect(correlationContext.includes("Features=AI+AICC")).eq(true); restoreMocks(); });