From aa86b3fe240164bd0ab0a7291e504fbc90270a63 Mon Sep 17 00:00:00 2001 From: Trivikram Kamat <16024985+trivikr@users.noreply.github.com> Date: Fri, 6 Oct 2023 09:14:30 -0700 Subject: [PATCH 1/3] Populate subsection using dot separator in section key when parsing INI files (#989) --- .changeset/few-panthers-impress.md | 5 ++++ .../src/parseIni.spec.ts | 27 ++++++++++++++----- .../shared-ini-file-loader/src/parseIni.ts | 6 ++--- 3 files changed, 28 insertions(+), 10 deletions(-) create mode 100644 .changeset/few-panthers-impress.md diff --git a/.changeset/few-panthers-impress.md b/.changeset/few-panthers-impress.md new file mode 100644 index 00000000000..4c705bf9219 --- /dev/null +++ b/.changeset/few-panthers-impress.md @@ -0,0 +1,5 @@ +--- +"@smithy/shared-ini-file-loader": minor +--- + +Populate subsection using dot separator in section key when parsing INI files diff --git a/packages/shared-ini-file-loader/src/parseIni.spec.ts b/packages/shared-ini-file-loader/src/parseIni.spec.ts index 3ba0ae3db35..ed5db623ea2 100644 --- a/packages/shared-ini-file-loader/src/parseIni.spec.ts +++ b/packages/shared-ini-file-loader/src/parseIni.spec.ts @@ -91,20 +91,33 @@ describe(parseIni.name, () => { }); it("returns data from main section, and not subsection", () => { - const mockMainSettings = { key: "value1" }; - const mockProfileDataWithSubSettings = { ...mockMainSettings, "sub-settings-name": { key: "subValue1" } }; + const mockProfileDataWithSubSettings = { + key: "value", + subSection: { subKey: "subValue" }, + }; const mockInput = getMockProfileContent(mockProfileName, mockProfileDataWithSubSettings); expect(parseIni(mockInput)).toStrictEqual({ - [mockProfileName]: mockMainSettings, + [mockProfileName]: { + key: "value", + "subSection.subKey": "subValue", + }, }); const mockProfileName2 = "mock_profile_name_2"; - const mockMainSettings2 = { key: "value2" }; - const mockProfileDataWithSubSettings2 = { ...mockMainSettings2, "sub-settings-name": { key: "subValue2" } }; + const mockProfileDataWithSubSettings2 = { + key: "value2", + subSection: { subKey: "subValue2" }, + }; const mockInput2 = getMockProfileContent(mockProfileName2, mockProfileDataWithSubSettings2); expect(parseIni(`${mockInput}${mockInput2}`)).toStrictEqual({ - [mockProfileName]: mockMainSettings, - [mockProfileName2]: mockMainSettings2, + [mockProfileName]: { + key: "value", + "subSection.subKey": "subValue", + }, + [mockProfileName2]: { + key: "value2", + "subSection.subKey": "subValue2", + }, }); }); }); diff --git a/packages/shared-ini-file-loader/src/parseIni.ts b/packages/shared-ini-file-loader/src/parseIni.ts index 933f5bcad31..f578307320e 100644 --- a/packages/shared-ini-file-loader/src/parseIni.ts +++ b/packages/shared-ini-file-loader/src/parseIni.ts @@ -26,10 +26,10 @@ export const parseIni = (iniData: string): ParsedIniData => { ]; if (value === "") { currentSubSection = name; - } else if (currentSubSection === undefined) { - // ToDo: populate subsection in future PR, when IniSection is updated to support subsections. + } else { map[currentSection] = map[currentSection] || {}; - map[currentSection][name] = value; + const key = currentSubSection ? `${currentSubSection}.${name}` : name; + map[currentSection][key] = value; } } } From 7b568c396e46c8129f50953daedbe6dcb43675f8 Mon Sep 17 00:00:00 2001 From: Trivikram Kamat <16024985+trivikr@users.noreply.github.com> Date: Fri, 6 Oct 2023 09:14:51 -0700 Subject: [PATCH 2/3] Pass configuration file as second parameter to configSelector (#990) --- .changeset/fast-colts-drive.md | 5 +++++ packages/node-config-provider/src/fromSharedConfigFiles.ts | 7 ++++--- 2 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 .changeset/fast-colts-drive.md diff --git a/.changeset/fast-colts-drive.md b/.changeset/fast-colts-drive.md new file mode 100644 index 00000000000..3b184e1036f --- /dev/null +++ b/.changeset/fast-colts-drive.md @@ -0,0 +1,5 @@ +--- +"@smithy/node-config-provider": minor +--- + +Pass configuration file as second parameter to configSelector diff --git a/packages/node-config-provider/src/fromSharedConfigFiles.ts b/packages/node-config-provider/src/fromSharedConfigFiles.ts index d04f85ef08f..cfc459c7a3f 100644 --- a/packages/node-config-provider/src/fromSharedConfigFiles.ts +++ b/packages/node-config-provider/src/fromSharedConfigFiles.ts @@ -1,6 +1,6 @@ import { CredentialsProviderError } from "@smithy/property-provider"; import { getProfileName, loadSharedConfigFiles, SourceProfileInit } from "@smithy/shared-ini-file-loader"; -import { Profile, Provider } from "@smithy/types"; +import { ParsedIniData, Profile, Provider } from "@smithy/types"; export interface SharedConfigInit extends SourceProfileInit { /** @@ -11,7 +11,7 @@ export interface SharedConfigInit extends SourceProfileInit { preferredFile?: "config" | "credentials"; } -export type GetterFromConfig = (profile: Profile) => T | undefined; +export type GetterFromConfig = (profile: Profile, configFile?: ParsedIniData) => T | undefined; /** * Get config value from the shared config files with inferred profile name. @@ -31,7 +31,8 @@ export const fromSharedConfigFiles = ( : { ...profileFromConfig, ...profileFromCredentials }; try { - const configValue = configSelector(mergedProfile); + const cfgFile = preferredFile === "config" ? configFile : credentialsFile; + const configValue = configSelector(mergedProfile, cfgFile); if (configValue === undefined) { throw new Error(); } From 58b25ceac6a90a434e0e927b0f180a248c19b620 Mon Sep 17 00:00:00 2001 From: Smithy Automation Date: Fri, 6 Oct 2023 16:16:01 +0000 Subject: [PATCH 3/3] Version NPM packages --- .changeset/fast-colts-drive.md | 5 ----- .changeset/few-panthers-impress.md | 5 ----- packages/config-resolver/CHANGELOG.md | 7 +++++++ packages/config-resolver/package.json | 2 +- packages/credential-provider-imds/CHANGELOG.md | 7 +++++++ packages/credential-provider-imds/package.json | 2 +- packages/experimental-identity-and-auth/CHANGELOG.md | 6 ++++++ packages/experimental-identity-and-auth/package.json | 2 +- packages/middleware-retry/CHANGELOG.md | 7 +++++++ packages/middleware-retry/package.json | 2 +- packages/node-config-provider/CHANGELOG.md | 11 +++++++++++ packages/node-config-provider/package.json | 2 +- packages/shared-ini-file-loader/CHANGELOG.md | 6 ++++++ packages/shared-ini-file-loader/package.json | 2 +- packages/util-defaults-mode-node/CHANGELOG.md | 9 +++++++++ packages/util-defaults-mode-node/package.json | 2 +- 16 files changed, 60 insertions(+), 17 deletions(-) delete mode 100644 .changeset/fast-colts-drive.md delete mode 100644 .changeset/few-panthers-impress.md diff --git a/.changeset/fast-colts-drive.md b/.changeset/fast-colts-drive.md deleted file mode 100644 index 3b184e1036f..00000000000 --- a/.changeset/fast-colts-drive.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@smithy/node-config-provider": minor ---- - -Pass configuration file as second parameter to configSelector diff --git a/.changeset/few-panthers-impress.md b/.changeset/few-panthers-impress.md deleted file mode 100644 index 4c705bf9219..00000000000 --- a/.changeset/few-panthers-impress.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@smithy/shared-ini-file-loader": minor ---- - -Populate subsection using dot separator in section key when parsing INI files diff --git a/packages/config-resolver/CHANGELOG.md b/packages/config-resolver/CHANGELOG.md index 3f429045518..6318c9582bb 100644 --- a/packages/config-resolver/CHANGELOG.md +++ b/packages/config-resolver/CHANGELOG.md @@ -1,5 +1,12 @@ # Change Log +## 2.0.13 + +### Patch Changes + +- Updated dependencies [7b568c39] + - @smithy/node-config-provider@2.1.0 + ## 2.0.12 ### Patch Changes diff --git a/packages/config-resolver/package.json b/packages/config-resolver/package.json index f0c95538602..b9e368e1d29 100644 --- a/packages/config-resolver/package.json +++ b/packages/config-resolver/package.json @@ -1,6 +1,6 @@ { "name": "@smithy/config-resolver", - "version": "2.0.12", + "version": "2.0.13", "scripts": { "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types && yarn build:types:downlevel'", "build:cjs": "yarn g:tsc -p tsconfig.cjs.json", diff --git a/packages/credential-provider-imds/CHANGELOG.md b/packages/credential-provider-imds/CHANGELOG.md index 7caa12175cb..ffe275abf3c 100644 --- a/packages/credential-provider-imds/CHANGELOG.md +++ b/packages/credential-provider-imds/CHANGELOG.md @@ -1,5 +1,12 @@ # Change Log +## 2.0.15 + +### Patch Changes + +- Updated dependencies [7b568c39] + - @smithy/node-config-provider@2.1.0 + ## 2.0.14 ### Patch Changes diff --git a/packages/credential-provider-imds/package.json b/packages/credential-provider-imds/package.json index 7ffec8a2c1f..efff94fb4da 100644 --- a/packages/credential-provider-imds/package.json +++ b/packages/credential-provider-imds/package.json @@ -1,6 +1,6 @@ { "name": "@smithy/credential-provider-imds", - "version": "2.0.14", + "version": "2.0.15", "description": "AWS credential provider that sources credentials from the EC2 instance metadata service and ECS container metadata service", "main": "./dist-cjs/index.js", "module": "./dist-es/index.js", diff --git a/packages/experimental-identity-and-auth/CHANGELOG.md b/packages/experimental-identity-and-auth/CHANGELOG.md index 0518cecc1d8..1f415467a12 100644 --- a/packages/experimental-identity-and-auth/CHANGELOG.md +++ b/packages/experimental-identity-and-auth/CHANGELOG.md @@ -1,5 +1,11 @@ # Change Log +## 0.0.13 + +### Patch Changes + +- @smithy/middleware-retry@2.0.15 + ## 0.0.12 ### Patch Changes diff --git a/packages/experimental-identity-and-auth/package.json b/packages/experimental-identity-and-auth/package.json index c9b994c1a80..ac336afd0e9 100644 --- a/packages/experimental-identity-and-auth/package.json +++ b/packages/experimental-identity-and-auth/package.json @@ -1,6 +1,6 @@ { "name": "@smithy/experimental-identity-and-auth", - "version": "0.0.12", + "version": "0.0.13", "scripts": { "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types && yarn build:types:downlevel'", "build:cjs": "yarn g:tsc -p tsconfig.cjs.json", diff --git a/packages/middleware-retry/CHANGELOG.md b/packages/middleware-retry/CHANGELOG.md index 68d86c51fbb..394bcd06d3b 100644 --- a/packages/middleware-retry/CHANGELOG.md +++ b/packages/middleware-retry/CHANGELOG.md @@ -1,5 +1,12 @@ # Change Log +## 2.0.15 + +### Patch Changes + +- Updated dependencies [7b568c39] + - @smithy/node-config-provider@2.1.0 + ## 2.0.14 ### Patch Changes diff --git a/packages/middleware-retry/package.json b/packages/middleware-retry/package.json index 9a57cf847a5..1058487ca31 100644 --- a/packages/middleware-retry/package.json +++ b/packages/middleware-retry/package.json @@ -1,6 +1,6 @@ { "name": "@smithy/middleware-retry", - "version": "2.0.14", + "version": "2.0.15", "scripts": { "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types && yarn build:types:downlevel'", "build:cjs": "yarn g:tsc -p tsconfig.cjs.json", diff --git a/packages/node-config-provider/CHANGELOG.md b/packages/node-config-provider/CHANGELOG.md index ccf09fa717a..2e01f98347d 100644 --- a/packages/node-config-provider/CHANGELOG.md +++ b/packages/node-config-provider/CHANGELOG.md @@ -1,5 +1,16 @@ # Change Log +## 2.1.0 + +### Minor Changes + +- 7b568c39: Pass configuration file as second parameter to configSelector + +### Patch Changes + +- Updated dependencies [aa86b3fe] + - @smithy/shared-ini-file-loader@2.1.0 + ## 2.0.14 ### Patch Changes diff --git a/packages/node-config-provider/package.json b/packages/node-config-provider/package.json index 0d12a40b31e..1f4947c9d86 100644 --- a/packages/node-config-provider/package.json +++ b/packages/node-config-provider/package.json @@ -1,6 +1,6 @@ { "name": "@smithy/node-config-provider", - "version": "2.0.14", + "version": "2.1.0", "description": "Load config default values from ini config files and environmental variable", "scripts": { "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types && yarn build:types:downlevel'", diff --git a/packages/shared-ini-file-loader/CHANGELOG.md b/packages/shared-ini-file-loader/CHANGELOG.md index fe80e087f04..acd2393b085 100644 --- a/packages/shared-ini-file-loader/CHANGELOG.md +++ b/packages/shared-ini-file-loader/CHANGELOG.md @@ -1,5 +1,11 @@ # Change Log +## 2.1.0 + +### Minor Changes + +- aa86b3fe: Populate subsection using dot separator in section key when parsing INI files + ## 2.0.13 ### Patch Changes diff --git a/packages/shared-ini-file-loader/package.json b/packages/shared-ini-file-loader/package.json index 91500bbe4d3..119b09808f1 100644 --- a/packages/shared-ini-file-loader/package.json +++ b/packages/shared-ini-file-loader/package.json @@ -1,6 +1,6 @@ { "name": "@smithy/shared-ini-file-loader", - "version": "2.0.13", + "version": "2.1.0", "dependencies": { "@smithy/types": "workspace:^", "tslib": "^2.5.0" diff --git a/packages/util-defaults-mode-node/CHANGELOG.md b/packages/util-defaults-mode-node/CHANGELOG.md index e880db3dbe3..6e365a9524b 100644 --- a/packages/util-defaults-mode-node/CHANGELOG.md +++ b/packages/util-defaults-mode-node/CHANGELOG.md @@ -1,5 +1,14 @@ # Change Log +## 2.0.17 + +### Patch Changes + +- Updated dependencies [7b568c39] + - @smithy/node-config-provider@2.1.0 + - @smithy/config-resolver@2.0.13 + - @smithy/credential-provider-imds@2.0.15 + ## 2.0.16 ### Patch Changes diff --git a/packages/util-defaults-mode-node/package.json b/packages/util-defaults-mode-node/package.json index c418c501c56..50a6ba1225c 100644 --- a/packages/util-defaults-mode-node/package.json +++ b/packages/util-defaults-mode-node/package.json @@ -1,6 +1,6 @@ { "name": "@smithy/util-defaults-mode-node", - "version": "2.0.16", + "version": "2.0.17", "scripts": { "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types && yarn build:types:downlevel'", "build:cjs": "yarn g:tsc -p tsconfig.cjs.json",