@cdklabs/cdk-ecs-codedeploy 0.0.282 → 0.0.284

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 (60) 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/package.json +6 -6
  8. package/node_modules/@aws-sdk/client-sso/package.json +3 -3
  9. package/node_modules/@aws-sdk/client-sso-oidc/package.json +5 -5
  10. package/node_modules/@aws-sdk/client-sts/package.json +5 -5
  11. package/node_modules/@aws-sdk/credential-provider-ini/package.json +3 -3
  12. package/node_modules/@aws-sdk/credential-provider-node/package.json +3 -3
  13. package/node_modules/@aws-sdk/credential-provider-sso/package.json +2 -2
  14. package/node_modules/@aws-sdk/middleware-user-agent/package.json +2 -2
  15. package/node_modules/@aws-sdk/util-endpoints/dist-cjs/index.js +5 -1
  16. package/node_modules/@aws-sdk/util-endpoints/dist-cjs/lib/aws/partitions.json +5 -1
  17. package/node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/partitions.json +5 -1
  18. package/node_modules/@aws-sdk/util-endpoints/package.json +1 -1
  19. package/node_modules/@smithy/config-resolver/package.json +2 -2
  20. package/node_modules/@smithy/core/README.md +35 -2
  21. package/node_modules/@smithy/core/package.json +19 -6
  22. package/node_modules/@smithy/credential-provider-imds/dist-cjs/index.js +30 -22
  23. package/node_modules/@smithy/credential-provider-imds/dist-es/fromContainerMetadata.js +17 -6
  24. package/node_modules/@smithy/credential-provider-imds/dist-es/fromInstanceMetadata.js +11 -9
  25. package/node_modules/@smithy/credential-provider-imds/package.json +3 -3
  26. package/node_modules/@smithy/middleware-endpoint/package.json +3 -3
  27. package/node_modules/@smithy/middleware-retry/package.json +3 -3
  28. package/node_modules/@smithy/node-config-provider/dist-cjs/getSelectorName.js +1 -0
  29. package/node_modules/@smithy/node-config-provider/dist-cjs/index.js +21 -3
  30. package/node_modules/@smithy/node-config-provider/dist-es/fromEnv.js +3 -2
  31. package/node_modules/@smithy/node-config-provider/dist-es/fromSharedConfigFiles.js +2 -2
  32. package/node_modules/@smithy/node-config-provider/dist-es/getSelectorName.js +12 -0
  33. package/node_modules/@smithy/node-config-provider/dist-types/fromEnv.d.ts +2 -2
  34. package/node_modules/@smithy/node-config-provider/dist-types/getSelectorName.d.ts +9 -0
  35. package/node_modules/@smithy/node-config-provider/dist-types/ts3.4/fromEnv.d.ts +2 -2
  36. package/node_modules/@smithy/node-config-provider/dist-types/ts3.4/getSelectorName.d.ts +9 -0
  37. package/node_modules/@smithy/node-config-provider/package.json +3 -3
  38. package/node_modules/@smithy/property-provider/dist-cjs/index.js +28 -10
  39. package/node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js +2 -3
  40. package/node_modules/@smithy/property-provider/dist-es/ProviderError.js +15 -4
  41. package/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js +2 -3
  42. package/node_modules/@smithy/property-provider/dist-types/CredentialsProviderError.d.ts +16 -3
  43. package/node_modules/@smithy/property-provider/dist-types/ProviderError.d.ts +25 -3
  44. package/node_modules/@smithy/property-provider/dist-types/TokenProviderError.d.ts +16 -3
  45. package/node_modules/@smithy/property-provider/dist-types/ts3.4/CredentialsProviderError.d.ts +16 -3
  46. package/node_modules/@smithy/property-provider/dist-types/ts3.4/ProviderError.d.ts +25 -3
  47. package/node_modules/@smithy/property-provider/dist-types/ts3.4/TokenProviderError.d.ts +16 -3
  48. package/node_modules/@smithy/property-provider/package.json +1 -1
  49. package/node_modules/@smithy/shared-ini-file-loader/dist-types/loadSharedConfigFiles.d.ts +5 -1
  50. package/node_modules/@smithy/shared-ini-file-loader/dist-types/ts3.4/loadSharedConfigFiles.d.ts +5 -1
  51. package/node_modules/@smithy/shared-ini-file-loader/package.json +1 -1
  52. package/node_modules/@smithy/smithy-client/dist-cjs/index.js +3 -0
  53. package/node_modules/@smithy/smithy-client/dist-es/ser-utils.js +1 -0
  54. package/node_modules/@smithy/smithy-client/dist-types/ser-utils.d.ts +5 -0
  55. package/node_modules/@smithy/smithy-client/dist-types/ts3.4/ser-utils.d.ts +5 -0
  56. package/node_modules/@smithy/smithy-client/package.json +2 -2
  57. package/node_modules/@smithy/util-defaults-mode-browser/package.json +3 -3
  58. package/node_modules/@smithy/util-defaults-mode-node/package.json +6 -6
  59. package/node_modules/@smithy/util-endpoints/package.json +2 -2
  60. package/package.json +7 -6
@@ -1,21 +1,34 @@
1
1
  {
2
2
  "name": "@smithy/core",
3
- "version": "2.0.1",
3
+ "version": "2.1.1",
4
4
  "scripts": {
5
- "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types && yarn build:types:downlevel'",
5
+ "build": "yarn lint && concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types && yarn build:types:downlevel'",
6
6
  "build:cjs": "node ../../scripts/inline core",
7
7
  "build:es": "yarn g:tsc -p tsconfig.es.json",
8
8
  "build:types": "yarn g:tsc -p tsconfig.types.json",
9
9
  "build:types:downlevel": "downlevel-dts dist-types dist-types/ts3.4",
10
10
  "stage-release": "rimraf ./.release && yarn pack && mkdir ./.release && tar zxvf ./package.tgz --directory ./.release && rm ./package.tgz",
11
11
  "clean": "rimraf ./dist-* && rimraf *.tsbuildinfo || exit 0",
12
- "lint": "eslint -c ../../.eslintrc.js \"src/**/*.ts\"",
12
+ "lint": "npx eslint -c ../../.eslintrc.js \"src/**/*.ts\" && node ./scripts/lint",
13
13
  "format": "prettier --config ../../prettier.config.js --ignore-path ../.prettierignore --write \"**/*.{ts,md,json}\"",
14
14
  "test": "yarn g:jest"
15
15
  },
16
16
  "main": "./dist-cjs/index.js",
17
17
  "module": "./dist-es/index.js",
18
18
  "types": "./dist-types/index.d.ts",
19
+ "exports": {
20
+ ".": {
21
+ "node": "./dist-cjs/index.js",
22
+ "import": "./dist-es/index.js",
23
+ "require": "./dist-cjs/index.js",
24
+ "types": "./dist-types/index.d.ts"
25
+ },
26
+ "./package.json": {
27
+ "node": "./package.json",
28
+ "import": "./package.json",
29
+ "require": "./package.json"
30
+ }
31
+ },
19
32
  "author": {
20
33
  "name": "AWS Smithy Team",
21
34
  "email": "",
@@ -23,11 +36,11 @@
23
36
  },
24
37
  "license": "Apache-2.0",
25
38
  "dependencies": {
26
- "@smithy/middleware-endpoint": "^3.0.0",
27
- "@smithy/middleware-retry": "^3.0.1",
39
+ "@smithy/middleware-endpoint": "^3.0.1",
40
+ "@smithy/middleware-retry": "^3.0.3",
28
41
  "@smithy/middleware-serde": "^3.0.0",
29
42
  "@smithy/protocol-http": "^4.0.0",
30
- "@smithy/smithy-client": "^3.0.1",
43
+ "@smithy/smithy-client": "^3.1.1",
31
44
  "@smithy/types": "^3.0.0",
32
45
  "@smithy/util-middleware": "^3.0.0",
33
46
  "tslib": "^2.6.2"
@@ -115,10 +115,12 @@ var ENV_CMDS_AUTH_TOKEN = "AWS_CONTAINER_AUTHORIZATION_TOKEN";
115
115
  var fromContainerMetadata = /* @__PURE__ */ __name((init = {}) => {
116
116
  const { timeout, maxRetries } = providerConfigFromInit(init);
117
117
  return () => retry(async () => {
118
- const requestOptions = await getCmdsUri();
118
+ const requestOptions = await getCmdsUri({ logger: init.logger });
119
119
  const credsResponse = JSON.parse(await requestFromEcsImds(timeout, requestOptions));
120
120
  if (!isImdsCredentials(credsResponse)) {
121
- throw new import_property_provider.CredentialsProviderError("Invalid response received from instance metadata service.");
121
+ throw new import_property_provider.CredentialsProviderError("Invalid response received from instance metadata service.", {
122
+ logger: init.logger
123
+ });
122
124
  }
123
125
  return fromImdsCredentials(credsResponse);
124
126
  }, maxRetries);
@@ -145,7 +147,7 @@ var GREENGRASS_PROTOCOLS = {
145
147
  "http:": true,
146
148
  "https:": true
147
149
  };
148
- var getCmdsUri = /* @__PURE__ */ __name(async () => {
150
+ var getCmdsUri = /* @__PURE__ */ __name(async ({ logger }) => {
149
151
  if (process.env[ENV_CMDS_RELATIVE_URI]) {
150
152
  return {
151
153
  hostname: CMDS_IP,
@@ -155,16 +157,16 @@ var getCmdsUri = /* @__PURE__ */ __name(async () => {
155
157
  if (process.env[ENV_CMDS_FULL_URI]) {
156
158
  const parsed = (0, import_url.parse)(process.env[ENV_CMDS_FULL_URI]);
157
159
  if (!parsed.hostname || !(parsed.hostname in GREENGRASS_HOSTS)) {
158
- throw new import_property_provider.CredentialsProviderError(
159
- `${parsed.hostname} is not a valid container metadata service hostname`,
160
- false
161
- );
160
+ throw new import_property_provider.CredentialsProviderError(`${parsed.hostname} is not a valid container metadata service hostname`, {
161
+ tryNextLink: false,
162
+ logger
163
+ });
162
164
  }
163
165
  if (!parsed.protocol || !(parsed.protocol in GREENGRASS_PROTOCOLS)) {
164
- throw new import_property_provider.CredentialsProviderError(
165
- `${parsed.protocol} is not a valid container metadata service protocol`,
166
- false
167
- );
166
+ throw new import_property_provider.CredentialsProviderError(`${parsed.protocol} is not a valid container metadata service protocol`, {
167
+ tryNextLink: false,
168
+ logger
169
+ });
168
170
  }
169
171
  return {
170
172
  ...parsed,
@@ -173,7 +175,10 @@ var getCmdsUri = /* @__PURE__ */ __name(async () => {
173
175
  }
174
176
  throw new import_property_provider.CredentialsProviderError(
175
177
  `The container metadata credential provider cannot be used unless the ${ENV_CMDS_RELATIVE_URI} or ${ENV_CMDS_FULL_URI} environment variable is set`,
176
- false
178
+ {
179
+ tryNextLink: false,
180
+ logger
181
+ }
177
182
  );
178
183
  }, "getCmdsUri");
179
184
 
@@ -294,8 +299,8 @@ var IMDS_TOKEN_PATH = "/latest/api/token";
294
299
  var AWS_EC2_METADATA_V1_DISABLED = "AWS_EC2_METADATA_V1_DISABLED";
295
300
  var PROFILE_AWS_EC2_METADATA_V1_DISABLED = "ec2_metadata_v1_disabled";
296
301
  var X_AWS_EC2_METADATA_TOKEN = "x-aws-ec2-metadata-token";
297
- var fromInstanceMetadata = /* @__PURE__ */ __name((init = {}) => staticStabilityProvider(getInstanceImdsProvider(init), { logger: init.logger }), "fromInstanceMetadata");
298
- var getInstanceImdsProvider = /* @__PURE__ */ __name((init) => {
302
+ var fromInstanceMetadata = /* @__PURE__ */ __name((init = {}) => staticStabilityProvider(getInstanceMetadataProvider(init), { logger: init.logger }), "fromInstanceMetadata");
303
+ var getInstanceMetadataProvider = /* @__PURE__ */ __name((init = {}) => {
299
304
  let disableFetchToken = false;
300
305
  const { logger, profile } = init;
301
306
  const { timeout, maxRetries } = providerConfigFromInit(init);
@@ -312,7 +317,8 @@ var getInstanceImdsProvider = /* @__PURE__ */ __name((init) => {
312
317
  fallbackBlockedFromProcessEnv = !!envValue && envValue !== "false";
313
318
  if (envValue === void 0) {
314
319
  throw new import_property_provider.CredentialsProviderError(
315
- `${AWS_EC2_METADATA_V1_DISABLED} not set in env, checking config file next.`
320
+ `${AWS_EC2_METADATA_V1_DISABLED} not set in env, checking config file next.`,
321
+ { logger: init.logger }
316
322
  );
317
323
  }
318
324
  return fallbackBlockedFromProcessEnv;
@@ -358,7 +364,7 @@ var getInstanceImdsProvider = /* @__PURE__ */ __name((init) => {
358
364
  return retry(async () => {
359
365
  let creds;
360
366
  try {
361
- creds = await getCredentialsFromProfile(imdsProfile, options);
367
+ creds = await getCredentialsFromProfile(imdsProfile, options, init);
362
368
  } catch (err) {
363
369
  if (err.statusCode === 401) {
364
370
  disableFetchToken = false;
@@ -397,7 +403,7 @@ var getInstanceImdsProvider = /* @__PURE__ */ __name((init) => {
397
403
  });
398
404
  }
399
405
  };
400
- }, "getInstanceImdsProvider");
406
+ }, "getInstanceMetadataProvider");
401
407
  var getMetadataToken = /* @__PURE__ */ __name(async (options) => httpRequest({
402
408
  ...options,
403
409
  path: IMDS_TOKEN_PATH,
@@ -407,17 +413,19 @@ var getMetadataToken = /* @__PURE__ */ __name(async (options) => httpRequest({
407
413
  }
408
414
  }), "getMetadataToken");
409
415
  var getProfile = /* @__PURE__ */ __name(async (options) => (await httpRequest({ ...options, path: IMDS_PATH })).toString(), "getProfile");
410
- var getCredentialsFromProfile = /* @__PURE__ */ __name(async (profile, options) => {
411
- const credsResponse = JSON.parse(
416
+ var getCredentialsFromProfile = /* @__PURE__ */ __name(async (profile, options, init) => {
417
+ const credentialsResponse = JSON.parse(
412
418
  (await httpRequest({
413
419
  ...options,
414
420
  path: IMDS_PATH + profile
415
421
  })).toString()
416
422
  );
417
- if (!isImdsCredentials(credsResponse)) {
418
- throw new import_property_provider.CredentialsProviderError("Invalid response received from instance metadata service.");
423
+ if (!isImdsCredentials(credentialsResponse)) {
424
+ throw new import_property_provider.CredentialsProviderError("Invalid response received from instance metadata service.", {
425
+ logger: init.logger
426
+ });
419
427
  }
420
- return fromImdsCredentials(credsResponse);
428
+ return fromImdsCredentials(credentialsResponse);
421
429
  }, "getCredentialsFromProfile");
422
430
  // Annotate the CommonJS export names for ESM import in node:
423
431
 
@@ -10,10 +10,12 @@ export const ENV_CMDS_AUTH_TOKEN = "AWS_CONTAINER_AUTHORIZATION_TOKEN";
10
10
  export const fromContainerMetadata = (init = {}) => {
11
11
  const { timeout, maxRetries } = providerConfigFromInit(init);
12
12
  return () => retry(async () => {
13
- const requestOptions = await getCmdsUri();
13
+ const requestOptions = await getCmdsUri({ logger: init.logger });
14
14
  const credsResponse = JSON.parse(await requestFromEcsImds(timeout, requestOptions));
15
15
  if (!isImdsCredentials(credsResponse)) {
16
- throw new CredentialsProviderError("Invalid response received from instance metadata service.");
16
+ throw new CredentialsProviderError("Invalid response received from instance metadata service.", {
17
+ logger: init.logger,
18
+ });
17
19
  }
18
20
  return fromImdsCredentials(credsResponse);
19
21
  }, maxRetries);
@@ -40,7 +42,7 @@ const GREENGRASS_PROTOCOLS = {
40
42
  "http:": true,
41
43
  "https:": true,
42
44
  };
43
- const getCmdsUri = async () => {
45
+ const getCmdsUri = async ({ logger }) => {
44
46
  if (process.env[ENV_CMDS_RELATIVE_URI]) {
45
47
  return {
46
48
  hostname: CMDS_IP,
@@ -50,10 +52,16 @@ const getCmdsUri = async () => {
50
52
  if (process.env[ENV_CMDS_FULL_URI]) {
51
53
  const parsed = parse(process.env[ENV_CMDS_FULL_URI]);
52
54
  if (!parsed.hostname || !(parsed.hostname in GREENGRASS_HOSTS)) {
53
- throw new CredentialsProviderError(`${parsed.hostname} is not a valid container metadata service hostname`, false);
55
+ throw new CredentialsProviderError(`${parsed.hostname} is not a valid container metadata service hostname`, {
56
+ tryNextLink: false,
57
+ logger,
58
+ });
54
59
  }
55
60
  if (!parsed.protocol || !(parsed.protocol in GREENGRASS_PROTOCOLS)) {
56
- throw new CredentialsProviderError(`${parsed.protocol} is not a valid container metadata service protocol`, false);
61
+ throw new CredentialsProviderError(`${parsed.protocol} is not a valid container metadata service protocol`, {
62
+ tryNextLink: false,
63
+ logger,
64
+ });
57
65
  }
58
66
  return {
59
67
  ...parsed,
@@ -62,5 +70,8 @@ const getCmdsUri = async () => {
62
70
  }
63
71
  throw new CredentialsProviderError("The container metadata credential provider cannot be used unless" +
64
72
  ` the ${ENV_CMDS_RELATIVE_URI} or ${ENV_CMDS_FULL_URI} environment` +
65
- " variable is set", false);
73
+ " variable is set", {
74
+ tryNextLink: false,
75
+ logger,
76
+ });
66
77
  };
@@ -12,8 +12,8 @@ const IMDS_TOKEN_PATH = "/latest/api/token";
12
12
  const AWS_EC2_METADATA_V1_DISABLED = "AWS_EC2_METADATA_V1_DISABLED";
13
13
  const PROFILE_AWS_EC2_METADATA_V1_DISABLED = "ec2_metadata_v1_disabled";
14
14
  const X_AWS_EC2_METADATA_TOKEN = "x-aws-ec2-metadata-token";
15
- export const fromInstanceMetadata = (init = {}) => staticStabilityProvider(getInstanceImdsProvider(init), { logger: init.logger });
16
- const getInstanceImdsProvider = (init) => {
15
+ export const fromInstanceMetadata = (init = {}) => staticStabilityProvider(getInstanceMetadataProvider(init), { logger: init.logger });
16
+ const getInstanceMetadataProvider = (init = {}) => {
17
17
  let disableFetchToken = false;
18
18
  const { logger, profile } = init;
19
19
  const { timeout, maxRetries } = providerConfigFromInit(init);
@@ -27,7 +27,7 @@ const getInstanceImdsProvider = (init) => {
27
27
  const envValue = env[AWS_EC2_METADATA_V1_DISABLED];
28
28
  fallbackBlockedFromProcessEnv = !!envValue && envValue !== "false";
29
29
  if (envValue === undefined) {
30
- throw new CredentialsProviderError(`${AWS_EC2_METADATA_V1_DISABLED} not set in env, checking config file next.`);
30
+ throw new CredentialsProviderError(`${AWS_EC2_METADATA_V1_DISABLED} not set in env, checking config file next.`, { logger: init.logger });
31
31
  }
32
32
  return fallbackBlockedFromProcessEnv;
33
33
  },
@@ -67,7 +67,7 @@ const getInstanceImdsProvider = (init) => {
67
67
  return retry(async () => {
68
68
  let creds;
69
69
  try {
70
- creds = await getCredentialsFromProfile(imdsProfile, options);
70
+ creds = await getCredentialsFromProfile(imdsProfile, options, init);
71
71
  }
72
72
  catch (err) {
73
73
  if (err.statusCode === 401) {
@@ -120,13 +120,15 @@ const getMetadataToken = async (options) => httpRequest({
120
120
  },
121
121
  });
122
122
  const getProfile = async (options) => (await httpRequest({ ...options, path: IMDS_PATH })).toString();
123
- const getCredentialsFromProfile = async (profile, options) => {
124
- const credsResponse = JSON.parse((await httpRequest({
123
+ const getCredentialsFromProfile = async (profile, options, init) => {
124
+ const credentialsResponse = JSON.parse((await httpRequest({
125
125
  ...options,
126
126
  path: IMDS_PATH + profile,
127
127
  })).toString());
128
- if (!isImdsCredentials(credsResponse)) {
129
- throw new CredentialsProviderError("Invalid response received from instance metadata service.");
128
+ if (!isImdsCredentials(credentialsResponse)) {
129
+ throw new CredentialsProviderError("Invalid response received from instance metadata service.", {
130
+ logger: init.logger,
131
+ });
130
132
  }
131
- return fromImdsCredentials(credsResponse);
133
+ return fromImdsCredentials(credentialsResponse);
132
134
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/credential-provider-imds",
3
- "version": "3.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "AWS credential provider that sources credentials from the EC2 instance metadata service and ECS container metadata service",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -26,8 +26,8 @@
26
26
  },
27
27
  "license": "Apache-2.0",
28
28
  "dependencies": {
29
- "@smithy/node-config-provider": "^3.0.0",
30
- "@smithy/property-provider": "^3.0.0",
29
+ "@smithy/node-config-provider": "^3.1.0",
30
+ "@smithy/property-provider": "^3.1.0",
31
31
  "@smithy/types": "^3.0.0",
32
32
  "@smithy/url-parser": "^3.0.0",
33
33
  "tslib": "^2.6.2"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/middleware-endpoint",
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 middleware-endpoint",
@@ -24,8 +24,8 @@
24
24
  "license": "Apache-2.0",
25
25
  "dependencies": {
26
26
  "@smithy/middleware-serde": "^3.0.0",
27
- "@smithy/node-config-provider": "^3.0.0",
28
- "@smithy/shared-ini-file-loader": "^3.0.0",
27
+ "@smithy/node-config-provider": "^3.1.0",
28
+ "@smithy/shared-ini-file-loader": "^3.1.0",
29
29
  "@smithy/types": "^3.0.0",
30
30
  "@smithy/url-parser": "^3.0.0",
31
31
  "@smithy/util-middleware": "^3.0.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/middleware-retry",
3
- "version": "3.0.1",
3
+ "version": "3.0.3",
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 middleware-retry",
@@ -31,10 +31,10 @@
31
31
  },
32
32
  "license": "Apache-2.0",
33
33
  "dependencies": {
34
- "@smithy/node-config-provider": "^3.0.0",
34
+ "@smithy/node-config-provider": "^3.1.0",
35
35
  "@smithy/protocol-http": "^4.0.0",
36
36
  "@smithy/service-error-classification": "^3.0.0",
37
- "@smithy/smithy-client": "^3.0.1",
37
+ "@smithy/smithy-client": "^3.1.1",
38
38
  "@smithy/types": "^3.0.0",
39
39
  "@smithy/util-middleware": "^3.0.0",
40
40
  "@smithy/util-retry": "^3.0.0",
@@ -0,0 +1 @@
1
+ module.exports = require("./index.js");
@@ -29,7 +29,23 @@ module.exports = __toCommonJS(src_exports);
29
29
 
30
30
  // src/fromEnv.ts
31
31
  var import_property_provider = require("@smithy/property-provider");
32
- var fromEnv = /* @__PURE__ */ __name((envVarSelector) => async () => {
32
+
33
+ // src/getSelectorName.ts
34
+ function getSelectorName(functionString) {
35
+ try {
36
+ const constants = new Set(Array.from(functionString.match(/([A-Z_]){3,}/g) ?? []));
37
+ constants.delete("CONFIG");
38
+ constants.delete("CONFIG_PREFIX_SEPARATOR");
39
+ constants.delete("ENV");
40
+ return [...constants].join(", ");
41
+ } catch (e) {
42
+ return functionString;
43
+ }
44
+ }
45
+ __name(getSelectorName, "getSelectorName");
46
+
47
+ // src/fromEnv.ts
48
+ var fromEnv = /* @__PURE__ */ __name((envVarSelector, logger) => async () => {
33
49
  try {
34
50
  const config = envVarSelector(process.env);
35
51
  if (config === void 0) {
@@ -38,7 +54,8 @@ var fromEnv = /* @__PURE__ */ __name((envVarSelector) => async () => {
38
54
  return config;
39
55
  } catch (e) {
40
56
  throw new import_property_provider.CredentialsProviderError(
41
- e.message || `Cannot load config from environment variables with getter: ${envVarSelector}`
57
+ e.message || `Not found in ENV: ${getSelectorName(envVarSelector.toString())}`,
58
+ { logger }
42
59
  );
43
60
  }
44
61
  }, "fromEnv");
@@ -61,7 +78,8 @@ var fromSharedConfigFiles = /* @__PURE__ */ __name((configSelector, { preferredF
61
78
  return configValue;
62
79
  } catch (e) {
63
80
  throw new import_property_provider.CredentialsProviderError(
64
- e.message || `Cannot load config for profile ${profile} in SDK configuration files with getter: ${configSelector}`
81
+ e.message || `Not found in config files w/ profile [${profile}]: ${getSelectorName(configSelector.toString())}`,
82
+ { logger: init.logger }
65
83
  );
66
84
  }
67
85
  }, "fromSharedConfigFiles");
@@ -1,5 +1,6 @@
1
1
  import { CredentialsProviderError } from "@smithy/property-provider";
2
- export const fromEnv = (envVarSelector) => async () => {
2
+ import { getSelectorName } from "./getSelectorName";
3
+ export const fromEnv = (envVarSelector, logger) => async () => {
3
4
  try {
4
5
  const config = envVarSelector(process.env);
5
6
  if (config === undefined) {
@@ -8,6 +9,6 @@ export const fromEnv = (envVarSelector) => async () => {
8
9
  return config;
9
10
  }
10
11
  catch (e) {
11
- throw new CredentialsProviderError(e.message || `Cannot load config from environment variables with getter: ${envVarSelector}`);
12
+ throw new CredentialsProviderError(e.message || `Not found in ENV: ${getSelectorName(envVarSelector.toString())}`, { logger });
12
13
  }
13
14
  };
@@ -1,5 +1,6 @@
1
1
  import { CredentialsProviderError } from "@smithy/property-provider";
2
2
  import { getProfileName, loadSharedConfigFiles } from "@smithy/shared-ini-file-loader";
3
+ import { getSelectorName } from "./getSelectorName";
3
4
  export const fromSharedConfigFiles = (configSelector, { preferredFile = "config", ...init } = {}) => async () => {
4
5
  const profile = getProfileName(init);
5
6
  const { configFile, credentialsFile } = await loadSharedConfigFiles(init);
@@ -17,7 +18,6 @@ export const fromSharedConfigFiles = (configSelector, { preferredFile = "config"
17
18
  return configValue;
18
19
  }
19
20
  catch (e) {
20
- throw new CredentialsProviderError(e.message ||
21
- `Cannot load config for profile ${profile} in SDK configuration files with getter: ${configSelector}`);
21
+ throw new CredentialsProviderError(e.message || `Not found in config files w/ profile [${profile}]: ${getSelectorName(configSelector.toString())}`, { logger: init.logger });
22
22
  }
23
23
  };
@@ -0,0 +1,12 @@
1
+ export function getSelectorName(functionString) {
2
+ try {
3
+ const constants = new Set(Array.from(functionString.match(/([A-Z_]){3,}/g) ?? []));
4
+ constants.delete("CONFIG");
5
+ constants.delete("CONFIG_PREFIX_SEPARATOR");
6
+ constants.delete("ENV");
7
+ return [...constants].join(", ");
8
+ }
9
+ catch (e) {
10
+ return functionString;
11
+ }
12
+ }
@@ -1,7 +1,7 @@
1
- import { Provider } from "@smithy/types";
1
+ import { Logger, Provider } from "@smithy/types";
2
2
  export type GetterFromEnv<T> = (env: Record<string, string | undefined>) => T | undefined;
3
3
  /**
4
4
  * Get config value given the environment variable name or getter from
5
5
  * environment variable.
6
6
  */
7
- export declare const fromEnv: <T = string>(envVarSelector: GetterFromEnv<T>) => Provider<T>;
7
+ export declare const fromEnv: <T = string>(envVarSelector: GetterFromEnv<T>, logger?: Logger) => Provider<T>;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Attempts to extract the name of the variable that the functional selector is looking for.
3
+ * Improves readability over the raw Function.toString() value.
4
+ * @internal
5
+ * @param functionString - function's string representation.
6
+ *
7
+ * @returns constant value used within the function.
8
+ */
9
+ export declare function getSelectorName(functionString: string): string;
@@ -1,7 +1,7 @@
1
- import { Provider } from "@smithy/types";
1
+ import { Logger, Provider } from "@smithy/types";
2
2
  export type GetterFromEnv<T> = (env: Record<string, string | undefined>) => T | undefined;
3
3
  /**
4
4
  * Get config value given the environment variable name or getter from
5
5
  * environment variable.
6
6
  */
7
- export declare const fromEnv: <T = string>(envVarSelector: GetterFromEnv<T>) => Provider<T>;
7
+ export declare const fromEnv: <T = string>(envVarSelector: GetterFromEnv<T>, logger?: Logger) => Provider<T>;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Attempts to extract the name of the variable that the functional selector is looking for.
3
+ * Improves readability over the raw Function.toString() value.
4
+ * @internal
5
+ * @param functionString - function's string representation.
6
+ *
7
+ * @returns constant value used within the function.
8
+ */
9
+ export declare function getSelectorName(functionString: string): string;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/node-config-provider",
3
- "version": "3.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "Load config default values from ini config files and environmental variable",
5
5
  "scripts": {
6
6
  "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types && yarn build:types:downlevel'",
@@ -24,8 +24,8 @@
24
24
  "module": "./dist-es/index.js",
25
25
  "types": "./dist-types/index.d.ts",
26
26
  "dependencies": {
27
- "@smithy/property-provider": "^3.0.0",
28
- "@smithy/shared-ini-file-loader": "^3.0.0",
27
+ "@smithy/property-provider": "^3.1.0",
28
+ "@smithy/shared-ini-file-loader": "^3.1.0",
29
29
  "@smithy/types": "^3.0.0",
30
30
  "tslib": "^2.6.2"
31
31
  },
@@ -31,14 +31,28 @@ module.exports = __toCommonJS(src_exports);
31
31
 
32
32
  // src/ProviderError.ts
33
33
  var _ProviderError = class _ProviderError extends Error {
34
- constructor(message, tryNextLink = true) {
34
+ constructor(message, options = true) {
35
+ var _a;
36
+ let logger;
37
+ let tryNextLink = true;
38
+ if (typeof options === "boolean") {
39
+ logger = void 0;
40
+ tryNextLink = options;
41
+ } else if (options != null && typeof options === "object") {
42
+ logger = options.logger;
43
+ tryNextLink = options.tryNextLink ?? true;
44
+ }
35
45
  super(message);
36
- this.tryNextLink = tryNextLink;
37
46
  this.name = "ProviderError";
47
+ this.tryNextLink = tryNextLink;
38
48
  Object.setPrototypeOf(this, _ProviderError.prototype);
49
+ (_a = logger == null ? void 0 : logger.debug) == null ? void 0 : _a.call(logger, `@smithy/property-provider ${tryNextLink ? "->" : "(!)"} ${message}`);
39
50
  }
40
- static from(error, tryNextLink = true) {
41
- return Object.assign(new this(error.message, tryNextLink), error);
51
+ /**
52
+ * @deprecated use new operator.
53
+ */
54
+ static from(error, options = true) {
55
+ return Object.assign(new this(error.message, options), error);
42
56
  }
43
57
  };
44
58
  __name(_ProviderError, "ProviderError");
@@ -46,9 +60,11 @@ var ProviderError = _ProviderError;
46
60
 
47
61
  // src/CredentialsProviderError.ts
48
62
  var _CredentialsProviderError = class _CredentialsProviderError extends ProviderError {
49
- constructor(message, tryNextLink = true) {
50
- super(message, tryNextLink);
51
- this.tryNextLink = tryNextLink;
63
+ /**
64
+ * @override
65
+ */
66
+ constructor(message, options = true) {
67
+ super(message, options);
52
68
  this.name = "CredentialsProviderError";
53
69
  Object.setPrototypeOf(this, _CredentialsProviderError.prototype);
54
70
  }
@@ -58,9 +74,11 @@ var CredentialsProviderError = _CredentialsProviderError;
58
74
 
59
75
  // src/TokenProviderError.ts
60
76
  var _TokenProviderError = class _TokenProviderError extends ProviderError {
61
- constructor(message, tryNextLink = true) {
62
- super(message, tryNextLink);
63
- this.tryNextLink = tryNextLink;
77
+ /**
78
+ * @override
79
+ */
80
+ constructor(message, options = true) {
81
+ super(message, options);
64
82
  this.name = "TokenProviderError";
65
83
  Object.setPrototypeOf(this, _TokenProviderError.prototype);
66
84
  }
@@ -1,8 +1,7 @@
1
1
  import { ProviderError } from "./ProviderError";
2
2
  export class CredentialsProviderError extends ProviderError {
3
- constructor(message, tryNextLink = true) {
4
- super(message, tryNextLink);
5
- this.tryNextLink = tryNextLink;
3
+ constructor(message, options = true) {
4
+ super(message, options);
6
5
  this.name = "CredentialsProviderError";
7
6
  Object.setPrototypeOf(this, CredentialsProviderError.prototype);
8
7
  }
@@ -1,11 +1,22 @@
1
1
  export class ProviderError extends Error {
2
- constructor(message, tryNextLink = true) {
2
+ constructor(message, options = true) {
3
+ let logger;
4
+ let tryNextLink = true;
5
+ if (typeof options === "boolean") {
6
+ logger = undefined;
7
+ tryNextLink = options;
8
+ }
9
+ else if (options != null && typeof options === "object") {
10
+ logger = options.logger;
11
+ tryNextLink = options.tryNextLink ?? true;
12
+ }
3
13
  super(message);
4
- this.tryNextLink = tryNextLink;
5
14
  this.name = "ProviderError";
15
+ this.tryNextLink = tryNextLink;
6
16
  Object.setPrototypeOf(this, ProviderError.prototype);
17
+ logger?.debug?.(`@smithy/property-provider ${tryNextLink ? "->" : "(!)"} ${message}`);
7
18
  }
8
- static from(error, tryNextLink = true) {
9
- return Object.assign(new this(error.message, tryNextLink), error);
19
+ static from(error, options = true) {
20
+ return Object.assign(new this(error.message, options), error);
10
21
  }
11
22
  }
@@ -1,8 +1,7 @@
1
1
  import { ProviderError } from "./ProviderError";
2
2
  export class TokenProviderError extends ProviderError {
3
- constructor(message, tryNextLink = true) {
4
- super(message, tryNextLink);
5
- this.tryNextLink = tryNextLink;
3
+ constructor(message, options = true) {
4
+ super(message, options);
6
5
  this.name = "TokenProviderError";
7
6
  Object.setPrototypeOf(this, TokenProviderError.prototype);
8
7
  }
@@ -1,4 +1,4 @@
1
- import { ProviderError } from "./ProviderError";
1
+ import { ProviderError, ProviderErrorOptionsType } from "./ProviderError";
2
2
  /**
3
3
  * @public
4
4
  *
@@ -11,7 +11,20 @@ import { ProviderError } from "./ProviderError";
11
11
  * ensures the chain will stop if an entirely unexpected error is encountered.
12
12
  */
13
13
  export declare class CredentialsProviderError extends ProviderError {
14
- readonly tryNextLink: boolean;
15
14
  name: string;
16
- constructor(message: string, tryNextLink?: boolean);
15
+ /**
16
+ * @override
17
+ * @deprecated constructor should be given a logger.
18
+ */
19
+ constructor(message: string);
20
+ /**
21
+ * @override
22
+ * @deprecated constructor should be given a logger.
23
+ */
24
+ constructor(message: string, tryNextLink: boolean | undefined);
25
+ /**
26
+ * @override
27
+ * This signature is preferred for logging capability.
28
+ */
29
+ constructor(message: string, options: ProviderErrorOptionsType);
17
30
  }