@cdklabs/cdk-ecs-codedeploy 0.0.433 → 0.0.434
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.
- package/.jsii +3 -3
- package/.jsii.tabl.json +1 -1
- package/lib/api-canary/index.js +1 -1
- package/lib/ecs-appspec/index.js +1 -1
- package/lib/ecs-deployment/index.js +1 -1
- package/lib/ecs-patterns/application-load-balanced-codedeployed-fargate-service.js +1 -1
- package/node_modules/@aws-sdk/client-codedeploy/package.json +15 -15
- package/node_modules/@aws-sdk/core/package.json +4 -4
- package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
- package/node_modules/@aws-sdk/credential-provider-http/package.json +5 -5
- package/node_modules/@aws-sdk/credential-provider-ini/package.json +9 -9
- package/node_modules/@aws-sdk/credential-provider-login/package.json +3 -3
- package/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
- package/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
- package/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
- package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
- package/node_modules/@aws-sdk/middleware-user-agent/package.json +3 -3
- package/node_modules/@aws-sdk/nested-clients/package.json +14 -14
- package/node_modules/@aws-sdk/region-config-resolver/package.json +2 -2
- package/node_modules/@aws-sdk/token-providers/package.json +3 -3
- package/node_modules/@aws-sdk/util-user-agent-node/package.json +2 -2
- package/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js +21 -11
- package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.js +5 -1
- package/node_modules/@aws-sdk/xml-builder/dist-es/escape-attribute.js +8 -1
- package/node_modules/@aws-sdk/xml-builder/dist-es/escape-element.js +13 -10
- package/node_modules/@aws-sdk/xml-builder/dist-es/xml-parser.js +5 -1
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/CHANGELOG.md +40 -4
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/README.md +8 -7
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxbuilder.min.js +1 -1
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxbuilder.min.js.map +1 -1
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.cjs +1 -1
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.d.cts +82 -20
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.min.js +1 -1
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.min.js.map +1 -1
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxparser.min.js +1 -1
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxparser.min.js.map +1 -1
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxvalidator.min.js.map +1 -1
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/pem.d.cts +148 -0
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/package.json +4 -3
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/fxp.d.ts +75 -19
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/pem.d.ts +135 -0
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/util.js +18 -0
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js +37 -18
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js +76 -5
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js +298 -116
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js +2 -2
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/node2json.js +65 -15
- package/node_modules/{strnum → @aws-sdk/xml-builder/node_modules/strnum}/CHANGELOG.md +9 -2
- package/node_modules/{strnum → @aws-sdk/xml-builder/node_modules/strnum}/package.json +1 -1
- package/node_modules/{strnum → @aws-sdk/xml-builder/node_modules/strnum}/strnum.js +12 -6
- package/node_modules/{strnum → @aws-sdk/xml-builder/node_modules/strnum}/tests/strnum_test.js +3 -0
- package/node_modules/@aws-sdk/xml-builder/node_modules/strnum/tests/temp.js +8 -0
- package/node_modules/@aws-sdk/xml-builder/package.json +2 -2
- package/node_modules/@smithy/config-resolver/dist-cjs/index.js +12 -0
- package/node_modules/@smithy/config-resolver/dist-es/endpointsConfig/NodeUseDualstackEndpointConfigOptions.js +5 -0
- package/node_modules/@smithy/config-resolver/dist-es/endpointsConfig/NodeUseFipsEndpointConfigOptions.js +5 -0
- package/node_modules/@smithy/config-resolver/dist-types/endpointsConfig/NodeUseDualstackEndpointConfigOptions.d.ts +6 -0
- package/node_modules/@smithy/config-resolver/dist-types/endpointsConfig/NodeUseFipsEndpointConfigOptions.d.ts +6 -0
- package/node_modules/@smithy/config-resolver/dist-types/ts3.4/endpointsConfig/NodeUseDualstackEndpointConfigOptions.d.ts +6 -0
- package/node_modules/@smithy/config-resolver/dist-types/ts3.4/endpointsConfig/NodeUseFipsEndpointConfigOptions.d.ts +6 -0
- package/node_modules/@smithy/config-resolver/package.json +1 -1
- package/node_modules/@smithy/middleware-endpoint/dist-types/resolveEndpointConfig.d.ts +2 -2
- package/node_modules/@smithy/middleware-endpoint/dist-types/ts3.4/resolveEndpointConfig.d.ts +2 -2
- package/node_modules/@smithy/middleware-endpoint/package.json +1 -1
- package/node_modules/@smithy/middleware-retry/package.json +2 -2
- package/node_modules/@smithy/smithy-client/package.json +2 -2
- package/node_modules/@smithy/util-defaults-mode-browser/package.json +2 -2
- package/node_modules/@smithy/util-defaults-mode-node/package.json +3 -3
- package/node_modules/path-expression-matcher/README.md +98 -13
- package/node_modules/path-expression-matcher/lib/pem.cjs +1 -1
- package/node_modules/path-expression-matcher/lib/pem.d.cts +188 -0
- package/node_modules/path-expression-matcher/lib/pem.min.js +1 -1
- package/node_modules/path-expression-matcher/lib/pem.min.js.map +1 -1
- package/node_modules/path-expression-matcher/package.json +2 -2
- package/node_modules/path-expression-matcher/src/Matcher.js +84 -0
- package/node_modules/path-expression-matcher/src/index.d.ts +152 -0
- package/package.json +4 -4
- /package/node_modules/{strnum → @aws-sdk/xml-builder/node_modules/strnum}/.github/SECURITY.md +0 -0
- /package/node_modules/{strnum → @aws-sdk/xml-builder/node_modules/strnum}/.vscode/launch.json +0 -0
- /package/node_modules/{strnum → @aws-sdk/xml-builder/node_modules/strnum}/LICENSE +0 -0
- /package/node_modules/{strnum → @aws-sdk/xml-builder/node_modules/strnum}/README.md +0 -0
- /package/node_modules/{strnum → @aws-sdk/xml-builder/node_modules/strnum}/algo.stflow +0 -0
- /package/node_modules/{strnum → @aws-sdk/xml-builder/node_modules/strnum}/tests/infinity_test.js +0 -0
package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js
CHANGED
|
@@ -35,7 +35,7 @@ export default class XMLParser {
|
|
|
35
35
|
orderedObjParser.addExternalEntities(this.externalEntities);
|
|
36
36
|
const orderedResult = orderedObjParser.parseXml(xmlData);
|
|
37
37
|
if (this.options.preserveOrder || orderedResult === undefined) return orderedResult;
|
|
38
|
-
else return prettify(orderedResult, this.options);
|
|
38
|
+
else return prettify(orderedResult, this.options, orderedObjParser.matcher, orderedObjParser.readonlyMatcher);
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
/**
|
|
@@ -68,4 +68,4 @@ export default class XMLParser {
|
|
|
68
68
|
static getMetaDataSymbol() {
|
|
69
69
|
return XmlNode.getMetaDataSymbol();
|
|
70
70
|
}
|
|
71
|
-
}
|
|
71
|
+
}
|
package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/node2json.js
CHANGED
|
@@ -1,35 +1,65 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
import XmlNode from './xmlNode.js';
|
|
4
|
+
import { Matcher } from 'path-expression-matcher';
|
|
4
5
|
|
|
5
6
|
const METADATA_SYMBOL = XmlNode.getMetaDataSymbol();
|
|
6
7
|
|
|
8
|
+
/**
|
|
9
|
+
* Helper function to strip attribute prefix from attribute map
|
|
10
|
+
* @param {object} attrs - Attributes with prefix (e.g., {"@_class": "code"})
|
|
11
|
+
* @param {string} prefix - Attribute prefix to remove (e.g., "@_")
|
|
12
|
+
* @returns {object} Attributes without prefix (e.g., {"class": "code"})
|
|
13
|
+
*/
|
|
14
|
+
function stripAttributePrefix(attrs, prefix) {
|
|
15
|
+
if (!attrs || typeof attrs !== 'object') return {};
|
|
16
|
+
if (!prefix) return attrs;
|
|
17
|
+
|
|
18
|
+
const rawAttrs = {};
|
|
19
|
+
for (const key in attrs) {
|
|
20
|
+
if (key.startsWith(prefix)) {
|
|
21
|
+
const rawName = key.substring(prefix.length);
|
|
22
|
+
rawAttrs[rawName] = attrs[key];
|
|
23
|
+
} else {
|
|
24
|
+
// Attribute without prefix (shouldn't normally happen, but be safe)
|
|
25
|
+
rawAttrs[key] = attrs[key];
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return rawAttrs;
|
|
29
|
+
}
|
|
30
|
+
|
|
7
31
|
/**
|
|
8
32
|
*
|
|
9
33
|
* @param {array} node
|
|
10
34
|
* @param {any} options
|
|
35
|
+
* @param {Matcher} matcher - Path matcher instance
|
|
11
36
|
* @returns
|
|
12
37
|
*/
|
|
13
|
-
export default function prettify(node, options) {
|
|
14
|
-
return compress(node, options);
|
|
38
|
+
export default function prettify(node, options, matcher, readonlyMatcher) {
|
|
39
|
+
return compress(node, options, matcher, readonlyMatcher);
|
|
15
40
|
}
|
|
16
41
|
|
|
17
42
|
/**
|
|
18
|
-
*
|
|
19
43
|
* @param {array} arr
|
|
20
44
|
* @param {object} options
|
|
21
|
-
* @param {
|
|
45
|
+
* @param {Matcher} matcher - Path matcher instance
|
|
22
46
|
* @returns object
|
|
23
47
|
*/
|
|
24
|
-
function compress(arr, options,
|
|
48
|
+
function compress(arr, options, matcher, readonlyMatcher) {
|
|
25
49
|
let text;
|
|
26
50
|
const compressedObj = {}; //This is intended to be a plain object
|
|
27
51
|
for (let i = 0; i < arr.length; i++) {
|
|
28
52
|
const tagObj = arr[i];
|
|
29
53
|
const property = propName(tagObj);
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
54
|
+
|
|
55
|
+
// Push current property to matcher WITH RAW ATTRIBUTES (no prefix)
|
|
56
|
+
if (property !== undefined && property !== options.textNodeName) {
|
|
57
|
+
const rawAttrs = stripAttributePrefix(
|
|
58
|
+
tagObj[":@"] || {},
|
|
59
|
+
options.attributeNamePrefix
|
|
60
|
+
);
|
|
61
|
+
matcher.push(property, rawAttrs);
|
|
62
|
+
}
|
|
33
63
|
|
|
34
64
|
if (property === options.textNodeName) {
|
|
35
65
|
if (text === undefined) text = tagObj[property];
|
|
@@ -38,11 +68,11 @@ function compress(arr, options, jPath) {
|
|
|
38
68
|
continue;
|
|
39
69
|
} else if (tagObj[property]) {
|
|
40
70
|
|
|
41
|
-
let val = compress(tagObj[property], options,
|
|
71
|
+
let val = compress(tagObj[property], options, matcher, readonlyMatcher);
|
|
42
72
|
const isLeaf = isLeafTag(val, options);
|
|
43
73
|
|
|
44
74
|
if (tagObj[":@"]) {
|
|
45
|
-
assignAttributes(val, tagObj[":@"],
|
|
75
|
+
assignAttributes(val, tagObj[":@"], readonlyMatcher, options);
|
|
46
76
|
} else if (Object.keys(val).length === 1 && val[options.textNodeName] !== undefined && !options.alwaysCreateTextNode) {
|
|
47
77
|
val = val[options.textNodeName];
|
|
48
78
|
} else if (Object.keys(val).length === 0) {
|
|
@@ -63,12 +93,20 @@ function compress(arr, options, jPath) {
|
|
|
63
93
|
} else {
|
|
64
94
|
//TODO: if a node is not an array, then check if it should be an array
|
|
65
95
|
//also determine if it is a leaf node
|
|
66
|
-
|
|
96
|
+
|
|
97
|
+
// Pass jPath string or readonlyMatcher based on options.jPath setting
|
|
98
|
+
const jPathOrMatcher = options.jPath ? readonlyMatcher.toString() : readonlyMatcher;
|
|
99
|
+
if (options.isArray(property, jPathOrMatcher, isLeaf)) {
|
|
67
100
|
compressedObj[property] = [val];
|
|
68
101
|
} else {
|
|
69
102
|
compressedObj[property] = val;
|
|
70
103
|
}
|
|
71
104
|
}
|
|
105
|
+
|
|
106
|
+
// Pop property from matcher after processing
|
|
107
|
+
if (property !== undefined && property !== options.textNodeName) {
|
|
108
|
+
matcher.pop();
|
|
109
|
+
}
|
|
72
110
|
}
|
|
73
111
|
|
|
74
112
|
}
|
|
@@ -89,13 +127,25 @@ function propName(obj) {
|
|
|
89
127
|
}
|
|
90
128
|
}
|
|
91
129
|
|
|
92
|
-
function assignAttributes(obj, attrMap,
|
|
130
|
+
function assignAttributes(obj, attrMap, readonlyMatcher, options) {
|
|
93
131
|
if (attrMap) {
|
|
94
132
|
const keys = Object.keys(attrMap);
|
|
95
133
|
const len = keys.length; //don't make it inline
|
|
96
134
|
for (let i = 0; i < len; i++) {
|
|
97
|
-
const atrrName = keys[i];
|
|
98
|
-
|
|
135
|
+
const atrrName = keys[i]; // This is the PREFIXED name (e.g., "@_class")
|
|
136
|
+
|
|
137
|
+
// Strip prefix for matcher path (for isArray callback)
|
|
138
|
+
const rawAttrName = atrrName.startsWith(options.attributeNamePrefix)
|
|
139
|
+
? atrrName.substring(options.attributeNamePrefix.length)
|
|
140
|
+
: atrrName;
|
|
141
|
+
|
|
142
|
+
// For attributes, we need to create a temporary path
|
|
143
|
+
// Pass jPath string or matcher based on options.jPath setting
|
|
144
|
+
const jPathOrMatcher = options.jPath
|
|
145
|
+
? readonlyMatcher.toString() + "." + rawAttrName
|
|
146
|
+
: readonlyMatcher;
|
|
147
|
+
|
|
148
|
+
if (options.isArray(atrrName, jPathOrMatcher, true, true)) {
|
|
99
149
|
obj[atrrName] = [attrMap[atrrName]];
|
|
100
150
|
} else {
|
|
101
151
|
obj[atrrName] = attrMap[atrrName];
|
|
@@ -120,4 +170,4 @@ function isLeafTag(obj, options) {
|
|
|
120
170
|
}
|
|
121
171
|
|
|
122
172
|
return false;
|
|
123
|
-
}
|
|
173
|
+
}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
|
|
2
|
-
**2.
|
|
3
|
-
-
|
|
2
|
+
**2.2.2 / 2026-03-23**
|
|
3
|
+
- fix for space string
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
**2.2.1 / 2026-03-19**
|
|
7
|
+
- fix false positive for eNotation when no leading zeros
|
|
8
|
+
|
|
9
|
+
**2.2.0 / 2026-02-28**
|
|
10
|
+
- support infinity
|
|
4
11
|
|
|
5
12
|
**2.1.0 / 2025-05-01**
|
|
6
13
|
- fix e-notation
|
|
@@ -20,8 +20,9 @@ export default function toNumber(str, options = {}) {
|
|
|
20
20
|
|
|
21
21
|
let trimmedStr = str.trim();
|
|
22
22
|
|
|
23
|
-
if (
|
|
24
|
-
else if (
|
|
23
|
+
if (trimmedStr.length === 0) return str;
|
|
24
|
+
else if (options.skipLike !== undefined && options.skipLike.test(trimmedStr)) return str;
|
|
25
|
+
else if (trimmedStr === "0") return 0;
|
|
25
26
|
else if (options.hex && hexRegex.test(trimmedStr)) {
|
|
26
27
|
return parse_int(trimmedStr, 16);
|
|
27
28
|
// }else if (options.oct && octRegex.test(str)) {
|
|
@@ -97,11 +98,16 @@ function resolveEnotation(str, trimmedStr, options) {
|
|
|
97
98
|
else if (leadingZeros.length === 1
|
|
98
99
|
&& (notation[3].startsWith(`.${eChar}`) || notation[3][0] === eChar)) {
|
|
99
100
|
return Number(trimmedStr);
|
|
100
|
-
} else if (
|
|
101
|
-
//
|
|
102
|
-
|
|
101
|
+
} else if (leadingZeros.length > 0) {
|
|
102
|
+
// Has leading zeros — only accept if leadingZeros option allows it
|
|
103
|
+
if (options.leadingZeros && !eAdjacentToLeadingZeros) {
|
|
104
|
+
trimmedStr = (notation[1] || "") + notation[3];
|
|
105
|
+
return Number(trimmedStr);
|
|
106
|
+
} else return str;
|
|
107
|
+
} else {
|
|
108
|
+
// No leading zeros — always valid e-notation, parse it
|
|
103
109
|
return Number(trimmedStr);
|
|
104
|
-
}
|
|
110
|
+
}
|
|
105
111
|
} else {
|
|
106
112
|
return str;
|
|
107
113
|
}
|
package/node_modules/{strnum → @aws-sdk/xml-builder/node_modules/strnum}/tests/strnum_test.js
RENAMED
|
@@ -5,6 +5,7 @@ describe("Should convert all the valid numeric strings to number", () => {
|
|
|
5
5
|
expect(toNumber(undefined)).not.toBeDefined();
|
|
6
6
|
expect(toNumber(null)).toEqual(null);
|
|
7
7
|
expect(toNumber("")).toEqual("");
|
|
8
|
+
expect(toNumber(" ")).toEqual(" ");
|
|
8
9
|
expect(toNumber("string")).toEqual("string");
|
|
9
10
|
expect(toNumber("e89794659669cb7bb967db73a7ea6889c3891727")).toEqual("e89794659669cb7bb967db73a7ea6889c3891727");
|
|
10
11
|
});
|
|
@@ -126,6 +127,8 @@ describe("Should convert all the valid numeric strings to number", () => {
|
|
|
126
127
|
expect(toNumber("1e-2")).toEqual(0.01);
|
|
127
128
|
expect(toNumber("1e+2")).toEqual(100);
|
|
128
129
|
expect(toNumber("1.e+2")).toEqual(100);
|
|
130
|
+
|
|
131
|
+
expect(toNumber("1.5e3", { leadingZeros: false })).toEqual(1500);
|
|
129
132
|
});
|
|
130
133
|
|
|
131
134
|
it("scientific notation with upper E", () => {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/xml-builder",
|
|
3
|
-
"version": "3.972.
|
|
3
|
+
"version": "3.972.15",
|
|
4
4
|
"description": "XML utilities for the AWS SDK",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@smithy/types": "^4.13.1",
|
|
7
|
-
"fast-xml-parser": "5.
|
|
7
|
+
"fast-xml-parser": "5.5.8",
|
|
8
8
|
"tslib": "^2.6.2"
|
|
9
9
|
},
|
|
10
10
|
"scripts": {
|
|
@@ -12,6 +12,11 @@ const NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = {
|
|
|
12
12
|
configFileSelector: (profile) => utilConfigProvider.booleanSelector(profile, CONFIG_USE_DUALSTACK_ENDPOINT, utilConfigProvider.SelectorType.CONFIG),
|
|
13
13
|
default: false,
|
|
14
14
|
};
|
|
15
|
+
const nodeDualstackConfigSelectors = {
|
|
16
|
+
environmentVariableSelector: (env) => utilConfigProvider.booleanSelector(env, ENV_USE_DUALSTACK_ENDPOINT, utilConfigProvider.SelectorType.ENV),
|
|
17
|
+
configFileSelector: (profile) => utilConfigProvider.booleanSelector(profile, CONFIG_USE_DUALSTACK_ENDPOINT, utilConfigProvider.SelectorType.CONFIG),
|
|
18
|
+
default: undefined,
|
|
19
|
+
};
|
|
15
20
|
|
|
16
21
|
const ENV_USE_FIPS_ENDPOINT = "AWS_USE_FIPS_ENDPOINT";
|
|
17
22
|
const CONFIG_USE_FIPS_ENDPOINT = "use_fips_endpoint";
|
|
@@ -21,6 +26,11 @@ const NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = {
|
|
|
21
26
|
configFileSelector: (profile) => utilConfigProvider.booleanSelector(profile, CONFIG_USE_FIPS_ENDPOINT, utilConfigProvider.SelectorType.CONFIG),
|
|
22
27
|
default: false,
|
|
23
28
|
};
|
|
29
|
+
const nodeFipsConfigSelectors = {
|
|
30
|
+
environmentVariableSelector: (env) => utilConfigProvider.booleanSelector(env, ENV_USE_FIPS_ENDPOINT, utilConfigProvider.SelectorType.ENV),
|
|
31
|
+
configFileSelector: (profile) => utilConfigProvider.booleanSelector(profile, CONFIG_USE_FIPS_ENDPOINT, utilConfigProvider.SelectorType.CONFIG),
|
|
32
|
+
default: undefined,
|
|
33
|
+
};
|
|
24
34
|
|
|
25
35
|
const resolveCustomEndpointsConfig = (input) => {
|
|
26
36
|
const { tls, endpoint, urlParser, useDualstackEndpoint } = input;
|
|
@@ -181,6 +191,8 @@ exports.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = NODE_USE_FIPS_ENDPOINT_CONFIG_OP
|
|
|
181
191
|
exports.REGION_ENV_NAME = REGION_ENV_NAME;
|
|
182
192
|
exports.REGION_INI_NAME = REGION_INI_NAME;
|
|
183
193
|
exports.getRegionInfo = getRegionInfo;
|
|
194
|
+
exports.nodeDualstackConfigSelectors = nodeDualstackConfigSelectors;
|
|
195
|
+
exports.nodeFipsConfigSelectors = nodeFipsConfigSelectors;
|
|
184
196
|
exports.resolveCustomEndpointsConfig = resolveCustomEndpointsConfig;
|
|
185
197
|
exports.resolveEndpointsConfig = resolveEndpointsConfig;
|
|
186
198
|
exports.resolveRegionConfig = resolveRegionConfig;
|
|
@@ -7,3 +7,8 @@ export const NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = {
|
|
|
7
7
|
configFileSelector: (profile) => booleanSelector(profile, CONFIG_USE_DUALSTACK_ENDPOINT, SelectorType.CONFIG),
|
|
8
8
|
default: false,
|
|
9
9
|
};
|
|
10
|
+
export const nodeDualstackConfigSelectors = {
|
|
11
|
+
environmentVariableSelector: (env) => booleanSelector(env, ENV_USE_DUALSTACK_ENDPOINT, SelectorType.ENV),
|
|
12
|
+
configFileSelector: (profile) => booleanSelector(profile, CONFIG_USE_DUALSTACK_ENDPOINT, SelectorType.CONFIG),
|
|
13
|
+
default: undefined,
|
|
14
|
+
};
|
|
@@ -7,3 +7,8 @@ export const NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = {
|
|
|
7
7
|
configFileSelector: (profile) => booleanSelector(profile, CONFIG_USE_FIPS_ENDPOINT, SelectorType.CONFIG),
|
|
8
8
|
default: false,
|
|
9
9
|
};
|
|
10
|
+
export const nodeFipsConfigSelectors = {
|
|
11
|
+
environmentVariableSelector: (env) => booleanSelector(env, ENV_USE_FIPS_ENDPOINT, SelectorType.ENV),
|
|
12
|
+
configFileSelector: (profile) => booleanSelector(profile, CONFIG_USE_FIPS_ENDPOINT, SelectorType.CONFIG),
|
|
13
|
+
default: undefined,
|
|
14
|
+
};
|
|
@@ -12,6 +12,12 @@ export declare const CONFIG_USE_DUALSTACK_ENDPOINT = "use_dualstack_endpoint";
|
|
|
12
12
|
*/
|
|
13
13
|
export declare const DEFAULT_USE_DUALSTACK_ENDPOINT = false;
|
|
14
14
|
/**
|
|
15
|
+
* Don't delete this, used by older clients.
|
|
16
|
+
* @deprecated replaced by nodeDualstackConfigSelectors in newer clients.
|
|
15
17
|
* @internal
|
|
16
18
|
*/
|
|
17
19
|
export declare const NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS: LoadedConfigSelectors<boolean>;
|
|
20
|
+
/**
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export declare const nodeDualstackConfigSelectors: LoadedConfigSelectors<boolean | undefined>;
|
|
@@ -12,6 +12,12 @@ export declare const CONFIG_USE_FIPS_ENDPOINT = "use_fips_endpoint";
|
|
|
12
12
|
*/
|
|
13
13
|
export declare const DEFAULT_USE_FIPS_ENDPOINT = false;
|
|
14
14
|
/**
|
|
15
|
+
* Don't delete this, used by older clients.
|
|
16
|
+
* @deprecated replaced by nodeFipsConfigSelectors in newer clients.
|
|
15
17
|
* @internal
|
|
16
18
|
*/
|
|
17
19
|
export declare const NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS: LoadedConfigSelectors<boolean>;
|
|
20
|
+
/**
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export declare const nodeFipsConfigSelectors: LoadedConfigSelectors<boolean | undefined>;
|
|
@@ -12,6 +12,12 @@ export declare const CONFIG_USE_DUALSTACK_ENDPOINT = "use_dualstack_endpoint";
|
|
|
12
12
|
*/
|
|
13
13
|
export declare const DEFAULT_USE_DUALSTACK_ENDPOINT = false;
|
|
14
14
|
/**
|
|
15
|
+
* Don't delete this, used by older clients.
|
|
16
|
+
* @deprecated replaced by nodeDualstackConfigSelectors in newer clients.
|
|
15
17
|
* @internal
|
|
16
18
|
*/
|
|
17
19
|
export declare const NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS: LoadedConfigSelectors<boolean>;
|
|
20
|
+
/**
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export declare const nodeDualstackConfigSelectors: LoadedConfigSelectors<boolean | undefined>;
|
|
@@ -12,6 +12,12 @@ export declare const CONFIG_USE_FIPS_ENDPOINT = "use_fips_endpoint";
|
|
|
12
12
|
*/
|
|
13
13
|
export declare const DEFAULT_USE_FIPS_ENDPOINT = false;
|
|
14
14
|
/**
|
|
15
|
+
* Don't delete this, used by older clients.
|
|
16
|
+
* @deprecated replaced by nodeFipsConfigSelectors in newer clients.
|
|
15
17
|
* @internal
|
|
16
18
|
*/
|
|
17
19
|
export declare const NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS: LoadedConfigSelectors<boolean>;
|
|
20
|
+
/**
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export declare const nodeFipsConfigSelectors: LoadedConfigSelectors<boolean | undefined>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smithy/config-resolver",
|
|
3
|
-
"version": "4.4.
|
|
3
|
+
"version": "4.4.13",
|
|
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",
|
|
@@ -31,11 +31,11 @@ export interface EndpointInputConfig<T extends EndpointParameters = EndpointPara
|
|
|
31
31
|
/**
|
|
32
32
|
* Enables IPv6/IPv4 dualstack endpoint.
|
|
33
33
|
*/
|
|
34
|
-
useDualstackEndpoint?: boolean | Provider<boolean>;
|
|
34
|
+
useDualstackEndpoint?: boolean | Provider<boolean | undefined>;
|
|
35
35
|
/**
|
|
36
36
|
* Enables FIPS compatible endpoints.
|
|
37
37
|
*/
|
|
38
|
-
useFipsEndpoint?: boolean | Provider<boolean>;
|
|
38
|
+
useFipsEndpoint?: boolean | Provider<boolean | undefined>;
|
|
39
39
|
/**
|
|
40
40
|
* @internal
|
|
41
41
|
* This field is used internally so you should not fill any value to this field.
|
package/node_modules/@smithy/middleware-endpoint/dist-types/ts3.4/resolveEndpointConfig.d.ts
CHANGED
|
@@ -31,11 +31,11 @@ export interface EndpointInputConfig<T extends EndpointParameters = EndpointPara
|
|
|
31
31
|
/**
|
|
32
32
|
* Enables IPv6/IPv4 dualstack endpoint.
|
|
33
33
|
*/
|
|
34
|
-
useDualstackEndpoint?: boolean | Provider<boolean>;
|
|
34
|
+
useDualstackEndpoint?: boolean | Provider<boolean | undefined>;
|
|
35
35
|
/**
|
|
36
36
|
* Enables FIPS compatible endpoints.
|
|
37
37
|
*/
|
|
38
|
-
useFipsEndpoint?: boolean | Provider<boolean>;
|
|
38
|
+
useFipsEndpoint?: boolean | Provider<boolean | undefined>;
|
|
39
39
|
/**
|
|
40
40
|
* @internal
|
|
41
41
|
* This field is used internally so you should not fill any value to this field.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smithy/middleware-endpoint",
|
|
3
|
-
"version": "4.4.
|
|
3
|
+
"version": "4.4.27",
|
|
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",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smithy/middleware-retry",
|
|
3
|
-
"version": "4.4.
|
|
3
|
+
"version": "4.4.44",
|
|
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",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"@smithy/node-config-provider": "^4.3.12",
|
|
38
38
|
"@smithy/protocol-http": "^5.3.12",
|
|
39
39
|
"@smithy/service-error-classification": "^4.2.12",
|
|
40
|
-
"@smithy/smithy-client": "^4.12.
|
|
40
|
+
"@smithy/smithy-client": "^4.12.7",
|
|
41
41
|
"@smithy/types": "^4.13.1",
|
|
42
42
|
"@smithy/util-middleware": "^4.2.12",
|
|
43
43
|
"@smithy/util-retry": "^4.2.12",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smithy/smithy-client",
|
|
3
|
-
"version": "4.12.
|
|
3
|
+
"version": "4.12.7",
|
|
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 smithy-client",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"sideEffects": false,
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@smithy/core": "^3.23.12",
|
|
31
|
-
"@smithy/middleware-endpoint": "^4.4.
|
|
31
|
+
"@smithy/middleware-endpoint": "^4.4.27",
|
|
32
32
|
"@smithy/middleware-stack": "^4.2.12",
|
|
33
33
|
"@smithy/protocol-http": "^5.3.12",
|
|
34
34
|
"@smithy/types": "^4.13.1",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smithy/util-defaults-mode-browser",
|
|
3
|
-
"version": "4.3.
|
|
3
|
+
"version": "4.3.43",
|
|
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 util-defaults-mode-browser",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"sideEffects": false,
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@smithy/property-provider": "^4.2.12",
|
|
28
|
-
"@smithy/smithy-client": "^4.12.
|
|
28
|
+
"@smithy/smithy-client": "^4.12.7",
|
|
29
29
|
"@smithy/types": "^4.13.1",
|
|
30
30
|
"tslib": "^2.6.2"
|
|
31
31
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smithy/util-defaults-mode-node",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.47",
|
|
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 util-defaults-mode-node",
|
|
@@ -24,11 +24,11 @@
|
|
|
24
24
|
"license": "Apache-2.0",
|
|
25
25
|
"sideEffects": false,
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@smithy/config-resolver": "^4.4.
|
|
27
|
+
"@smithy/config-resolver": "^4.4.13",
|
|
28
28
|
"@smithy/credential-provider-imds": "^4.2.12",
|
|
29
29
|
"@smithy/node-config-provider": "^4.3.12",
|
|
30
30
|
"@smithy/property-provider": "^4.2.12",
|
|
31
|
-
"@smithy/smithy-client": "^4.12.
|
|
31
|
+
"@smithy/smithy-client": "^4.12.7",
|
|
32
32
|
"@smithy/types": "^4.13.1",
|
|
33
33
|
"tslib": "^2.6.2"
|
|
34
34
|
},
|
|
@@ -346,6 +346,57 @@ Restore from a snapshot.
|
|
|
346
346
|
matcher.restore(snapshot);
|
|
347
347
|
```
|
|
348
348
|
|
|
349
|
+
#### Read-Only Access
|
|
350
|
+
|
|
351
|
+
##### `readOnly()`
|
|
352
|
+
|
|
353
|
+
Returns a **live, read-only proxy** of the matcher. All query and inspection methods work normally, but any attempt to call a state-mutating method (`push`, `pop`, `reset`, `updateCurrent`, `restore`) or to write/delete a property throws a `TypeError`.
|
|
354
|
+
|
|
355
|
+
This is the recommended way to share the matcher with external consumers — plugins, callbacks, event handlers — that only need to inspect the current path without being able to corrupt parser state.
|
|
356
|
+
|
|
357
|
+
```javascript
|
|
358
|
+
const ro = matcher.readOnly();
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
**What works on the read-only view:**
|
|
362
|
+
|
|
363
|
+
```javascript
|
|
364
|
+
ro.matches(expr) // ✓ pattern matching
|
|
365
|
+
ro.getCurrentTag() // ✓ current tag name
|
|
366
|
+
ro.getCurrentNamespace() // ✓ current namespace
|
|
367
|
+
ro.getAttrValue("id") // ✓ attribute value
|
|
368
|
+
ro.hasAttr("id") // ✓ attribute presence check
|
|
369
|
+
ro.getPosition() // ✓ sibling position
|
|
370
|
+
ro.getCounter() // ✓ occurrence counter
|
|
371
|
+
ro.getDepth() // ✓ path depth
|
|
372
|
+
ro.toString() // ✓ path as string
|
|
373
|
+
ro.toArray() // ✓ path as array
|
|
374
|
+
ro.snapshot() // ✓ snapshot (can be used to restore the real matcher)
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
**What throws a `TypeError`:**
|
|
378
|
+
|
|
379
|
+
```javascript
|
|
380
|
+
ro.push("child", {}) // ✗ TypeError: Cannot call 'push' on a read-only Matcher
|
|
381
|
+
ro.pop() // ✗ TypeError: Cannot call 'pop' on a read-only Matcher
|
|
382
|
+
ro.reset() // ✗ TypeError: Cannot call 'reset' on a read-only Matcher
|
|
383
|
+
ro.updateCurrent({}) // ✗ TypeError: Cannot call 'updateCurrent' on a read-only Matcher
|
|
384
|
+
ro.restore(snapshot) // ✗ TypeError: Cannot call 'restore' on a read-only Matcher
|
|
385
|
+
ro.separator = '/' // ✗ TypeError: Cannot set property on a read-only Matcher
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
**Important:** The read-only view is **live** — it always reflects the current state of the underlying matcher. If you need a frozen-in-time copy instead, use `snapshot()`.
|
|
389
|
+
|
|
390
|
+
```javascript
|
|
391
|
+
const matcher = new Matcher();
|
|
392
|
+
const ro = matcher.readOnly();
|
|
393
|
+
|
|
394
|
+
matcher.push("root");
|
|
395
|
+
ro.getDepth(); // 1 — immediately reflects the push
|
|
396
|
+
matcher.push("users");
|
|
397
|
+
ro.getDepth(); // 2 — still live
|
|
398
|
+
```
|
|
399
|
+
|
|
349
400
|
## 💡 Usage Examples
|
|
350
401
|
|
|
351
402
|
### Example 1: XML Parser with stopNodes
|
|
@@ -481,7 +532,53 @@ const expr = new Expression("root.item:first");
|
|
|
481
532
|
console.log(matcher.matches(expr)); // false (counter=1, not 0)
|
|
482
533
|
```
|
|
483
534
|
|
|
484
|
-
### Example
|
|
535
|
+
### Example 8: Passing a Read-Only Matcher to External Consumers
|
|
536
|
+
|
|
537
|
+
When passing the matcher into callbacks, plugins, or other code you don't control, use `readOnly()` to prevent accidental state corruption.
|
|
538
|
+
|
|
539
|
+
```javascript
|
|
540
|
+
import { Expression, Matcher } from 'path-expression-matcher';
|
|
541
|
+
|
|
542
|
+
const matcher = new Matcher();
|
|
543
|
+
|
|
544
|
+
const adminExpr = new Expression("..user[type=admin]");
|
|
545
|
+
|
|
546
|
+
function parseTag(tagName, attrs, onTag) {
|
|
547
|
+
matcher.push(tagName, attrs);
|
|
548
|
+
|
|
549
|
+
// Pass a read-only view — consumer can inspect but not mutate
|
|
550
|
+
onTag(matcher.readOnly());
|
|
551
|
+
|
|
552
|
+
matcher.pop();
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
// Safe consumer — can only read
|
|
556
|
+
function myPlugin(ro) {
|
|
557
|
+
if (ro.matches(adminExpr)) {
|
|
558
|
+
console.log("Admin at path:", ro.toString());
|
|
559
|
+
console.log("Depth:", ro.getDepth());
|
|
560
|
+
console.log("ID:", ro.getAttrValue("id"));
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
// ro.push(...) or ro.reset() here would throw TypeError,
|
|
565
|
+
// so the parser's state is always safe.
|
|
566
|
+
parseTag("user", { id: "1", type: "admin" }, myPlugin);
|
|
567
|
+
```
|
|
568
|
+
|
|
569
|
+
**Combining with `snapshot()`:** A snapshot taken via the read-only view can still be used to restore the real matcher.
|
|
570
|
+
|
|
571
|
+
```javascript
|
|
572
|
+
const matcher = new Matcher();
|
|
573
|
+
matcher.push("root");
|
|
574
|
+
matcher.push("users");
|
|
575
|
+
|
|
576
|
+
const ro = matcher.readOnly();
|
|
577
|
+
const snap = ro.snapshot(); // ✓ snapshot works on read-only view
|
|
578
|
+
|
|
579
|
+
matcher.push("user"); // continue parsing...
|
|
580
|
+
matcher.restore(snap); // restore to "root.users" using the snapshot
|
|
581
|
+
```
|
|
485
582
|
|
|
486
583
|
```javascript
|
|
487
584
|
const matcher = new Matcher();
|
|
@@ -614,18 +711,6 @@ const parser = new XMLParser({
|
|
|
614
711
|
});
|
|
615
712
|
```
|
|
616
713
|
|
|
617
|
-
## 🧪 Testing
|
|
618
|
-
|
|
619
|
-
```bash
|
|
620
|
-
npm test
|
|
621
|
-
```
|
|
622
|
-
|
|
623
|
-
All 77 tests covering:
|
|
624
|
-
- Pattern parsing (exact, wildcards, attributes, position)
|
|
625
|
-
- Path tracking (push, pop, update)
|
|
626
|
-
- Pattern matching (all combinations)
|
|
627
|
-
- Edge cases and error conditions
|
|
628
|
-
|
|
629
714
|
## 📄 License
|
|
630
715
|
|
|
631
716
|
MIT
|