@cdklabs/cdk-ecs-codedeploy 0.0.437 → 0.0.438

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 (135) hide show
  1. package/.jsii +3 -3
  2. package/lib/api-canary/index.js +1 -1
  3. package/lib/ecs-appspec/index.js +1 -1
  4. package/lib/ecs-deployment/index.js +1 -1
  5. package/lib/ecs-patterns/application-load-balanced-codedeployed-fargate-service.js +1 -1
  6. package/node_modules/@aws-sdk/client-codedeploy/package.json +34 -34
  7. package/node_modules/@aws-sdk/core/dist-cjs/index.js +52 -50
  8. package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +52 -50
  9. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/ProtocolLib.js +11 -10
  10. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/UnionSerde.js +4 -1
  11. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJsonRpcProtocol.js +4 -5
  12. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsRestJsonProtocol.js +2 -1
  13. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeSerializer.js +9 -7
  14. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/parseJsonBody.js +17 -17
  15. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/AwsQueryProtocol.js +3 -8
  16. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/AwsRestXmlProtocol.js +2 -1
  17. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonShapeSerializer.d.ts +2 -2
  18. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/JsonShapeSerializer.d.ts +1 -1
  19. package/node_modules/@aws-sdk/core/package.json +11 -11
  20. package/node_modules/@aws-sdk/credential-provider-env/package.json +5 -5
  21. package/node_modules/@aws-sdk/credential-provider-http/package.json +10 -10
  22. package/node_modules/@aws-sdk/credential-provider-ini/package.json +14 -14
  23. package/node_modules/@aws-sdk/credential-provider-login/package.json +8 -8
  24. package/node_modules/@aws-sdk/credential-provider-node/package.json +12 -12
  25. package/node_modules/@aws-sdk/credential-provider-process/package.json +6 -6
  26. package/node_modules/@aws-sdk/credential-provider-sso/package.json +8 -8
  27. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +7 -7
  28. package/node_modules/@aws-sdk/middleware-host-header/package.json +4 -4
  29. package/node_modules/@aws-sdk/middleware-logger/package.json +3 -3
  30. package/node_modules/@aws-sdk/middleware-recursion-detection/package.json +4 -4
  31. package/node_modules/@aws-sdk/middleware-user-agent/package.json +8 -8
  32. package/node_modules/@aws-sdk/nested-clients/package.json +32 -32
  33. package/node_modules/@aws-sdk/region-config-resolver/package.json +5 -5
  34. package/node_modules/@aws-sdk/token-providers/package.json +7 -7
  35. package/node_modules/@aws-sdk/types/package.json +2 -2
  36. package/node_modules/@aws-sdk/util-endpoints/package.json +5 -5
  37. package/node_modules/@aws-sdk/util-user-agent-browser/package.json +3 -3
  38. package/node_modules/@aws-sdk/util-user-agent-node/package.json +5 -5
  39. package/node_modules/@aws-sdk/xml-builder/package.json +2 -2
  40. package/node_modules/@smithy/config-resolver/package.json +5 -5
  41. package/node_modules/@smithy/core/dist-cjs/index.js +2 -1
  42. package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +32 -14
  43. package/node_modules/@smithy/core/dist-cjs/submodules/endpoints/index.js +2 -2
  44. package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.js +16 -8
  45. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +17 -10
  46. package/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js +6 -1
  47. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js +6 -3
  48. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/DefaultIdentityProviderConfig.js +2 -1
  49. package/node_modules/@smithy/core/dist-es/submodules/cbor/CborCodec.js +23 -11
  50. package/node_modules/@smithy/core/dist-es/submodules/cbor/parseCborBody.js +9 -3
  51. package/node_modules/@smithy/core/dist-es/submodules/endpoints/toEndpointV1.js +2 -2
  52. package/node_modules/@smithy/core/dist-es/submodules/event-streams/EventStreamSerde.js +16 -8
  53. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpBindingProtocol.js +9 -4
  54. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +8 -6
  55. package/node_modules/@smithy/core/dist-es/submodules/schema/TypeRegistry.js +6 -1
  56. package/node_modules/@smithy/core/dist-es/submodules/serde/parse-utils.js +6 -3
  57. package/node_modules/@smithy/core/dist-es/util-identity-and-auth/DefaultIdentityProviderConfig.js +2 -1
  58. package/node_modules/@smithy/core/dist-types/submodules/schema/TypeRegistry.d.ts +1 -1
  59. package/node_modules/@smithy/core/package.json +7 -7
  60. package/node_modules/@smithy/credential-provider-imds/package.json +5 -5
  61. package/node_modules/@smithy/fetch-http-handler/package.json +5 -5
  62. package/node_modules/@smithy/hash-node/package.json +2 -2
  63. package/node_modules/@smithy/invalid-dependency/package.json +2 -2
  64. package/node_modules/@smithy/middleware-content-length/package.json +3 -3
  65. package/node_modules/@smithy/middleware-endpoint/package.json +8 -8
  66. package/node_modules/@smithy/middleware-retry/package.json +9 -9
  67. package/node_modules/@smithy/middleware-serde/package.json +4 -4
  68. package/node_modules/@smithy/middleware-stack/package.json +2 -2
  69. package/node_modules/@smithy/node-config-provider/package.json +4 -4
  70. package/node_modules/@smithy/node-http-handler/dist-cjs/index.js +191 -96
  71. package/node_modules/@smithy/node-http-handler/dist-es/http2/ClientHttp2SessionRef.js +45 -0
  72. package/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-manager.js +71 -35
  73. package/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-pool.js +32 -18
  74. package/node_modules/@smithy/node-http-handler/dist-es/node-http2-handler.js +44 -43
  75. package/node_modules/@smithy/node-http-handler/dist-types/http2/ClientHttp2SessionRef.d.ts +42 -0
  76. package/node_modules/@smithy/node-http-handler/dist-types/node-http2-connection-manager.d.ts +34 -14
  77. package/node_modules/@smithy/node-http-handler/dist-types/node-http2-connection-pool.d.ts +32 -8
  78. package/node_modules/@smithy/node-http-handler/dist-types/node-http2-handler.d.ts +14 -6
  79. package/node_modules/@smithy/node-http-handler/package.json +5 -5
  80. package/node_modules/@smithy/property-provider/package.json +2 -2
  81. package/node_modules/@smithy/protocol-http/package.json +2 -2
  82. package/node_modules/@smithy/querystring-builder/package.json +2 -2
  83. package/node_modules/@smithy/querystring-parser/package.json +2 -2
  84. package/node_modules/@smithy/service-error-classification/dist-cjs/index.js +5 -0
  85. package/node_modules/@smithy/service-error-classification/dist-es/index.js +4 -0
  86. package/node_modules/@smithy/service-error-classification/dist-types/index.d.ts +6 -0
  87. package/node_modules/@smithy/service-error-classification/package.json +2 -2
  88. package/node_modules/@smithy/shared-ini-file-loader/package.json +2 -2
  89. package/node_modules/@smithy/signature-v4/dist-cjs/index.js +11 -5
  90. package/node_modules/@smithy/signature-v4/dist-es/SignatureV4.js +11 -5
  91. package/node_modules/@smithy/signature-v4/dist-types/SignatureV4.d.ts +3 -3
  92. package/node_modules/@smithy/signature-v4/package.json +4 -4
  93. package/node_modules/@smithy/smithy-client/dist-cjs/index.js +8 -1
  94. package/node_modules/@smithy/smithy-client/dist-es/command.js +8 -1
  95. package/node_modules/@smithy/smithy-client/package.json +7 -7
  96. package/node_modules/@smithy/types/dist-types/connection/config.d.ts +5 -0
  97. package/node_modules/@smithy/types/dist-types/signature.d.ts +20 -3
  98. package/node_modules/@smithy/types/package.json +1 -1
  99. package/node_modules/@smithy/url-parser/package.json +3 -3
  100. package/node_modules/@smithy/util-defaults-mode-browser/package.json +4 -4
  101. package/node_modules/@smithy/util-defaults-mode-node/package.json +7 -7
  102. package/node_modules/@smithy/util-endpoints/dist-cjs/index.js +79 -71
  103. package/node_modules/@smithy/util-endpoints/dist-es/decideEndpoint.js +4 -3
  104. package/node_modules/@smithy/util-endpoints/dist-es/lib/getAttr.js +2 -1
  105. package/node_modules/@smithy/util-endpoints/dist-es/resolveEndpoint.js +8 -13
  106. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateCondition.js +9 -7
  107. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateConditions.js +12 -8
  108. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateEndpointRule.js +14 -13
  109. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateErrorRule.js +7 -4
  110. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateExpression.js +10 -8
  111. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateRules.js +4 -4
  112. package/node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointHeaders.js +5 -5
  113. package/node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointProperties.js +4 -4
  114. package/node_modules/@smithy/util-endpoints/dist-types/bdd/BinaryDecisionDiagram.d.ts +2 -2
  115. package/node_modules/@smithy/util-endpoints/dist-types/types/shared.d.ts +3 -3
  116. package/node_modules/@smithy/util-endpoints/dist-types/utils/endpointFunctions.d.ts +2 -15
  117. package/node_modules/@smithy/util-endpoints/dist-types/utils/evaluateCondition.d.ts +6 -3
  118. package/node_modules/@smithy/util-endpoints/dist-types/utils/evaluateConditions.d.ts +3 -3
  119. package/node_modules/@smithy/util-endpoints/dist-types/utils/getEndpointHeaders.d.ts +1 -1
  120. package/node_modules/@smithy/util-endpoints/dist-types/utils/getEndpointProperties.d.ts +2 -2
  121. package/node_modules/@smithy/util-endpoints/dist-types/utils/getReferenceValue.d.ts +2 -2
  122. package/node_modules/@smithy/util-endpoints/package.json +3 -3
  123. package/node_modules/@smithy/util-middleware/package.json +2 -2
  124. package/node_modules/@smithy/util-retry/package.json +3 -3
  125. package/node_modules/@smithy/util-stream/package.json +4 -4
  126. package/node_modules/@smithy/util-waiter/package.json +3 -3
  127. package/node_modules/fast-xml-builder/package.json +1 -1
  128. package/node_modules/fast-xml-builder/src/fxb.js +6 -2
  129. package/node_modules/fast-xml-builder/src/orderedJs2Xml.js +16 -2
  130. package/package.json +4 -4
  131. /package/node_modules/{@aws-sdk/xml-builder/node_modules/strnum → strnum}/CHANGELOG.md +0 -0
  132. /package/node_modules/{@aws-sdk/xml-builder/node_modules/strnum → strnum}/LICENSE +0 -0
  133. /package/node_modules/{@aws-sdk/xml-builder/node_modules/strnum → strnum}/README.md +0 -0
  134. /package/node_modules/{@aws-sdk/xml-builder/node_modules/strnum → strnum}/package.json +0 -0
  135. /package/node_modules/{@aws-sdk/xml-builder/node_modules/strnum → strnum}/strnum.js +0 -0
@@ -1,5 +1,6 @@
1
1
  import { EndpointError } from "./types";
2
2
  import { evaluateCondition } from "./utils/evaluateCondition";
3
+ import { evaluateExpression } from "./utils/evaluateExpression";
3
4
  import { getEndpointHeaders } from "./utils/getEndpointHeaders";
4
5
  import { getEndpointProperties } from "./utils/getEndpointProperties";
5
6
  import { getEndpointUrl } from "./utils/getEndpointUrl";
@@ -27,14 +28,14 @@ export const decideEndpoint = (bdd, options) => {
27
28
  if (ref >= RESULT) {
28
29
  const result = results[ref - RESULT];
29
30
  if (result[0] === -1) {
30
- const [, errorMessage] = result;
31
- throw new EndpointError(errorMessage);
31
+ const [, errorExpression] = result;
32
+ throw new EndpointError(evaluateExpression(errorExpression, "Error", closure));
32
33
  }
33
34
  const [url, properties, headers] = result;
34
35
  return {
35
36
  url: getEndpointUrl(url, closure),
36
37
  properties: getEndpointProperties(properties, closure),
37
- headers: getEndpointHeaders(headers, closure),
38
+ headers: getEndpointHeaders(headers ?? {}, closure),
38
39
  };
39
40
  }
40
41
  throw new EndpointError(`No matching endpoint.`);
@@ -5,7 +5,8 @@ export const getAttr = (value, path) => getAttrPathList(path).reduce((acc, index
5
5
  throw new EndpointError(`Index '${index}' in '${path}' not found in '${JSON.stringify(value)}'`);
6
6
  }
7
7
  else if (Array.isArray(acc)) {
8
- return acc[parseInt(index)];
8
+ const i = parseInt(index);
9
+ return acc[i < 0 ? acc.length + i : i];
9
10
  }
10
11
  return acc[index];
11
12
  }, value);
@@ -5,20 +5,15 @@ export const resolveEndpoint = (ruleSetObject, options) => {
5
5
  const { endpointParams, logger } = options;
6
6
  const { parameters, rules } = ruleSetObject;
7
7
  options.logger?.debug?.(`${debugId} Initial EndpointParams: ${toDebugString(endpointParams)}`);
8
- const paramsWithDefault = Object.entries(parameters)
9
- .filter(([, v]) => v.default != null)
10
- .map(([k, v]) => [k, v.default]);
11
- if (paramsWithDefault.length > 0) {
12
- for (const [paramKey, paramDefaultValue] of paramsWithDefault) {
13
- endpointParams[paramKey] = endpointParams[paramKey] ?? paramDefaultValue;
8
+ for (const paramKey in parameters) {
9
+ const parameter = parameters[paramKey];
10
+ const endpointParam = endpointParams[paramKey];
11
+ if (endpointParam == null && parameter.default != null) {
12
+ endpointParams[paramKey] = parameter.default;
13
+ continue;
14
14
  }
15
- }
16
- const requiredParams = Object.entries(parameters)
17
- .filter(([, v]) => v.required)
18
- .map(([k]) => k);
19
- for (const requiredParam of requiredParams) {
20
- if (endpointParams[requiredParam] == null) {
21
- throw new EndpointError(`Missing required parameter: '${requiredParam}'`);
15
+ if (parameter.required && endpointParam == null) {
16
+ throw new EndpointError(`Missing required parameter: '${paramKey}'`);
22
17
  }
23
18
  }
24
19
  const endpoint = evaluateRules(rules, { endpointParams, logger, referenceRecord: {} });
@@ -1,14 +1,16 @@
1
1
  import { debugId, toDebugString } from "../debug";
2
2
  import { EndpointError } from "../types";
3
3
  import { callFunction } from "./callFunction";
4
- export const evaluateCondition = ({ assign, ...fnArgs }, options) => {
4
+ export const evaluateCondition = (condition, options) => {
5
+ const { assign } = condition;
5
6
  if (assign && assign in options.referenceRecord) {
6
7
  throw new EndpointError(`'${assign}' is already defined in Reference Record.`);
7
8
  }
8
- const value = callFunction(fnArgs, options);
9
- options.logger?.debug?.(`${debugId} evaluateCondition: ${toDebugString(fnArgs)} = ${toDebugString(value)}`);
10
- return {
11
- result: value === "" ? true : !!value,
12
- ...(assign != null && { toAssign: { name: assign, value } }),
13
- };
9
+ const value = callFunction(condition, options);
10
+ options.logger?.debug?.(`${debugId} evaluateCondition: ${toDebugString(condition)} = ${toDebugString(value)}`);
11
+ const result = value === "" ? true : !!value;
12
+ if (assign != null) {
13
+ return { result, toAssign: { name: assign, value } };
14
+ }
15
+ return { result };
14
16
  };
@@ -2,21 +2,25 @@ import { debugId, toDebugString } from "../debug";
2
2
  import { evaluateCondition } from "./evaluateCondition";
3
3
  export const evaluateConditions = (conditions = [], options) => {
4
4
  const conditionsReferenceRecord = {};
5
+ const conditionOptions = {
6
+ ...options,
7
+ referenceRecord: { ...options.referenceRecord },
8
+ };
9
+ let didAssign = false;
5
10
  for (const condition of conditions) {
6
- const { result, toAssign } = evaluateCondition(condition, {
7
- ...options,
8
- referenceRecord: {
9
- ...options.referenceRecord,
10
- ...conditionsReferenceRecord,
11
- },
12
- });
11
+ const { result, toAssign } = evaluateCondition(condition, conditionOptions);
13
12
  if (!result) {
14
13
  return { result };
15
14
  }
16
15
  if (toAssign) {
16
+ didAssign = true;
17
17
  conditionsReferenceRecord[toAssign.name] = toAssign.value;
18
+ conditionOptions.referenceRecord[toAssign.name] = toAssign.value;
18
19
  options.logger?.debug?.(`${debugId} assign: ${toAssign.name} := ${toDebugString(toAssign.value)}`);
19
20
  }
20
21
  }
21
- return { result: true, referenceRecord: conditionsReferenceRecord };
22
+ if (didAssign) {
23
+ return { result: true, referenceRecord: conditionsReferenceRecord };
24
+ }
25
+ return { result: true };
22
26
  };
@@ -9,19 +9,20 @@ export const evaluateEndpointRule = (endpointRule, options) => {
9
9
  if (!result) {
10
10
  return;
11
11
  }
12
- const endpointRuleOptions = {
13
- ...options,
14
- referenceRecord: { ...options.referenceRecord, ...referenceRecord },
15
- };
12
+ const endpointRuleOptions = referenceRecord
13
+ ? {
14
+ ...options,
15
+ referenceRecord: { ...options.referenceRecord, ...referenceRecord },
16
+ }
17
+ : options;
16
18
  const { url, properties, headers } = endpoint;
17
19
  options.logger?.debug?.(`${debugId} Resolving endpoint from template: ${toDebugString(endpoint)}`);
18
- return {
19
- ...(headers != undefined && {
20
- headers: getEndpointHeaders(headers, endpointRuleOptions),
21
- }),
22
- ...(properties != undefined && {
23
- properties: getEndpointProperties(properties, endpointRuleOptions),
24
- }),
25
- url: getEndpointUrl(url, endpointRuleOptions),
26
- };
20
+ const endpointToReturn = { url: getEndpointUrl(url, endpointRuleOptions) };
21
+ if (headers != null) {
22
+ endpointToReturn.headers = getEndpointHeaders(headers, endpointRuleOptions);
23
+ }
24
+ if (properties != null) {
25
+ endpointToReturn.properties = getEndpointProperties(properties, endpointRuleOptions);
26
+ }
27
+ return endpointToReturn;
27
28
  };
@@ -7,8 +7,11 @@ export const evaluateErrorRule = (errorRule, options) => {
7
7
  if (!result) {
8
8
  return;
9
9
  }
10
- throw new EndpointError(evaluateExpression(error, "Error", {
11
- ...options,
12
- referenceRecord: { ...options.referenceRecord, ...referenceRecord },
13
- }));
10
+ const errorRuleOptions = referenceRecord
11
+ ? {
12
+ ...options,
13
+ referenceRecord: { ...options.referenceRecord, ...referenceRecord },
14
+ }
15
+ : options;
16
+ throw new EndpointError(evaluateExpression(error, "Error", errorRuleOptions));
14
17
  };
@@ -26,17 +26,19 @@ export const callFunction = ({ fn, argv }, options) => {
26
26
  evaluatedArgs[i] = group.evaluateExpression(arg, "arg", options);
27
27
  }
28
28
  }
29
- if (fn.includes(".")) {
30
- const fnSegments = fn.split(".");
31
- if (fnSegments[0] in customEndpointFunctions && fnSegments[1] != null) {
32
- return customEndpointFunctions[fnSegments[0]][fnSegments[1]](...evaluatedArgs);
29
+ const namespaceSeparatorIndex = fn.indexOf(".");
30
+ if (namespaceSeparatorIndex !== -1) {
31
+ const namespaceFunctions = customEndpointFunctions[fn.slice(0, namespaceSeparatorIndex)];
32
+ const customFunction = namespaceFunctions?.[fn.slice(namespaceSeparatorIndex + 1)];
33
+ if (typeof customFunction === "function") {
34
+ return customFunction(...evaluatedArgs);
33
35
  }
34
36
  }
35
- if (typeof endpointFunctions[fn] !== "function") {
36
- throw new Error(`function ${fn} not loaded in endpointFunctions.`);
37
- }
38
37
  const callable = endpointFunctions[fn];
39
- return callable(...evaluatedArgs);
38
+ if (typeof callable === "function") {
39
+ return callable(...evaluatedArgs);
40
+ }
41
+ throw new Error(`function ${fn} not loaded in endpointFunctions.`);
40
42
  };
41
43
  export const group = {
42
44
  evaluateExpression,
@@ -31,10 +31,10 @@ export const evaluateTreeRule = (treeRule, options) => {
31
31
  if (!result) {
32
32
  return;
33
33
  }
34
- return group.evaluateRules(rules, {
35
- ...options,
36
- referenceRecord: { ...options.referenceRecord, ...referenceRecord },
37
- });
34
+ const treeRuleOptions = referenceRecord
35
+ ? { ...options, referenceRecord: { ...options.referenceRecord, ...referenceRecord } }
36
+ : options;
37
+ return group.evaluateRules(rules, treeRuleOptions);
38
38
  };
39
39
  export const group = {
40
40
  evaluateRules,
@@ -1,12 +1,12 @@
1
1
  import { EndpointError } from "../types";
2
2
  import { evaluateExpression } from "./evaluateExpression";
3
- export const getEndpointHeaders = (headers, options) => Object.entries(headers).reduce((acc, [headerKey, headerVal]) => ({
4
- ...acc,
5
- [headerKey]: headerVal.map((headerValEntry) => {
3
+ export const getEndpointHeaders = (headers, options) => Object.entries(headers ?? {}).reduce((acc, [headerKey, headerVal]) => {
4
+ acc[headerKey] = headerVal.map((headerValEntry) => {
6
5
  const processedExpr = evaluateExpression(headerValEntry, "Header value entry", options);
7
6
  if (typeof processedExpr !== "string") {
8
7
  throw new EndpointError(`Header '${headerKey}' value '${processedExpr}' is not a string`);
9
8
  }
10
9
  return processedExpr;
11
- }),
12
- }), {});
10
+ });
11
+ return acc;
12
+ }, {});
@@ -1,9 +1,9 @@
1
1
  import { EndpointError } from "../types";
2
2
  import { evaluateTemplate } from "./evaluateTemplate";
3
- export const getEndpointProperties = (properties, options) => Object.entries(properties).reduce((acc, [propertyKey, propertyVal]) => ({
4
- ...acc,
5
- [propertyKey]: group.getEndpointProperty(propertyVal, options),
6
- }), {});
3
+ export const getEndpointProperties = (properties, options) => Object.entries(properties).reduce((acc, [propertyKey, propertyVal]) => {
4
+ acc[propertyKey] = group.getEndpointProperty(propertyVal, options);
5
+ return acc;
6
+ }, {});
7
7
  export const getEndpointProperty = (property, options) => {
8
8
  if (Array.isArray(property)) {
9
9
  return property.map((propertyEntry) => getEndpointProperty(propertyEntry, options));
@@ -1,5 +1,5 @@
1
1
  import type { EndpointObjectHeaders, ParameterObject } from "@smithy/types";
2
- import type { FunctionArgv } from "../types/shared";
2
+ import type { Expression, FunctionArgv } from "../types/shared";
3
3
  /**
4
4
  * @internal
5
5
  */
@@ -7,7 +7,7 @@ type BddCondition = [string, FunctionArgv] | [string, FunctionArgv, string];
7
7
  /**
8
8
  * @internal
9
9
  */
10
- type BddResult = [-1] | [-1, string] | [string, Record<string, ParameterObject>, EndpointObjectHeaders];
10
+ type BddResult = [-1] | [-1, Expression] | [string, Record<string, ParameterObject>, EndpointObjectHeaders] | [string, Record<string, ParameterObject>];
11
11
  /**
12
12
  * @internal
13
13
  */
@@ -1,4 +1,4 @@
1
- import type { EndpointARN, EndpointPartition, Logger } from "@smithy/types";
1
+ import type { EndpointARN, EndpointPartition, EndpointURL, Logger } from "@smithy/types";
2
2
  export type ReferenceObject = {
3
3
  ref: string;
4
4
  };
@@ -7,9 +7,9 @@ export type FunctionObject = {
7
7
  argv: FunctionArgv;
8
8
  };
9
9
  export type FunctionArgv = Array<Expression | boolean | number>;
10
- export type FunctionReturn = string | boolean | number | EndpointARN | EndpointPartition | {
10
+ export type FunctionReturn = string | boolean | number | EndpointARN | EndpointPartition | EndpointURL | {
11
11
  [key: string]: FunctionReturn;
12
- } | null;
12
+ } | Array<FunctionReturn> | null;
13
13
  export type ConditionObject = FunctionObject & {
14
14
  assign?: string;
15
15
  };
@@ -1,15 +1,2 @@
1
- import { coalesce, ite, split } from "../lib";
2
- export declare const endpointFunctions: {
3
- booleanEquals: (value1: boolean, value2: boolean) => boolean;
4
- coalesce: typeof coalesce;
5
- getAttr: (value: import("../lib").GetAttrValue, path: string) => import("../lib").GetAttrValue;
6
- isSet: (value: unknown) => value is {};
7
- isValidHostLabel: (value: string, allowSubDomains?: boolean) => boolean;
8
- ite: typeof ite;
9
- not: (value: boolean) => boolean;
10
- parseURL: (value: string | URL | import("@smithy/types").Endpoint) => import("@smithy/types").EndpointURL | null;
11
- split: typeof split;
12
- stringEquals: (value1: string, value2: string) => boolean;
13
- substring: (input: string, start: number, stop: number, reverse: boolean) => string | null;
14
- uriEncode: (value: string) => string;
15
- };
1
+ import type { EndpointFunctions } from "../types";
2
+ export declare const endpointFunctions: EndpointFunctions;
@@ -1,8 +1,11 @@
1
1
  import type { ConditionObject, EvaluateOptions } from "../types";
2
- export declare const evaluateCondition: ({ assign, ...fnArgs }: ConditionObject, options: EvaluateOptions) => {
3
- toAssign?: {
2
+ export declare const evaluateCondition: (condition: ConditionObject, options: EvaluateOptions) => {
3
+ result: boolean;
4
+ toAssign: {
4
5
  name: string;
5
6
  value: import("../types").FunctionReturn;
6
- } | undefined;
7
+ };
8
+ } | {
7
9
  result: boolean;
10
+ toAssign?: undefined;
8
11
  };
@@ -1,8 +1,8 @@
1
1
  import type { ConditionObject, EvaluateOptions, FunctionReturn } from "../types";
2
2
  export declare const evaluateConditions: (conditions: ConditionObject[] | undefined, options: EvaluateOptions) => {
3
- result: false;
4
- referenceRecord?: undefined;
5
- } | {
6
3
  result: boolean;
7
4
  referenceRecord: Record<string, FunctionReturn>;
5
+ } | {
6
+ result: boolean;
7
+ referenceRecord?: undefined;
8
8
  };
@@ -1,2 +1,2 @@
1
1
  import type { EndpointObjectHeaders, EvaluateOptions } from "../types";
2
- export declare const getEndpointHeaders: (headers: EndpointObjectHeaders, options: EvaluateOptions) => {};
2
+ export declare const getEndpointHeaders: (headers: EndpointObjectHeaders, options: EvaluateOptions) => Record<string, string[]>;
@@ -1,8 +1,8 @@
1
1
  import type { EndpointObjectProperty } from "@smithy/types";
2
2
  import type { EndpointObjectProperties, EvaluateOptions } from "../types";
3
- export declare const getEndpointProperties: (properties: EndpointObjectProperties, options: EvaluateOptions) => {};
3
+ export declare const getEndpointProperties: (properties: EndpointObjectProperties, options: EvaluateOptions) => Record<string, EndpointObjectProperty>;
4
4
  export declare const getEndpointProperty: (property: EndpointObjectProperty, options: EvaluateOptions) => EndpointObjectProperty;
5
5
  export declare const group: {
6
6
  getEndpointProperty: (property: EndpointObjectProperty, options: EvaluateOptions) => EndpointObjectProperty;
7
- getEndpointProperties: (properties: EndpointObjectProperties, options: EvaluateOptions) => {};
7
+ getEndpointProperties: (properties: EndpointObjectProperties, options: EvaluateOptions) => Record<string, EndpointObjectProperty>;
8
8
  };
@@ -1,4 +1,4 @@
1
1
  import type { EvaluateOptions, ReferenceObject } from "../types";
2
- export declare const getReferenceValue: ({ ref }: ReferenceObject, options: EvaluateOptions) => string | number | boolean | import("@smithy/types").EndpointPartition | import("@smithy/types").EndpointARN | {
2
+ export declare const getReferenceValue: ({ ref }: ReferenceObject, options: EvaluateOptions) => string | number | boolean | import("@smithy/types").EndpointPartition | import("@smithy/types").EndpointARN | import("@smithy/types").EndpointURL | {
3
3
  [key: string]: import("../types").FunctionReturn;
4
- };
4
+ } | import("../types").FunctionReturn[];
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/util-endpoints",
3
- "version": "3.4.0",
3
+ "version": "3.4.2",
4
4
  "description": "Utilities to help with endpoint resolution.",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -28,8 +28,8 @@
28
28
  "license": "Apache-2.0",
29
29
  "sideEffects": false,
30
30
  "dependencies": {
31
- "@smithy/node-config-provider": "^4.3.13",
32
- "@smithy/types": "^4.14.0",
31
+ "@smithy/node-config-provider": "^4.3.14",
32
+ "@smithy/types": "^4.14.1",
33
33
  "tslib": "^2.6.2"
34
34
  },
35
35
  "devDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/util-middleware",
3
- "version": "4.2.13",
3
+ "version": "4.2.14",
4
4
  "description": "Shared utilities for to be used in middleware packages.",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -27,7 +27,7 @@
27
27
  "license": "Apache-2.0",
28
28
  "sideEffects": false,
29
29
  "dependencies": {
30
- "@smithy/types": "^4.14.0",
30
+ "@smithy/types": "^4.14.1",
31
31
  "tslib": "^2.6.2"
32
32
  },
33
33
  "devDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/util-retry",
3
- "version": "4.3.1",
3
+ "version": "4.3.3",
4
4
  "description": "Shared retry utilities to be used in middleware packages.",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -30,8 +30,8 @@
30
30
  "license": "Apache-2.0",
31
31
  "sideEffects": false,
32
32
  "dependencies": {
33
- "@smithy/service-error-classification": "^4.2.13",
34
- "@smithy/types": "^4.14.0",
33
+ "@smithy/service-error-classification": "^4.3.0",
34
+ "@smithy/types": "^4.14.1",
35
35
  "tslib": "^2.6.2"
36
36
  },
37
37
  "devDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/util-stream",
3
- "version": "4.5.22",
3
+ "version": "4.5.24",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:types' 'yarn:build:es:cjs'",
6
6
  "build:es:cjs": "yarn g:tsc -p tsconfig.es.json && node ../../scripts/inline util-stream",
@@ -28,9 +28,9 @@
28
28
  "license": "Apache-2.0",
29
29
  "sideEffects": false,
30
30
  "dependencies": {
31
- "@smithy/fetch-http-handler": "^5.3.16",
32
- "@smithy/node-http-handler": "^4.5.2",
33
- "@smithy/types": "^4.14.0",
31
+ "@smithy/fetch-http-handler": "^5.3.17",
32
+ "@smithy/node-http-handler": "^4.6.0",
33
+ "@smithy/types": "^4.14.1",
34
34
  "@smithy/util-base64": "^4.3.2",
35
35
  "@smithy/util-buffer-from": "^4.2.2",
36
36
  "@smithy/util-hex-encoding": "^4.2.2",
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@smithy/util-waiter",
3
- "version": "4.2.15",
3
+ "version": "4.2.16",
4
4
  "description": "Shared utilities for client waiters for the AWS SDK",
5
5
  "dependencies": {
6
- "@smithy/types": "^4.14.0",
6
+ "@smithy/types": "^4.14.1",
7
7
  "tslib": "^2.6.2"
8
8
  },
9
9
  "scripts": {
@@ -47,7 +47,7 @@
47
47
  "directory": "packages/util-waiter"
48
48
  },
49
49
  "devDependencies": {
50
- "@smithy/abort-controller": "^4.2.13",
50
+ "@smithy/abort-controller": "^4.2.14",
51
51
  "concurrently": "7.0.0",
52
52
  "downlevel-dts": "0.10.1",
53
53
  "premove": "4.0.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fast-xml-builder",
3
- "version": "1.1.4",
3
+ "version": "1.1.5",
4
4
  "description": "Build XML from JSON without C/C++ based libraries",
5
5
  "main": "./lib/fxb.cjs",
6
6
  "type": "module",
@@ -486,9 +486,13 @@ function buildEmptyObjNode(val, key, attrStr, level) {
486
486
 
487
487
  Builder.prototype.buildTextValNode = function (val, key, attrStr, level, matcher) {
488
488
  if (this.options.cdataPropName !== false && key === this.options.cdataPropName) {
489
- return this.indentate(level) + `<![CDATA[${val}]]>` + this.newLine;
489
+ const safeVal = String(val).replace(/\]\]>/g, ']]]]><![CDATA[>');
490
+ return this.indentate(level) + `<![CDATA[${safeVal}]]>` + this.newLine;
490
491
  } else if (this.options.commentPropName !== false && key === this.options.commentPropName) {
491
- return this.indentate(level) + `<!--${val}-->` + this.newLine;
492
+ const safeVal = String(val)
493
+ .replace(/--/g, '- -') // -- is illegal anywhere in comment content
494
+ .replace(/-$/, '- '); // trailing - would form -- with the closing -->
495
+ return this.indentate(level) + `<!--${safeVal}-->` + this.newLine;
492
496
  } else if (key[0] === "?") {//PI tag
493
497
  return this.indentate(level) + '<' + key + attrStr + '?' + this.tagEndChar;
494
498
  } else {
@@ -82,12 +82,18 @@ function arrToStr(arr, options, indentation, matcher, stopNodeExpressions) {
82
82
  if (isPreviousElementTag) {
83
83
  xmlStr += indentation;
84
84
  }
85
- xmlStr += `<![CDATA[${tagObj[tagName][0][options.textNodeName]}]]>`;
85
+ const val = tagObj[tagName][0][options.textNodeName];
86
+ const safeVal = String(val).replace(/\]\]>/g, ']]]]><![CDATA[>');
87
+ xmlStr += `<![CDATA[${safeVal}]]>`;
86
88
  isPreviousElementTag = false;
87
89
  matcher.pop();
88
90
  continue;
89
91
  } else if (tagName === options.commentPropName) {
90
- xmlStr += indentation + `<!--${tagObj[tagName][0][options.textNodeName]}-->`;
92
+ const val = tagObj[tagName][0][options.textNodeName]
93
+ const safeVal = String(val)
94
+ .replace(/--/g, '- -') // -- is illegal anywhere in comment content
95
+ .replace(/-$/, '- '); // trailing - would form -- with the closing -->
96
+ xmlStr += indentation + `<!--${safeVal}-->`;
91
97
  isPreviousElementTag = true;
92
98
  matcher.pop();
93
99
  continue;
@@ -289,4 +295,12 @@ function replaceEntitiesValue(textValue, options) {
289
295
  }
290
296
  }
291
297
  return textValue;
298
+ }
299
+
300
+ function cdataVal(val) {
301
+
302
+ }
303
+
304
+ function commentVal(val) {
305
+
292
306
  }
package/package.json CHANGED
@@ -95,9 +95,9 @@
95
95
  "jest": "^27",
96
96
  "jest-junit": "^16",
97
97
  "jsii": "~5.7",
98
- "jsii-diff": "^1.127.0",
98
+ "jsii-diff": "^1.128.0",
99
99
  "jsii-docgen": "^10.5.0",
100
- "jsii-pacmak": "^1.127.0",
100
+ "jsii-pacmak": "^1.128.0",
101
101
  "jsii-rosetta": "^5.9.39",
102
102
  "lambda-tester": "^4.0.1",
103
103
  "projen": "0.98.34",
@@ -110,7 +110,7 @@
110
110
  "constructs": "^10.0.5"
111
111
  },
112
112
  "dependencies": {
113
- "@aws-sdk/client-codedeploy": "^3.1029.0",
113
+ "@aws-sdk/client-codedeploy": "^3.1032.0",
114
114
  "jmespath": "^0.16.0"
115
115
  },
116
116
  "bundledDependencies": [
@@ -128,7 +128,7 @@
128
128
  "publishConfig": {
129
129
  "access": "public"
130
130
  },
131
- "version": "0.0.437",
131
+ "version": "0.0.438",
132
132
  "jest": {
133
133
  "coverageProvider": "v8",
134
134
  "testMatch": [