@cdklabs/cdk-ecs-codedeploy 0.0.283 → 0.0.285

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/.jsii +4 -4
  2. package/.jsii.tabl.json +1 -1
  3. package/lib/api-canary/index.js +1 -1
  4. package/lib/ecs-appspec/index.js +1 -1
  5. package/lib/ecs-deployment/index.js +1 -1
  6. package/lib/ecs-patterns/application-load-balanced-codedeployed-fargate-service.js +1 -1
  7. package/node_modules/@aws-sdk/client-codedeploy/dist-cjs/index.js +2 -2
  8. package/node_modules/@aws-sdk/client-codedeploy/dist-es/protocols/Aws_json1_1.js +2 -2
  9. package/node_modules/@aws-sdk/client-codedeploy/package.json +18 -18
  10. package/node_modules/@aws-sdk/client-sso/package.json +15 -15
  11. package/node_modules/@aws-sdk/client-sso-oidc/package.json +17 -17
  12. package/node_modules/@aws-sdk/client-sts/package.json +17 -17
  13. package/node_modules/@aws-sdk/core/package.json +3 -3
  14. package/node_modules/@aws-sdk/credential-provider-env/dist-cjs/index.js +2 -2
  15. package/node_modules/@aws-sdk/credential-provider-env/dist-es/fromEnv.js +2 -2
  16. package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
  17. package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/checkUrl.js +2 -2
  18. package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.browser.js +4 -4
  19. package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.js +12 -9
  20. package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/requestHelpers.js +6 -5
  21. package/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/checkUrl.js +2 -2
  22. package/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/fromHttp.browser.js +4 -4
  23. package/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/fromHttp.js +12 -9
  24. package/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/requestHelpers.js +6 -5
  25. package/node_modules/@aws-sdk/credential-provider-http/dist-types/fromHttp/checkUrl.d.ts +3 -1
  26. package/node_modules/@aws-sdk/credential-provider-http/dist-types/fromHttp/fromHttp.browser.d.ts +1 -1
  27. package/node_modules/@aws-sdk/credential-provider-http/dist-types/fromHttp/fromHttp.d.ts +1 -1
  28. package/node_modules/@aws-sdk/credential-provider-http/dist-types/fromHttp/requestHelpers.d.ts +2 -2
  29. package/node_modules/@aws-sdk/credential-provider-http/dist-types/ts3.4/fromHttp/checkUrl.d.ts +2 -1
  30. package/node_modules/@aws-sdk/credential-provider-http/dist-types/ts3.4/fromHttp/fromHttp.browser.d.ts +1 -1
  31. package/node_modules/@aws-sdk/credential-provider-http/dist-types/ts3.4/fromHttp/fromHttp.d.ts +1 -1
  32. package/node_modules/@aws-sdk/credential-provider-http/dist-types/ts3.4/fromHttp/requestHelpers.d.ts +3 -2
  33. package/node_modules/@aws-sdk/credential-provider-http/package.json +3 -3
  34. package/node_modules/@aws-sdk/credential-provider-ini/dist-cjs/index.js +70 -20
  35. package/node_modules/@aws-sdk/credential-provider-ini/dist-es/fromIni.js +1 -1
  36. package/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveAssumeRoleCredentials.js +35 -14
  37. package/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveCredentialSource.js +19 -6
  38. package/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveProfileData.js +2 -2
  39. package/node_modules/@aws-sdk/credential-provider-ini/dist-es/resolveStaticCredentials.js +1 -1
  40. package/node_modules/@aws-sdk/credential-provider-ini/dist-types/resolveAssumeRoleCredentials.d.ts +5 -2
  41. package/node_modules/@aws-sdk/credential-provider-ini/dist-types/resolveCredentialSource.d.ts +2 -2
  42. package/node_modules/@aws-sdk/credential-provider-ini/dist-types/ts3.4/resolveAssumeRoleCredentials.d.ts +11 -2
  43. package/node_modules/@aws-sdk/credential-provider-ini/dist-types/ts3.4/resolveCredentialSource.d.ts +3 -2
  44. package/node_modules/@aws-sdk/credential-provider-ini/package.json +10 -9
  45. package/node_modules/@aws-sdk/credential-provider-node/dist-cjs/index.js +15 -11
  46. package/node_modules/@aws-sdk/credential-provider-node/dist-es/defaultProvider.js +11 -8
  47. package/node_modules/@aws-sdk/credential-provider-node/dist-es/remoteProvider.js +3 -3
  48. package/node_modules/@aws-sdk/credential-provider-node/dist-types/defaultProvider.d.ts +2 -1
  49. package/node_modules/@aws-sdk/credential-provider-node/dist-types/remoteProvider.d.ts +2 -1
  50. package/node_modules/@aws-sdk/credential-provider-node/dist-types/ts3.4/defaultProvider.d.ts +2 -0
  51. package/node_modules/@aws-sdk/credential-provider-node/dist-types/ts3.4/remoteProvider.d.ts +2 -1
  52. package/node_modules/@aws-sdk/credential-provider-node/package.json +10 -10
  53. package/node_modules/@aws-sdk/credential-provider-process/dist-cjs/index.js +8 -6
  54. package/node_modules/@aws-sdk/credential-provider-process/dist-es/fromProcess.js +2 -2
  55. package/node_modules/@aws-sdk/credential-provider-process/dist-es/resolveProcessCredentials.js +6 -4
  56. package/node_modules/@aws-sdk/credential-provider-process/dist-types/resolveProcessCredentials.d.ts +2 -2
  57. package/node_modules/@aws-sdk/credential-provider-process/dist-types/ts3.4/resolveProcessCredentials.d.ts +3 -2
  58. package/node_modules/@aws-sdk/credential-provider-process/package.json +3 -3
  59. package/node_modules/@aws-sdk/credential-provider-sso/dist-cjs/index.js +43 -21
  60. package/node_modules/@aws-sdk/credential-provider-sso/dist-es/fromSSO.js +15 -7
  61. package/node_modules/@aws-sdk/credential-provider-sso/dist-es/resolveSSOCredentials.js +21 -6
  62. package/node_modules/@aws-sdk/credential-provider-sso/dist-es/validateSsoProfile.js +2 -2
  63. package/node_modules/@aws-sdk/credential-provider-sso/dist-types/resolveSSOCredentials.d.ts +1 -1
  64. package/node_modules/@aws-sdk/credential-provider-sso/dist-types/ts3.4/resolveSSOCredentials.d.ts +1 -0
  65. package/node_modules/@aws-sdk/credential-provider-sso/dist-types/ts3.4/validateSsoProfile.d.ts +3 -1
  66. package/node_modules/@aws-sdk/credential-provider-sso/dist-types/validateSsoProfile.d.ts +2 -1
  67. package/node_modules/@aws-sdk/credential-provider-sso/package.json +5 -5
  68. package/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromTokenFile.js +4 -2
  69. package/node_modules/@aws-sdk/credential-provider-web-identity/dist-cjs/fromWebToken.js +1 -1
  70. package/node_modules/@aws-sdk/credential-provider-web-identity/dist-es/fromTokenFile.js +4 -2
  71. package/node_modules/@aws-sdk/credential-provider-web-identity/dist-es/fromWebToken.js +1 -1
  72. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
  73. package/node_modules/@aws-sdk/middleware-user-agent/package.json +2 -2
  74. package/node_modules/@aws-sdk/region-config-resolver/package.json +2 -2
  75. package/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +2 -2
  76. package/node_modules/@aws-sdk/token-providers/dist-es/fromSso.js +1 -1
  77. package/node_modules/@aws-sdk/token-providers/dist-es/fromStatic.js +1 -1
  78. package/node_modules/@aws-sdk/token-providers/package.json +4 -4
  79. package/node_modules/@aws-sdk/util-endpoints/package.json +2 -2
  80. package/node_modules/@aws-sdk/util-user-agent-node/package.json +2 -2
  81. package/node_modules/@smithy/config-resolver/package.json +2 -2
  82. package/node_modules/@smithy/core/README.md +35 -2
  83. package/node_modules/@smithy/core/package.json +19 -6
  84. package/node_modules/@smithy/credential-provider-imds/dist-cjs/index.js +30 -22
  85. package/node_modules/@smithy/credential-provider-imds/dist-es/fromContainerMetadata.js +17 -6
  86. package/node_modules/@smithy/credential-provider-imds/dist-es/fromInstanceMetadata.js +11 -9
  87. package/node_modules/@smithy/credential-provider-imds/package.json +3 -3
  88. package/node_modules/@smithy/middleware-endpoint/package.json +3 -3
  89. package/node_modules/@smithy/middleware-retry/package.json +3 -3
  90. package/node_modules/@smithy/node-config-provider/dist-cjs/getSelectorName.js +1 -0
  91. package/node_modules/@smithy/node-config-provider/dist-cjs/index.js +21 -3
  92. package/node_modules/@smithy/node-config-provider/dist-es/fromEnv.js +3 -2
  93. package/node_modules/@smithy/node-config-provider/dist-es/fromSharedConfigFiles.js +2 -2
  94. package/node_modules/@smithy/node-config-provider/dist-es/getSelectorName.js +12 -0
  95. package/node_modules/@smithy/node-config-provider/dist-types/fromEnv.d.ts +2 -2
  96. package/node_modules/@smithy/node-config-provider/dist-types/getSelectorName.d.ts +9 -0
  97. package/node_modules/@smithy/node-config-provider/dist-types/ts3.4/fromEnv.d.ts +2 -2
  98. package/node_modules/@smithy/node-config-provider/dist-types/ts3.4/getSelectorName.d.ts +9 -0
  99. package/node_modules/@smithy/node-config-provider/package.json +3 -3
  100. package/node_modules/@smithy/property-provider/dist-cjs/index.js +28 -10
  101. package/node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js +2 -3
  102. package/node_modules/@smithy/property-provider/dist-es/ProviderError.js +15 -4
  103. package/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js +2 -3
  104. package/node_modules/@smithy/property-provider/dist-types/CredentialsProviderError.d.ts +16 -3
  105. package/node_modules/@smithy/property-provider/dist-types/ProviderError.d.ts +25 -3
  106. package/node_modules/@smithy/property-provider/dist-types/TokenProviderError.d.ts +16 -3
  107. package/node_modules/@smithy/property-provider/dist-types/ts3.4/CredentialsProviderError.d.ts +16 -3
  108. package/node_modules/@smithy/property-provider/dist-types/ts3.4/ProviderError.d.ts +25 -3
  109. package/node_modules/@smithy/property-provider/dist-types/ts3.4/TokenProviderError.d.ts +16 -3
  110. package/node_modules/@smithy/property-provider/package.json +1 -1
  111. package/node_modules/@smithy/shared-ini-file-loader/dist-types/loadSharedConfigFiles.d.ts +5 -1
  112. package/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/loadSharedConfigFiles.d.ts +5 -1
  113. package/node_modules/@smithy/shared-ini-file-loader/package.json +1 -1
  114. package/node_modules/@smithy/smithy-client/dist-cjs/index.js +3 -0
  115. package/node_modules/@smithy/smithy-client/dist-es/ser-utils.js +1 -0
  116. package/node_modules/@smithy/smithy-client/dist-types/ser-utils.d.ts +5 -0
  117. package/node_modules/@smithy/smithy-client/dist-types/ts3.4/ser-utils.d.ts +5 -0
  118. package/node_modules/@smithy/smithy-client/package.json +2 -2
  119. package/node_modules/@smithy/util-defaults-mode-browser/package.json +3 -3
  120. package/node_modules/@smithy/util-defaults-mode-node/package.json +6 -6
  121. package/node_modules/@smithy/util-endpoints/package.json +2 -2
  122. package/package.json +7 -6
@@ -64,7 +64,8 @@ var resolveSSOCredentials = /* @__PURE__ */ __name(async ({
64
64
  ssoRoleName,
65
65
  ssoClient,
66
66
  clientConfig,
67
- profile
67
+ profile,
68
+ logger
68
69
  }) => {
69
70
  let token;
70
71
  const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`;
@@ -76,23 +77,26 @@ var resolveSSOCredentials = /* @__PURE__ */ __name(async ({
76
77
  expiresAt: new Date(_token.expiration).toISOString()
77
78
  };
78
79
  } catch (e) {
79
- throw new import_property_provider.CredentialsProviderError(e.message, SHOULD_FAIL_CREDENTIAL_CHAIN);
80
+ throw new import_property_provider.CredentialsProviderError(e.message, {
81
+ tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,
82
+ logger
83
+ });
80
84
  }
81
85
  } else {
82
86
  try {
83
87
  token = await (0, import_shared_ini_file_loader.getSSOTokenFromFile)(ssoStartUrl);
84
88
  } catch (e) {
85
- throw new import_property_provider.CredentialsProviderError(
86
- `The SSO session associated with this profile is invalid. ${refreshMessage}`,
87
- SHOULD_FAIL_CREDENTIAL_CHAIN
88
- );
89
+ throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, {
90
+ tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,
91
+ logger
92
+ });
89
93
  }
90
94
  }
91
95
  if (new Date(token.expiresAt).getTime() - Date.now() <= 0) {
92
- throw new import_property_provider.CredentialsProviderError(
93
- `The SSO session associated with this profile has expired. ${refreshMessage}`,
94
- SHOULD_FAIL_CREDENTIAL_CHAIN
95
- );
96
+ throw new import_property_provider.CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, {
97
+ tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,
98
+ logger
99
+ });
96
100
  }
97
101
  const { accessToken } = token;
98
102
  const { SSOClient: SSOClient2, GetRoleCredentialsCommand: GetRoleCredentialsCommand2 } = await Promise.resolve().then(() => (init_loadSso(), loadSso_exports));
@@ -111,18 +115,24 @@ var resolveSSOCredentials = /* @__PURE__ */ __name(async ({
111
115
  })
112
116
  );
113
117
  } catch (e) {
114
- throw import_property_provider.CredentialsProviderError.from(e, SHOULD_FAIL_CREDENTIAL_CHAIN);
118
+ throw new import_property_provider.CredentialsProviderError(e, {
119
+ tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,
120
+ logger
121
+ });
115
122
  }
116
123
  const { roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope } = {} } = ssoResp;
117
124
  if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) {
118
- throw new import_property_provider.CredentialsProviderError("SSO returns an invalid temporary credential.", SHOULD_FAIL_CREDENTIAL_CHAIN);
125
+ throw new import_property_provider.CredentialsProviderError("SSO returns an invalid temporary credential.", {
126
+ tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,
127
+ logger
128
+ });
119
129
  }
120
130
  return { accessKeyId, secretAccessKey, sessionToken, expiration: new Date(expiration), credentialScope };
121
131
  }, "resolveSSOCredentials");
122
132
 
123
133
  // src/validateSsoProfile.ts
124
134
 
125
- var validateSsoProfile = /* @__PURE__ */ __name((profile) => {
135
+ var validateSsoProfile = /* @__PURE__ */ __name((profile, logger) => {
126
136
  const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;
127
137
  if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {
128
138
  throw new import_property_provider.CredentialsProviderError(
@@ -130,7 +140,7 @@ var validateSsoProfile = /* @__PURE__ */ __name((profile) => {
130
140
  ", "
131
141
  )}
132
142
  Reference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`,
133
- false
143
+ { tryNextLink: false, logger }
134
144
  );
135
145
  }
136
146
  return profile;
@@ -139,7 +149,7 @@ Reference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.ht
139
149
  // src/fromSSO.ts
140
150
  var fromSSO = /* @__PURE__ */ __name((init = {}) => async () => {
141
151
  var _a;
142
- (_a = init.logger) == null ? void 0 : _a.debug("@aws-sdk/credential-provider-sso", "fromSSO");
152
+ (_a = init.logger) == null ? void 0 : _a.debug("@aws-sdk/credential-provider-sso - fromSSO");
143
153
  const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;
144
154
  const { ssoClient } = init;
145
155
  const profileName = (0, import_shared_ini_file_loader.getProfileName)(init);
@@ -147,25 +157,36 @@ var fromSSO = /* @__PURE__ */ __name((init = {}) => async () => {
147
157
  const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);
148
158
  const profile = profiles[profileName];
149
159
  if (!profile) {
150
- throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} was not found.`);
160
+ throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init.logger });
151
161
  }
152
162
  if (!isSsoProfile(profile)) {
153
- throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`);
163
+ throw new import_property_provider.CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, {
164
+ logger: init.logger
165
+ });
154
166
  }
155
167
  if (profile == null ? void 0 : profile.sso_session) {
156
168
  const ssoSessions = await (0, import_shared_ini_file_loader.loadSsoSessionData)(init);
157
169
  const session = ssoSessions[profile.sso_session];
158
170
  const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`;
159
171
  if (ssoRegion && ssoRegion !== session.sso_region) {
160
- throw new import_property_provider.CredentialsProviderError(`Conflicting SSO region` + conflictMsg, false);
172
+ throw new import_property_provider.CredentialsProviderError(`Conflicting SSO region` + conflictMsg, {
173
+ tryNextLink: false,
174
+ logger: init.logger
175
+ });
161
176
  }
162
177
  if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) {
163
- throw new import_property_provider.CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, false);
178
+ throw new import_property_provider.CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, {
179
+ tryNextLink: false,
180
+ logger: init.logger
181
+ });
164
182
  }
165
183
  profile.sso_region = session.sso_region;
166
184
  profile.sso_start_url = session.sso_start_url;
167
185
  }
168
- const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(profile);
186
+ const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(
187
+ profile,
188
+ init.logger
189
+ );
169
190
  return resolveSSOCredentials({
170
191
  ssoStartUrl: sso_start_url,
171
192
  ssoSession: sso_session,
@@ -178,7 +199,8 @@ var fromSSO = /* @__PURE__ */ __name((init = {}) => async () => {
178
199
  });
179
200
  } else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) {
180
201
  throw new import_property_provider.CredentialsProviderError(
181
- 'Incomplete configuration. The fromSSO() argument hash must include "ssoStartUrl", "ssoAccountId", "ssoRegion", "ssoRoleName"'
202
+ 'Incomplete configuration. The fromSSO() argument hash must include "ssoStartUrl", "ssoAccountId", "ssoRegion", "ssoRoleName"',
203
+ { tryNextLink: false, logger: init.logger }
182
204
  );
183
205
  } else {
184
206
  return resolveSSOCredentials({
@@ -4,7 +4,7 @@ import { isSsoProfile } from "./isSsoProfile";
4
4
  import { resolveSSOCredentials } from "./resolveSSOCredentials";
5
5
  import { validateSsoProfile } from "./validateSsoProfile";
6
6
  export const fromSSO = (init = {}) => async () => {
7
- init.logger?.debug("@aws-sdk/credential-provider-sso", "fromSSO");
7
+ init.logger?.debug("@aws-sdk/credential-provider-sso - fromSSO");
8
8
  const { ssoStartUrl, ssoAccountId, ssoRegion, ssoRoleName, ssoSession } = init;
9
9
  const { ssoClient } = init;
10
10
  const profileName = getProfileName(init);
@@ -12,25 +12,33 @@ export const fromSSO = (init = {}) => async () => {
12
12
  const profiles = await parseKnownFiles(init);
13
13
  const profile = profiles[profileName];
14
14
  if (!profile) {
15
- throw new CredentialsProviderError(`Profile ${profileName} was not found.`);
15
+ throw new CredentialsProviderError(`Profile ${profileName} was not found.`, { logger: init.logger });
16
16
  }
17
17
  if (!isSsoProfile(profile)) {
18
- throw new CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`);
18
+ throw new CredentialsProviderError(`Profile ${profileName} is not configured with SSO credentials.`, {
19
+ logger: init.logger,
20
+ });
19
21
  }
20
22
  if (profile?.sso_session) {
21
23
  const ssoSessions = await loadSsoSessionData(init);
22
24
  const session = ssoSessions[profile.sso_session];
23
25
  const conflictMsg = ` configurations in profile ${profileName} and sso-session ${profile.sso_session}`;
24
26
  if (ssoRegion && ssoRegion !== session.sso_region) {
25
- throw new CredentialsProviderError(`Conflicting SSO region` + conflictMsg, false);
27
+ throw new CredentialsProviderError(`Conflicting SSO region` + conflictMsg, {
28
+ tryNextLink: false,
29
+ logger: init.logger,
30
+ });
26
31
  }
27
32
  if (ssoStartUrl && ssoStartUrl !== session.sso_start_url) {
28
- throw new CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, false);
33
+ throw new CredentialsProviderError(`Conflicting SSO start_url` + conflictMsg, {
34
+ tryNextLink: false,
35
+ logger: init.logger,
36
+ });
29
37
  }
30
38
  profile.sso_region = session.sso_region;
31
39
  profile.sso_start_url = session.sso_start_url;
32
40
  }
33
- const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(profile);
41
+ const { sso_start_url, sso_account_id, sso_region, sso_role_name, sso_session } = validateSsoProfile(profile, init.logger);
34
42
  return resolveSSOCredentials({
35
43
  ssoStartUrl: sso_start_url,
36
44
  ssoSession: sso_session,
@@ -44,7 +52,7 @@ export const fromSSO = (init = {}) => async () => {
44
52
  }
45
53
  else if (!ssoStartUrl || !ssoAccountId || !ssoRegion || !ssoRoleName) {
46
54
  throw new CredentialsProviderError("Incomplete configuration. The fromSSO() argument hash must include " +
47
- '"ssoStartUrl", "ssoAccountId", "ssoRegion", "ssoRoleName"');
55
+ '"ssoStartUrl", "ssoAccountId", "ssoRegion", "ssoRoleName"', { tryNextLink: false, logger: init.logger });
48
56
  }
49
57
  else {
50
58
  return resolveSSOCredentials({
@@ -2,7 +2,7 @@ import { fromSso as getSsoTokenProvider } from "@aws-sdk/token-providers";
2
2
  import { CredentialsProviderError } from "@smithy/property-provider";
3
3
  import { getSSOTokenFromFile } from "@smithy/shared-ini-file-loader";
4
4
  const SHOULD_FAIL_CREDENTIAL_CHAIN = false;
5
- export const resolveSSOCredentials = async ({ ssoStartUrl, ssoSession, ssoAccountId, ssoRegion, ssoRoleName, ssoClient, clientConfig, profile, }) => {
5
+ export const resolveSSOCredentials = async ({ ssoStartUrl, ssoSession, ssoAccountId, ssoRegion, ssoRoleName, ssoClient, clientConfig, profile, logger, }) => {
6
6
  let token;
7
7
  const refreshMessage = `To refresh this SSO session run aws sso login with the corresponding profile.`;
8
8
  if (ssoSession) {
@@ -14,7 +14,10 @@ export const resolveSSOCredentials = async ({ ssoStartUrl, ssoSession, ssoAccoun
14
14
  };
15
15
  }
16
16
  catch (e) {
17
- throw new CredentialsProviderError(e.message, SHOULD_FAIL_CREDENTIAL_CHAIN);
17
+ throw new CredentialsProviderError(e.message, {
18
+ tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,
19
+ logger,
20
+ });
18
21
  }
19
22
  }
20
23
  else {
@@ -22,11 +25,17 @@ export const resolveSSOCredentials = async ({ ssoStartUrl, ssoSession, ssoAccoun
22
25
  token = await getSSOTokenFromFile(ssoStartUrl);
23
26
  }
24
27
  catch (e) {
25
- throw new CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, SHOULD_FAIL_CREDENTIAL_CHAIN);
28
+ throw new CredentialsProviderError(`The SSO session associated with this profile is invalid. ${refreshMessage}`, {
29
+ tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,
30
+ logger,
31
+ });
26
32
  }
27
33
  }
28
34
  if (new Date(token.expiresAt).getTime() - Date.now() <= 0) {
29
- throw new CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, SHOULD_FAIL_CREDENTIAL_CHAIN);
35
+ throw new CredentialsProviderError(`The SSO session associated with this profile has expired. ${refreshMessage}`, {
36
+ tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,
37
+ logger,
38
+ });
30
39
  }
31
40
  const { accessToken } = token;
32
41
  const { SSOClient, GetRoleCredentialsCommand } = await import("./loadSso");
@@ -43,11 +52,17 @@ export const resolveSSOCredentials = async ({ ssoStartUrl, ssoSession, ssoAccoun
43
52
  }));
44
53
  }
45
54
  catch (e) {
46
- throw CredentialsProviderError.from(e, SHOULD_FAIL_CREDENTIAL_CHAIN);
55
+ throw new CredentialsProviderError(e, {
56
+ tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,
57
+ logger,
58
+ });
47
59
  }
48
60
  const { roleCredentials: { accessKeyId, secretAccessKey, sessionToken, expiration, credentialScope } = {} } = ssoResp;
49
61
  if (!accessKeyId || !secretAccessKey || !sessionToken || !expiration) {
50
- throw new CredentialsProviderError("SSO returns an invalid temporary credential.", SHOULD_FAIL_CREDENTIAL_CHAIN);
62
+ throw new CredentialsProviderError("SSO returns an invalid temporary credential.", {
63
+ tryNextLink: SHOULD_FAIL_CREDENTIAL_CHAIN,
64
+ logger,
65
+ });
51
66
  }
52
67
  return { accessKeyId, secretAccessKey, sessionToken, expiration: new Date(expiration), credentialScope };
53
68
  };
@@ -1,9 +1,9 @@
1
1
  import { CredentialsProviderError } from "@smithy/property-provider";
2
- export const validateSsoProfile = (profile) => {
2
+ export const validateSsoProfile = (profile, logger) => {
3
3
  const { sso_start_url, sso_account_id, sso_region, sso_role_name } = profile;
4
4
  if (!sso_start_url || !sso_account_id || !sso_region || !sso_role_name) {
5
5
  throw new CredentialsProviderError(`Profile is configured with invalid SSO credentials. Required parameters "sso_account_id", ` +
6
- `"sso_region", "sso_role_name", "sso_start_url". Got ${Object.keys(profile).join(", ")}\nReference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`, false);
6
+ `"sso_region", "sso_role_name", "sso_start_url". Got ${Object.keys(profile).join(", ")}\nReference: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html`, { tryNextLink: false, logger });
7
7
  }
8
8
  return profile;
9
9
  };
@@ -3,4 +3,4 @@ import { FromSSOInit, SsoCredentialsParameters } from "./fromSSO";
3
3
  /**
4
4
  * @internal
5
5
  */
6
- export declare const resolveSSOCredentials: ({ ssoStartUrl, ssoSession, ssoAccountId, ssoRegion, ssoRoleName, ssoClient, clientConfig, profile, }: FromSSOInit & SsoCredentialsParameters) => Promise<AwsCredentialIdentity>;
6
+ export declare const resolveSSOCredentials: ({ ssoStartUrl, ssoSession, ssoAccountId, ssoRegion, ssoRoleName, ssoClient, clientConfig, profile, logger, }: FromSSOInit & SsoCredentialsParameters) => Promise<AwsCredentialIdentity>;
@@ -9,4 +9,5 @@ export declare const resolveSSOCredentials: ({
9
9
  ssoClient,
10
10
  clientConfig,
11
11
  profile,
12
+ logger,
12
13
  }: FromSSOInit & SsoCredentialsParameters) => Promise<AwsCredentialIdentity>;
@@ -1,4 +1,6 @@
1
+ import { Logger } from "@smithy/types";
1
2
  import { SsoProfile } from "./types";
2
3
  export declare const validateSsoProfile: (
3
- profile: Partial<SsoProfile>
4
+ profile: Partial<SsoProfile>,
5
+ logger?: Logger
4
6
  ) => SsoProfile;
@@ -1,5 +1,6 @@
1
+ import { Logger } from "@smithy/types";
1
2
  import { SsoProfile } from "./types";
2
3
  /**
3
4
  * @internal
4
5
  */
5
- export declare const validateSsoProfile: (profile: Partial<SsoProfile>) => SsoProfile;
6
+ export declare const validateSsoProfile: (profile: Partial<SsoProfile>, logger?: Logger) => SsoProfile;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/credential-provider-sso",
3
- "version": "3.583.0",
3
+ "version": "3.587.0",
4
4
  "description": "AWS credential provider that exchanges a resolved SSO login token file for temporary AWS credentials",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -24,11 +24,11 @@
24
24
  },
25
25
  "license": "Apache-2.0",
26
26
  "dependencies": {
27
- "@aws-sdk/client-sso": "3.583.0",
28
- "@aws-sdk/token-providers": "3.577.0",
27
+ "@aws-sdk/client-sso": "3.587.0",
28
+ "@aws-sdk/token-providers": "3.587.0",
29
29
  "@aws-sdk/types": "3.577.0",
30
- "@smithy/property-provider": "^3.0.0",
31
- "@smithy/shared-ini-file-loader": "^3.0.0",
30
+ "@smithy/property-provider": "^3.1.0",
31
+ "@smithy/shared-ini-file-loader": "^3.1.0",
32
32
  "@smithy/types": "^3.0.0",
33
33
  "tslib": "^2.6.2"
34
34
  },
@@ -8,12 +8,14 @@ const ENV_TOKEN_FILE = "AWS_WEB_IDENTITY_TOKEN_FILE";
8
8
  const ENV_ROLE_ARN = "AWS_ROLE_ARN";
9
9
  const ENV_ROLE_SESSION_NAME = "AWS_ROLE_SESSION_NAME";
10
10
  const fromTokenFile = (init = {}) => async () => {
11
- init.logger?.debug("@aws-sdk/credential-provider-web-identity", "fromTokenFile");
11
+ init.logger?.debug("@aws-sdk/credential-provider-web-identity - fromTokenFile");
12
12
  const webIdentityTokenFile = init?.webIdentityTokenFile ?? process.env[ENV_TOKEN_FILE];
13
13
  const roleArn = init?.roleArn ?? process.env[ENV_ROLE_ARN];
14
14
  const roleSessionName = init?.roleSessionName ?? process.env[ENV_ROLE_SESSION_NAME];
15
15
  if (!webIdentityTokenFile || !roleArn) {
16
- throw new property_provider_1.CredentialsProviderError("Web identity configuration not specified");
16
+ throw new property_provider_1.CredentialsProviderError("Web identity configuration not specified", {
17
+ logger: init.logger,
18
+ });
17
19
  }
18
20
  return (0, fromWebToken_1.fromWebToken)({
19
21
  ...init,
@@ -25,7 +25,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.fromWebToken = void 0;
27
27
  const fromWebToken = (init) => async () => {
28
- init.logger?.debug("@aws-sdk/credential-provider-web-identity", "fromWebToken");
28
+ init.logger?.debug("@aws-sdk/credential-provider-web-identity - fromWebToken");
29
29
  const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init;
30
30
  let { roleAssumerWithWebIdentity } = init;
31
31
  if (!roleAssumerWithWebIdentity) {
@@ -5,12 +5,14 @@ const ENV_TOKEN_FILE = "AWS_WEB_IDENTITY_TOKEN_FILE";
5
5
  const ENV_ROLE_ARN = "AWS_ROLE_ARN";
6
6
  const ENV_ROLE_SESSION_NAME = "AWS_ROLE_SESSION_NAME";
7
7
  export const fromTokenFile = (init = {}) => async () => {
8
- init.logger?.debug("@aws-sdk/credential-provider-web-identity", "fromTokenFile");
8
+ init.logger?.debug("@aws-sdk/credential-provider-web-identity - fromTokenFile");
9
9
  const webIdentityTokenFile = init?.webIdentityTokenFile ?? process.env[ENV_TOKEN_FILE];
10
10
  const roleArn = init?.roleArn ?? process.env[ENV_ROLE_ARN];
11
11
  const roleSessionName = init?.roleSessionName ?? process.env[ENV_ROLE_SESSION_NAME];
12
12
  if (!webIdentityTokenFile || !roleArn) {
13
- throw new CredentialsProviderError("Web identity configuration not specified");
13
+ throw new CredentialsProviderError("Web identity configuration not specified", {
14
+ logger: init.logger,
15
+ });
14
16
  }
15
17
  return fromWebToken({
16
18
  ...init,
@@ -1,5 +1,5 @@
1
1
  export const fromWebToken = (init) => async () => {
2
- init.logger?.debug("@aws-sdk/credential-provider-web-identity", "fromWebToken");
2
+ init.logger?.debug("@aws-sdk/credential-provider-web-identity - fromWebToken");
3
3
  const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init;
4
4
  let { roleAssumerWithWebIdentity } = init;
5
5
  if (!roleAssumerWithWebIdentity) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/credential-provider-web-identity",
3
- "version": "3.577.0",
3
+ "version": "3.587.0",
4
4
  "description": "AWS credential provider that calls STS assumeRole for temporary AWS credentials",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -33,7 +33,7 @@
33
33
  "license": "Apache-2.0",
34
34
  "dependencies": {
35
35
  "@aws-sdk/types": "3.577.0",
36
- "@smithy/property-provider": "^3.0.0",
36
+ "@smithy/property-provider": "^3.1.0",
37
37
  "@smithy/types": "^3.0.0",
38
38
  "tslib": "^2.6.2"
39
39
  },
@@ -46,7 +46,7 @@
46
46
  "typescript": "~4.9.5"
47
47
  },
48
48
  "peerDependencies": {
49
- "@aws-sdk/client-sts": "^3.577.0"
49
+ "@aws-sdk/client-sts": "^3.587.0"
50
50
  },
51
51
  "types": "./dist-types/index.d.ts",
52
52
  "engines": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/middleware-user-agent",
3
- "version": "3.583.0",
3
+ "version": "3.587.0",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'",
6
6
  "build:cjs": "node ../../scripts/compilation/inline middleware-user-agent",
@@ -23,7 +23,7 @@
23
23
  "license": "Apache-2.0",
24
24
  "dependencies": {
25
25
  "@aws-sdk/types": "3.577.0",
26
- "@aws-sdk/util-endpoints": "3.583.0",
26
+ "@aws-sdk/util-endpoints": "3.587.0",
27
27
  "@smithy/protocol-http": "^4.0.0",
28
28
  "@smithy/types": "^3.0.0",
29
29
  "tslib": "^2.6.2"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/region-config-resolver",
3
- "version": "3.577.0",
3
+ "version": "3.587.0",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'",
6
6
  "build:cjs": "node ../../scripts/compilation/inline region-config-resolver",
@@ -22,7 +22,7 @@
22
22
  "license": "Apache-2.0",
23
23
  "dependencies": {
24
24
  "@aws-sdk/types": "3.577.0",
25
- "@smithy/node-config-provider": "^3.0.0",
25
+ "@smithy/node-config-provider": "^3.1.0",
26
26
  "@smithy/types": "^3.0.0",
27
27
  "@smithy/util-config-provider": "^3.0.0",
28
28
  "@smithy/util-middleware": "^3.0.0",
@@ -104,7 +104,7 @@ var writeSSOTokenToFile = /* @__PURE__ */ __name((id, ssoToken) => {
104
104
  var lastRefreshAttemptTime = /* @__PURE__ */ new Date(0);
105
105
  var fromSso = /* @__PURE__ */ __name((init = {}) => async () => {
106
106
  var _a;
107
- (_a = init.logger) == null ? void 0 : _a.debug("@aws-sdk/token-providers", "fromSso");
107
+ (_a = init.logger) == null ? void 0 : _a.debug("@aws-sdk/token-providers - fromSso");
108
108
  const profiles = await (0, import_shared_ini_file_loader.parseKnownFiles)(init);
109
109
  const profileName = (0, import_shared_ini_file_loader.getProfileName)(init);
110
110
  const profile = profiles[profileName];
@@ -183,7 +183,7 @@ var fromSso = /* @__PURE__ */ __name((init = {}) => async () => {
183
183
  // src/fromStatic.ts
184
184
 
185
185
  var fromStatic = /* @__PURE__ */ __name(({ token, logger }) => async () => {
186
- logger == null ? void 0 : logger.debug("@aws-sdk/token-providers", "fromStatic");
186
+ logger == null ? void 0 : logger.debug("@aws-sdk/token-providers - fromStatic");
187
187
  if (!token || !token.token) {
188
188
  throw new import_property_provider.TokenProviderError(`Please pass a valid token to fromStatic`, false);
189
189
  }
@@ -7,7 +7,7 @@ import { validateTokenKey } from "./validateTokenKey";
7
7
  import { writeSSOTokenToFile } from "./writeSSOTokenToFile";
8
8
  const lastRefreshAttemptTime = new Date(0);
9
9
  export const fromSso = (init = {}) => async () => {
10
- init.logger?.debug("@aws-sdk/token-providers", "fromSso");
10
+ init.logger?.debug("@aws-sdk/token-providers - fromSso");
11
11
  const profiles = await parseKnownFiles(init);
12
12
  const profileName = getProfileName(init);
13
13
  const profile = profiles[profileName];
@@ -1,6 +1,6 @@
1
1
  import { TokenProviderError } from "@smithy/property-provider";
2
2
  export const fromStatic = ({ token, logger }) => async () => {
3
- logger?.debug("@aws-sdk/token-providers", "fromStatic");
3
+ logger?.debug("@aws-sdk/token-providers - fromStatic");
4
4
  if (!token || !token.token) {
5
5
  throw new TokenProviderError(`Please pass a valid token to fromStatic`, false);
6
6
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/token-providers",
3
- "version": "3.577.0",
3
+ "version": "3.587.0",
4
4
  "description": "A collection of token providers",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -27,8 +27,8 @@
27
27
  "license": "Apache-2.0",
28
28
  "dependencies": {
29
29
  "@aws-sdk/types": "3.577.0",
30
- "@smithy/property-provider": "^3.0.0",
31
- "@smithy/shared-ini-file-loader": "^3.0.0",
30
+ "@smithy/property-provider": "^3.1.0",
31
+ "@smithy/shared-ini-file-loader": "^3.1.0",
32
32
  "@smithy/types": "^3.0.0",
33
33
  "tslib": "^2.6.2"
34
34
  },
@@ -41,7 +41,7 @@
41
41
  "typescript": "~4.9.5"
42
42
  },
43
43
  "peerDependencies": {
44
- "@aws-sdk/client-sso-oidc": "^3.577.0"
44
+ "@aws-sdk/client-sso-oidc": "^3.587.0"
45
45
  },
46
46
  "types": "./dist-types/index.d.ts",
47
47
  "engines": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/util-endpoints",
3
- "version": "3.583.0",
3
+ "version": "3.587.0",
4
4
  "description": "Utilities to help with endpoint resolution",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -24,7 +24,7 @@
24
24
  "dependencies": {
25
25
  "@aws-sdk/types": "3.577.0",
26
26
  "@smithy/types": "^3.0.0",
27
- "@smithy/util-endpoints": "^2.0.0",
27
+ "@smithy/util-endpoints": "^2.0.1",
28
28
  "tslib": "^2.6.2"
29
29
  },
30
30
  "engines": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/util-user-agent-node",
3
- "version": "3.577.0",
3
+ "version": "3.587.0",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'",
6
6
  "build:cjs": "node ../../scripts/compilation/inline util-user-agent-node",
@@ -21,7 +21,7 @@
21
21
  "license": "Apache-2.0",
22
22
  "dependencies": {
23
23
  "@aws-sdk/types": "3.577.0",
24
- "@smithy/node-config-provider": "^3.0.0",
24
+ "@smithy/node-config-provider": "^3.1.0",
25
25
  "@smithy/types": "^3.0.0",
26
26
  "tslib": "^2.6.2"
27
27
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/config-resolver",
3
- "version": "3.0.0",
3
+ "version": "3.0.1",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types && yarn build:types:downlevel'",
6
6
  "build:cjs": "node ../../scripts/inline config-resolver",
@@ -23,7 +23,7 @@
23
23
  },
24
24
  "license": "Apache-2.0",
25
25
  "dependencies": {
26
- "@smithy/node-config-provider": "^3.0.0",
26
+ "@smithy/node-config-provider": "^3.1.0",
27
27
  "@smithy/types": "^3.0.0",
28
28
  "@smithy/util-config-provider": "^3.0.0",
29
29
  "@smithy/util-middleware": "^3.0.0",
@@ -5,8 +5,41 @@
5
5
 
6
6
  > An internal package. You probably shouldn't use this package, at least directly.
7
7
 
8
- ## Usage
9
-
10
8
  This package provides common or core functionality for generic Smithy clients.
11
9
 
12
10
  You do not need to explicitly install this package, since it will be installed during code generation if used.
11
+
12
+ ## Development of `@smithy/core` submodules
13
+
14
+ Core submodules are organized for distribution via the `package.json` `exports` field.
15
+
16
+ `exports` is supported by default by the latest Node.js, webpack, and esbuild. For react-native, it can be
17
+ enabled via instructions found at [reactnative.dev/blog](https://reactnative.dev/blog/2023/06/21/package-exports-support), but we also provide a compatibility redirect.
18
+
19
+ Think of `@smithy/core` as a mono-package within the monorepo.
20
+ It preserves the benefits of modularization, for example to optimize Node.js initialization speed,
21
+ while making it easier to have a consistent version of core dependencies, reducing package sprawl when
22
+ installing a Smithy runtime client.
23
+
24
+ ### Guide for submodules
25
+
26
+ - Each `index.ts` file corresponding to the pattern `./src/submodules/<MODULE_NAME>/index.ts` will be
27
+ published as a separate `dist-cjs` bundled submodule index using the `Inliner.js` build script.
28
+ - create a folder as `./src/submodules/<SUBMODULE>` including an `index.ts` file and a `README.md` file.
29
+ - The linter will throw an error on missing submodule metadata in `package.json` and the various `tsconfig.json` files, but it will automatically fix them if possible.
30
+ - a submodule is equivalent to a standalone `@smithy/<pkg>` package in that importing it in Node.js will resolve a separate bundle.
31
+ - submodules may not relatively import files from other submodules. Instead, directly use the `@scope/pkg/submodule` name as the import.
32
+ - The linter will check for this and throw an error.
33
+ - To the extent possible, correctly declaring submodule metadata is validated by the linter in `@smithy/core`.
34
+ The linter runs during `yarn build` and also as `yarn lint`.
35
+
36
+ ### When should I create an `@smithy/core/submodule` vs. `@smithy/new-package`?
37
+
38
+ Keep in mind that the core package is installed by all downstream clients.
39
+
40
+ If the component functionality is upstream of multiple clients, it is
41
+ a good candidate for a core submodule. For example, if `middleware-retry` had been written
42
+ after the support for submodules was added, it would have been a submodule.
43
+
44
+ If the component's functionality is downstream of a client (rare), or only expected to be used by a very small
45
+ subset of clients, it could be written as a standalone package.