@cdk8s/awscdk-resolver 0.0.547 → 0.0.548
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/lib/resolve.js +1 -1
- package/node_modules/@aws-sdk/client-cloudformation/dist-cjs/index.js +9 -9
- package/node_modules/@aws-sdk/client-cloudformation/dist-es/waiters/waitForChangeSetCreateComplete.js +2 -2
- package/node_modules/@aws-sdk/client-cloudformation/dist-es/waiters/waitForStackCreateComplete.js +2 -2
- package/node_modules/@aws-sdk/client-cloudformation/dist-es/waiters/waitForStackDeleteComplete.js +2 -2
- package/node_modules/@aws-sdk/client-cloudformation/dist-es/waiters/waitForStackExists.js +2 -2
- package/node_modules/@aws-sdk/client-cloudformation/dist-es/waiters/waitForStackImportComplete.js +2 -2
- package/node_modules/@aws-sdk/client-cloudformation/dist-es/waiters/waitForStackRefactorCreateComplete.js +1 -1
- package/node_modules/@aws-sdk/client-cloudformation/dist-es/waiters/waitForStackRefactorExecuteComplete.js +1 -1
- package/node_modules/@aws-sdk/client-cloudformation/dist-es/waiters/waitForStackRollbackComplete.js +2 -2
- package/node_modules/@aws-sdk/client-cloudformation/dist-es/waiters/waitForStackUpdateComplete.js +2 -2
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/CloudFormation.d.ts +11 -10
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/CloudFormation.d.ts +13 -10
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/waiters/waitForChangeSetCreateComplete.d.ts +9 -3
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/waiters/waitForStackCreateComplete.d.ts +9 -3
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/waiters/waitForStackDeleteComplete.d.ts +11 -3
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/waiters/waitForStackExists.d.ts +9 -3
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/waiters/waitForStackImportComplete.d.ts +9 -3
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/waiters/waitForStackRefactorCreateComplete.d.ts +11 -3
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/waiters/waitForStackRefactorExecuteComplete.d.ts +11 -3
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/waiters/waitForStackRollbackComplete.d.ts +9 -3
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/waiters/waitForStackUpdateComplete.d.ts +9 -3
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/waiters/waitForTypeRegistrationComplete.d.ts +11 -3
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/waiters/waitForChangeSetCreateComplete.d.ts +4 -3
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/waiters/waitForStackCreateComplete.d.ts +4 -3
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/waiters/waitForStackDeleteComplete.d.ts +4 -3
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/waiters/waitForStackExists.d.ts +4 -3
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/waiters/waitForStackImportComplete.d.ts +4 -3
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/waiters/waitForStackRefactorCreateComplete.d.ts +4 -3
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/waiters/waitForStackRefactorExecuteComplete.d.ts +4 -3
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/waiters/waitForStackRollbackComplete.d.ts +4 -3
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/waiters/waitForStackUpdateComplete.d.ts +4 -3
- package/node_modules/@aws-sdk/client-cloudformation/dist-types/waiters/waitForTypeRegistrationComplete.d.ts +4 -3
- package/node_modules/@aws-sdk/client-cloudformation/package.json +8 -8
- package/node_modules/@aws-sdk/core/package.json +3 -3
- package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
- package/node_modules/@aws-sdk/credential-provider-http/package.json +2 -2
- 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-sdk-s3/package.json +2 -2
- package/node_modules/@aws-sdk/middleware-user-agent/package.json +3 -3
- package/node_modules/@aws-sdk/nested-clients/package.json +7 -7
- package/node_modules/@aws-sdk/signature-v4-multi-region/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/xml-external/nodable_entities.js +336 -0
- package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.js +26 -0
- package/node_modules/@aws-sdk/xml-builder/dist-es/xml-external/nodable_entities.js +332 -0
- package/node_modules/@aws-sdk/xml-builder/dist-es/xml-parser.js +26 -0
- package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/XmlNode.d.ts +49 -29
- package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/XmlText.d.ts +11 -6
- package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/escape-attribute.d.ts +6 -1
- package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/escape-element.d.ts +6 -1
- package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/index.d.ts +12 -3
- package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/stringable.d.ts +6 -3
- package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/xml-external/nodable_entities.d.ts +65 -0
- package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/xml-parser.browser.d.ts +9 -1
- package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/xml-parser.d.ts +4 -1
- package/node_modules/@aws-sdk/xml-builder/dist-types/xml-external/nodable_entities.d.ts +65 -0
- package/node_modules/@aws-sdk/xml-builder/package.json +3 -2
- package/node_modules/@smithy/middleware-retry/package.json +3 -3
- package/node_modules/@smithy/service-error-classification/dist-cjs/index.js +1 -0
- package/node_modules/@smithy/service-error-classification/dist-es/index.js +1 -0
- package/node_modules/@smithy/service-error-classification/package.json +1 -1
- package/node_modules/@smithy/util-retry/package.json +2 -2
- package/node_modules/@smithy/util-waiter/dist-cjs/index.js +59 -34
- package/node_modules/@smithy/util-waiter/dist-es/poller.js +61 -34
- package/node_modules/@smithy/util-waiter/dist-types/createWaiter.d.ts +1 -1
- package/node_modules/@smithy/util-waiter/dist-types/poller.d.ts +2 -1
- package/node_modules/@smithy/util-waiter/dist-types/waiter.d.ts +13 -13
- package/node_modules/@smithy/util-waiter/package.json +1 -1
- package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/CHANGELOG.md +8 -0
- package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/lib/fxp.cjs +1 -1
- package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/lib/fxp.min.js +1 -1
- package/node_modules/fast-xml-parser/lib/fxp.min.js.map +1 -0
- package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/lib/fxparser.min.js +1 -1
- package/node_modules/fast-xml-parser/lib/fxparser.min.js.map +1 -0
- package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/package.json +1 -1
- package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/xmlparser/OrderedObjParser.js +16 -11
- package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/xmlparser/XMLParser.js +2 -2
- package/package.json +2 -2
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.min.js.map +0 -1
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxparser.min.js.map +0 -1
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/LICENSE +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/README.md +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/lib/fxbuilder.min.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/lib/fxbuilder.min.js.map +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/lib/fxp.d.cts +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/lib/fxvalidator.min.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/lib/fxvalidator.min.js.map +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/cli/cli.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/cli/man.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/cli/read.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/fxp.d.ts +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/fxp.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/ignoreAttributes.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/util.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/CharsSymbol.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/EntitiesParser.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/OptionsBuilder.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/OutputBuilders/BaseOutputBuilder.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/OutputBuilders/JsArrBuilder.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/OutputBuilders/JsMinArrBuilder.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/OutputBuilders/JsObjBuilder.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/OutputBuilders/ParserOptionsBuilder.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/Report.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/TagPath.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/TagPathMatcher.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/XMLParser.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/Xml2JsParser.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/XmlPartReader.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/XmlSpecialTagsReader.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/inputSource/BufferSource.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/inputSource/StringSource.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/valueParsers/EntitiesParser.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/valueParsers/booleanParser.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/valueParsers/booleanParserExt.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/valueParsers/currency.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/valueParsers/join.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/valueParsers/number.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/v6/valueParsers/trim.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/validator.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/xmlbuilder/json2xml.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/xmlparser/DocTypeReader.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/xmlparser/OptionsBuilder.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/xmlparser/node2json.js +0 -0
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser → fast-xml-parser}/src/xmlparser/xmlNode.js +0 -0
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
export const XML = {
|
|
2
|
+
amp: "&",
|
|
3
|
+
apos: "'",
|
|
4
|
+
gt: ">",
|
|
5
|
+
lt: "<",
|
|
6
|
+
quot: '"',
|
|
7
|
+
};
|
|
8
|
+
export const COMMON_HTML = {
|
|
9
|
+
nbsp: "\u00a0",
|
|
10
|
+
copy: "\u00a9",
|
|
11
|
+
reg: "\u00ae",
|
|
12
|
+
trade: "\u2122",
|
|
13
|
+
mdash: "\u2014",
|
|
14
|
+
ndash: "\u2013",
|
|
15
|
+
hellip: "\u2026",
|
|
16
|
+
laquo: "\u00ab",
|
|
17
|
+
raquo: "\u00bb",
|
|
18
|
+
lsquo: "\u2018",
|
|
19
|
+
rsquo: "\u2019",
|
|
20
|
+
ldquo: "\u201c",
|
|
21
|
+
rdquo: "\u201d",
|
|
22
|
+
bull: "\u2022",
|
|
23
|
+
para: "\u00b6",
|
|
24
|
+
sect: "\u00a7",
|
|
25
|
+
deg: "\u00b0",
|
|
26
|
+
frac12: "\u00bd",
|
|
27
|
+
frac14: "\u00bc",
|
|
28
|
+
frac34: "\u00be",
|
|
29
|
+
};
|
|
30
|
+
export const CURRENCY = {
|
|
31
|
+
cent: "\u00a2",
|
|
32
|
+
pound: "\u00a3",
|
|
33
|
+
curren: "\u00a4",
|
|
34
|
+
yen: "\u00a5",
|
|
35
|
+
euro: "\u20ac",
|
|
36
|
+
dollar: "$",
|
|
37
|
+
fnof: "\u0192",
|
|
38
|
+
inr: "\u20b9",
|
|
39
|
+
af: "\u060b",
|
|
40
|
+
birr: "\u1265\u122d",
|
|
41
|
+
peso: "\u20b1",
|
|
42
|
+
rub: "\u20bd",
|
|
43
|
+
won: "\u20a9",
|
|
44
|
+
yuan: "\u00a5",
|
|
45
|
+
cedil: "\u00b8",
|
|
46
|
+
};
|
|
47
|
+
const SPECIAL_CHARS = new Set("!?\\/[]$%{}^&*()<>|+");
|
|
48
|
+
function validateEntityName(name) {
|
|
49
|
+
if (name[0] === "#") {
|
|
50
|
+
throw new Error(`[EntityReplacer] Invalid character '#' in entity name: "${name}"`);
|
|
51
|
+
}
|
|
52
|
+
for (const ch of name) {
|
|
53
|
+
if (SPECIAL_CHARS.has(ch)) {
|
|
54
|
+
throw new Error(`[EntityReplacer] Invalid character '${ch}' in entity name: "${name}"`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return name;
|
|
58
|
+
}
|
|
59
|
+
function mergeEntityMaps(...maps) {
|
|
60
|
+
const out = Object.create(null);
|
|
61
|
+
for (const map of maps) {
|
|
62
|
+
if (!map) {
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
for (const key of Object.keys(map)) {
|
|
66
|
+
const raw = map[key];
|
|
67
|
+
if (typeof raw === "string") {
|
|
68
|
+
out[key] = raw;
|
|
69
|
+
}
|
|
70
|
+
else if (raw && typeof raw === "object" && raw.val !== undefined) {
|
|
71
|
+
const val = raw.val;
|
|
72
|
+
if (typeof val === "string") {
|
|
73
|
+
out[key] = val;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return out;
|
|
79
|
+
}
|
|
80
|
+
const LIMIT_TIER_EXTERNAL = "external";
|
|
81
|
+
const LIMIT_TIER_BASE = "base";
|
|
82
|
+
const LIMIT_TIER_ALL = "all";
|
|
83
|
+
function parseLimitTiers(raw) {
|
|
84
|
+
if (!raw || raw === LIMIT_TIER_EXTERNAL) {
|
|
85
|
+
return new Set([LIMIT_TIER_EXTERNAL]);
|
|
86
|
+
}
|
|
87
|
+
if (raw === LIMIT_TIER_ALL) {
|
|
88
|
+
return new Set([LIMIT_TIER_ALL]);
|
|
89
|
+
}
|
|
90
|
+
if (raw === LIMIT_TIER_BASE) {
|
|
91
|
+
return new Set([LIMIT_TIER_BASE]);
|
|
92
|
+
}
|
|
93
|
+
if (Array.isArray(raw)) {
|
|
94
|
+
return new Set(raw);
|
|
95
|
+
}
|
|
96
|
+
return new Set([LIMIT_TIER_EXTERNAL]);
|
|
97
|
+
}
|
|
98
|
+
const NCR_LEVEL = Object.freeze({ allow: 0, leave: 1, remove: 2, throw: 3 });
|
|
99
|
+
const XML10_ALLOWED_C0 = new Set([0x09, 0x0a, 0x0d]);
|
|
100
|
+
function parseNCRConfig(ncr) {
|
|
101
|
+
if (!ncr) {
|
|
102
|
+
return { xmlVersion: 1.0, onLevel: NCR_LEVEL.allow, nullLevel: NCR_LEVEL.remove };
|
|
103
|
+
}
|
|
104
|
+
const xmlVersion = ncr.xmlVersion === 1.1 ? 1.1 : 1.0;
|
|
105
|
+
const onLevel = NCR_LEVEL[ncr.onNCR ?? "allow"] ?? NCR_LEVEL.allow;
|
|
106
|
+
const nullLevel = NCR_LEVEL[ncr.nullNCR ?? "remove"] ?? NCR_LEVEL.remove;
|
|
107
|
+
const clampedNull = Math.max(nullLevel, NCR_LEVEL.remove);
|
|
108
|
+
return { xmlVersion, onLevel, nullLevel: clampedNull };
|
|
109
|
+
}
|
|
110
|
+
export const EntityDecoderImpl = class EntityDecoderImpl {
|
|
111
|
+
_limit;
|
|
112
|
+
_maxTotalExpansions;
|
|
113
|
+
_maxExpandedLength;
|
|
114
|
+
_postCheck;
|
|
115
|
+
_limitTiers;
|
|
116
|
+
_numericAllowed;
|
|
117
|
+
_baseMap;
|
|
118
|
+
_externalMap;
|
|
119
|
+
_inputMap;
|
|
120
|
+
_totalExpansions;
|
|
121
|
+
_expandedLength;
|
|
122
|
+
_removeSet;
|
|
123
|
+
_leaveSet;
|
|
124
|
+
_ncrXmlVersion;
|
|
125
|
+
_ncrOnLevel;
|
|
126
|
+
_ncrNullLevel;
|
|
127
|
+
constructor(options = {}) {
|
|
128
|
+
this._limit = options.limit || {};
|
|
129
|
+
this._maxTotalExpansions = this._limit.maxTotalExpansions || 0;
|
|
130
|
+
this._maxExpandedLength = this._limit.maxExpandedLength || 0;
|
|
131
|
+
this._postCheck = typeof options.postCheck === "function" ? options.postCheck : (r) => r;
|
|
132
|
+
this._limitTiers = parseLimitTiers(this._limit.applyLimitsTo ?? LIMIT_TIER_EXTERNAL);
|
|
133
|
+
this._numericAllowed = options.numericAllowed ?? true;
|
|
134
|
+
this._baseMap = mergeEntityMaps(XML, options.namedEntities || null);
|
|
135
|
+
this._externalMap = Object.create(null);
|
|
136
|
+
this._inputMap = Object.create(null);
|
|
137
|
+
this._totalExpansions = 0;
|
|
138
|
+
this._expandedLength = 0;
|
|
139
|
+
this._removeSet = new Set(options.remove && Array.isArray(options.remove) ? options.remove : []);
|
|
140
|
+
this._leaveSet = new Set(options.leave && Array.isArray(options.leave) ? options.leave : []);
|
|
141
|
+
const ncrCfg = parseNCRConfig(options.ncr);
|
|
142
|
+
this._ncrXmlVersion = ncrCfg.xmlVersion;
|
|
143
|
+
this._ncrOnLevel = ncrCfg.onLevel;
|
|
144
|
+
this._ncrNullLevel = ncrCfg.nullLevel;
|
|
145
|
+
}
|
|
146
|
+
setExternalEntities(map) {
|
|
147
|
+
if (map) {
|
|
148
|
+
for (const key of Object.keys(map)) {
|
|
149
|
+
validateEntityName(key);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
this._externalMap = mergeEntityMaps(map);
|
|
153
|
+
}
|
|
154
|
+
addExternalEntity(key, value) {
|
|
155
|
+
validateEntityName(key);
|
|
156
|
+
if (typeof value === "string" && value.indexOf("&") === -1) {
|
|
157
|
+
this._externalMap[key] = value;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
addInputEntities(map) {
|
|
161
|
+
this._totalExpansions = 0;
|
|
162
|
+
this._expandedLength = 0;
|
|
163
|
+
this._inputMap = mergeEntityMaps(map);
|
|
164
|
+
}
|
|
165
|
+
reset() {
|
|
166
|
+
this._inputMap = Object.create(null);
|
|
167
|
+
this._totalExpansions = 0;
|
|
168
|
+
this._expandedLength = 0;
|
|
169
|
+
return this;
|
|
170
|
+
}
|
|
171
|
+
setXmlVersion(version) {
|
|
172
|
+
this._ncrXmlVersion = version === "1.1" || version === 1.1 ? 1.1 : 1.0;
|
|
173
|
+
}
|
|
174
|
+
decode(str) {
|
|
175
|
+
if (typeof str !== "string" || str.length === 0) {
|
|
176
|
+
return str;
|
|
177
|
+
}
|
|
178
|
+
const original = str;
|
|
179
|
+
const chunks = [];
|
|
180
|
+
const len = str.length;
|
|
181
|
+
let last = 0;
|
|
182
|
+
let i = 0;
|
|
183
|
+
const limitExpansions = this._maxTotalExpansions > 0;
|
|
184
|
+
const limitLength = this._maxExpandedLength > 0;
|
|
185
|
+
const checkLimits = limitExpansions || limitLength;
|
|
186
|
+
while (i < len) {
|
|
187
|
+
if (str.charCodeAt(i) !== 38) {
|
|
188
|
+
i++;
|
|
189
|
+
continue;
|
|
190
|
+
}
|
|
191
|
+
let j = i + 1;
|
|
192
|
+
while (j < len && str.charCodeAt(j) !== 59 && j - i <= 32) {
|
|
193
|
+
j++;
|
|
194
|
+
}
|
|
195
|
+
if (j >= len || str.charCodeAt(j) !== 59) {
|
|
196
|
+
i++;
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
const token = str.slice(i + 1, j);
|
|
200
|
+
if (token.length === 0) {
|
|
201
|
+
i++;
|
|
202
|
+
continue;
|
|
203
|
+
}
|
|
204
|
+
let replacement;
|
|
205
|
+
let tier;
|
|
206
|
+
if (this._removeSet.has(token)) {
|
|
207
|
+
replacement = "";
|
|
208
|
+
if (tier === undefined) {
|
|
209
|
+
tier = LIMIT_TIER_EXTERNAL;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
else if (this._leaveSet.has(token)) {
|
|
213
|
+
i++;
|
|
214
|
+
continue;
|
|
215
|
+
}
|
|
216
|
+
else if (token.charCodeAt(0) === 35) {
|
|
217
|
+
const ncrResult = this._resolveNCR(token);
|
|
218
|
+
if (ncrResult === undefined) {
|
|
219
|
+
i++;
|
|
220
|
+
continue;
|
|
221
|
+
}
|
|
222
|
+
replacement = ncrResult;
|
|
223
|
+
tier = LIMIT_TIER_BASE;
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
const resolved = this._resolveName(token);
|
|
227
|
+
replacement = resolved?.value;
|
|
228
|
+
tier = resolved?.tier;
|
|
229
|
+
}
|
|
230
|
+
if (replacement === undefined) {
|
|
231
|
+
i++;
|
|
232
|
+
continue;
|
|
233
|
+
}
|
|
234
|
+
if (i > last) {
|
|
235
|
+
chunks.push(str.slice(last, i));
|
|
236
|
+
}
|
|
237
|
+
chunks.push(replacement);
|
|
238
|
+
last = j + 1;
|
|
239
|
+
i = last;
|
|
240
|
+
if (checkLimits && this._tierCounts(tier)) {
|
|
241
|
+
if (limitExpansions) {
|
|
242
|
+
this._totalExpansions++;
|
|
243
|
+
if (this._totalExpansions > this._maxTotalExpansions) {
|
|
244
|
+
throw new Error(`[EntityReplacer] Entity expansion count limit exceeded: ` +
|
|
245
|
+
`${this._totalExpansions} > ${this._maxTotalExpansions}`);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
if (limitLength) {
|
|
249
|
+
const delta = replacement.length - (token.length + 2);
|
|
250
|
+
if (delta > 0) {
|
|
251
|
+
this._expandedLength += delta;
|
|
252
|
+
if (this._expandedLength > this._maxExpandedLength) {
|
|
253
|
+
throw new Error(`[EntityReplacer] Expanded content length limit exceeded: ` +
|
|
254
|
+
`${this._expandedLength} > ${this._maxExpandedLength}`);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
if (last < len) {
|
|
261
|
+
chunks.push(str.slice(last));
|
|
262
|
+
}
|
|
263
|
+
const result = chunks.length === 0 ? str : chunks.join("");
|
|
264
|
+
return this._postCheck(result, original);
|
|
265
|
+
}
|
|
266
|
+
_tierCounts(tier) {
|
|
267
|
+
if (this._limitTiers.has(LIMIT_TIER_ALL)) {
|
|
268
|
+
return true;
|
|
269
|
+
}
|
|
270
|
+
return this._limitTiers.has(tier);
|
|
271
|
+
}
|
|
272
|
+
_resolveName(name) {
|
|
273
|
+
if (name in this._inputMap) {
|
|
274
|
+
return { value: this._inputMap[name], tier: LIMIT_TIER_EXTERNAL };
|
|
275
|
+
}
|
|
276
|
+
if (name in this._externalMap) {
|
|
277
|
+
return { value: this._externalMap[name], tier: LIMIT_TIER_EXTERNAL };
|
|
278
|
+
}
|
|
279
|
+
if (name in this._baseMap) {
|
|
280
|
+
return { value: this._baseMap[name], tier: LIMIT_TIER_BASE };
|
|
281
|
+
}
|
|
282
|
+
return undefined;
|
|
283
|
+
}
|
|
284
|
+
_classifyNCR(cp) {
|
|
285
|
+
if (cp === 0) {
|
|
286
|
+
return this._ncrNullLevel;
|
|
287
|
+
}
|
|
288
|
+
if (cp >= 0xd800 && cp <= 0xdfff) {
|
|
289
|
+
return NCR_LEVEL.remove;
|
|
290
|
+
}
|
|
291
|
+
if (this._ncrXmlVersion === 1.0) {
|
|
292
|
+
if (cp >= 0x01 && cp <= 0x1f && !XML10_ALLOWED_C0.has(cp)) {
|
|
293
|
+
return NCR_LEVEL.remove;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
return -1;
|
|
297
|
+
}
|
|
298
|
+
_applyNCRAction(action, token, cp) {
|
|
299
|
+
switch (action) {
|
|
300
|
+
case NCR_LEVEL.allow:
|
|
301
|
+
return String.fromCodePoint(cp);
|
|
302
|
+
case NCR_LEVEL.remove:
|
|
303
|
+
return "";
|
|
304
|
+
case NCR_LEVEL.leave:
|
|
305
|
+
return undefined;
|
|
306
|
+
case NCR_LEVEL.throw:
|
|
307
|
+
throw new Error(`[EntityDecoder] Prohibited numeric character reference ` +
|
|
308
|
+
`&${token}; (U+${cp.toString(16).toUpperCase().padStart(4, "0")})`);
|
|
309
|
+
default:
|
|
310
|
+
return String.fromCodePoint(cp);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
_resolveNCR(token) {
|
|
314
|
+
const second = token.charCodeAt(1);
|
|
315
|
+
let cp;
|
|
316
|
+
if (second === 120 || second === 88) {
|
|
317
|
+
cp = parseInt(token.slice(2), 16);
|
|
318
|
+
}
|
|
319
|
+
else {
|
|
320
|
+
cp = parseInt(token.slice(1), 10);
|
|
321
|
+
}
|
|
322
|
+
if (Number.isNaN(cp) || cp < 0 || cp > 0x10ffff) {
|
|
323
|
+
return undefined;
|
|
324
|
+
}
|
|
325
|
+
const minimum = this._classifyNCR(cp);
|
|
326
|
+
if (!this._numericAllowed && minimum < NCR_LEVEL.remove) {
|
|
327
|
+
return undefined;
|
|
328
|
+
}
|
|
329
|
+
const effective = minimum === -1 ? this._ncrOnLevel : Math.max(this._ncrOnLevel, minimum);
|
|
330
|
+
return this._applyNCRAction(effective, token, cp);
|
|
331
|
+
}
|
|
332
|
+
};
|
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
import { XMLParser } from "fast-xml-parser";
|
|
2
|
+
import { COMMON_HTML, CURRENCY, EntityDecoderImpl, XML } from "./xml-external/nodable_entities";
|
|
3
|
+
const entityDecoder = new EntityDecoderImpl({
|
|
4
|
+
namedEntities: { ...XML, ...COMMON_HTML, ...CURRENCY },
|
|
5
|
+
numericAllowed: true,
|
|
6
|
+
limit: {
|
|
7
|
+
maxTotalExpansions: Infinity,
|
|
8
|
+
},
|
|
9
|
+
ncr: {
|
|
10
|
+
xmlVersion: 1.1,
|
|
11
|
+
},
|
|
12
|
+
});
|
|
2
13
|
const parser = new XMLParser({
|
|
3
14
|
attributeNamePrefix: "",
|
|
4
15
|
processEntities: {
|
|
@@ -6,6 +17,21 @@ const parser = new XMLParser({
|
|
|
6
17
|
maxTotalExpansions: Infinity,
|
|
7
18
|
},
|
|
8
19
|
htmlEntities: true,
|
|
20
|
+
entityDecoder: {
|
|
21
|
+
setExternalEntities: (entities) => {
|
|
22
|
+
entityDecoder.setExternalEntities(entities);
|
|
23
|
+
},
|
|
24
|
+
addInputEntities: (entities) => {
|
|
25
|
+
entityDecoder.addInputEntities(entities);
|
|
26
|
+
},
|
|
27
|
+
reset: () => {
|
|
28
|
+
entityDecoder.reset();
|
|
29
|
+
},
|
|
30
|
+
decode: (text) => {
|
|
31
|
+
return entityDecoder.decode(text);
|
|
32
|
+
},
|
|
33
|
+
setXmlVersion: (version) => void {},
|
|
34
|
+
},
|
|
9
35
|
ignoreAttributes: false,
|
|
10
36
|
ignoreDeclaration: true,
|
|
11
37
|
parseTagValue: false,
|
|
@@ -1,29 +1,49 @@
|
|
|
1
|
-
import { Stringable } from "./stringable";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
1
|
+
import { Stringable } from "./stringable";
|
|
2
|
+
/**
|
|
3
|
+
* @internal
|
|
4
|
+
*
|
|
5
|
+
* Represents an XML node.
|
|
6
|
+
*/
|
|
7
|
+
export declare class XmlNode {
|
|
8
|
+
private name;
|
|
9
|
+
readonly children: Stringable[];
|
|
10
|
+
private attributes;
|
|
11
|
+
static of(name: string, childText?: string, withName?: string): XmlNode;
|
|
12
|
+
constructor(name: string, children?: Stringable[]);
|
|
13
|
+
withName(name: string): XmlNode;
|
|
14
|
+
addAttribute(name: string, value: any): XmlNode;
|
|
15
|
+
addChildNode(child: Stringable): XmlNode;
|
|
16
|
+
removeAttribute(name: string): XmlNode;
|
|
17
|
+
/**
|
|
18
|
+
* @internal
|
|
19
|
+
* Alias of {@link XmlNode#withName(string)} for codegen brevity.
|
|
20
|
+
*/
|
|
21
|
+
n(name: string): XmlNode;
|
|
22
|
+
/**
|
|
23
|
+
* @internal
|
|
24
|
+
* Alias of {@link XmlNode#addChildNode(string)} for codegen brevity.
|
|
25
|
+
*/
|
|
26
|
+
c(child: Stringable): XmlNode;
|
|
27
|
+
/**
|
|
28
|
+
* @internal
|
|
29
|
+
* Checked version of {@link XmlNode#addAttribute(string)} for codegen brevity.
|
|
30
|
+
*/
|
|
31
|
+
a(name: string, value: any): XmlNode;
|
|
32
|
+
/**
|
|
33
|
+
* Create a child node.
|
|
34
|
+
* Used in serialization of string fields.
|
|
35
|
+
* @internal
|
|
36
|
+
*/
|
|
37
|
+
cc(input: any, field: string, withName?: string): void;
|
|
38
|
+
/**
|
|
39
|
+
* Creates list child nodes.
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
l(input: any, listName: string, memberName: string, valueProvider: Function): void;
|
|
43
|
+
/**
|
|
44
|
+
* Creates list child nodes with container.
|
|
45
|
+
* @internal
|
|
46
|
+
*/
|
|
47
|
+
lc(input: any, listName: string, memberName: string, valueProvider: Function): void;
|
|
48
|
+
toString(): string;
|
|
49
|
+
}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
import { Stringable } from "./stringable";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { Stringable } from "./stringable";
|
|
2
|
+
/**
|
|
3
|
+
* @internal
|
|
4
|
+
*
|
|
5
|
+
* Represents an XML text value.
|
|
6
|
+
*/
|
|
7
|
+
export declare class XmlText implements Stringable {
|
|
8
|
+
private value;
|
|
9
|
+
constructor(value: string);
|
|
10
|
+
toString(): string;
|
|
11
|
+
}
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @internal
|
|
3
|
+
*/
|
|
4
|
+
export * from "./XmlNode";
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export * from "./XmlText";
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export { parseXML } from "./xml-parser";
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contains code from \@nodable/entities v2.1.0
|
|
3
|
+
* Copyright (c) Amit Gupta (https://solothought.com)
|
|
4
|
+
* https://github.com/nodable/val-parsers
|
|
5
|
+
*
|
|
6
|
+
* This file bundles the EntityDecoder class and the named-entity maps
|
|
7
|
+
* (XML, COMMON_HTML, CURRENCY).
|
|
8
|
+
*
|
|
9
|
+
* This is a temporary solution while using this particular custom
|
|
10
|
+
* EntityDecoder class. The module-only nature of the original version
|
|
11
|
+
* is incompatible with some of our users' applications.
|
|
12
|
+
*
|
|
13
|
+
* Given that our CJS dist must call `require` to bring in the module, and
|
|
14
|
+
* because the EntityDecoder class and object are inaccessible via the runtime object surface
|
|
15
|
+
* of the XMLParser, we must inline the package.
|
|
16
|
+
*
|
|
17
|
+
* Q: Why is this necessary given that fast-xml-parser itself uses \@nodable/entities?
|
|
18
|
+
* A: FXP only uses \@nodable/entities when imported in ESM mode. When importing FXP
|
|
19
|
+
* via require, a bundled version is used, unaffected by the module-only nature
|
|
20
|
+
* of the entities package.
|
|
21
|
+
*/
|
|
22
|
+
export declare const XML: Record<string, string>;
|
|
23
|
+
export declare const COMMON_HTML: Record<string, string>;
|
|
24
|
+
export declare const CURRENCY: Record<string, string>;
|
|
25
|
+
type EntityValFn = (match: string, captured: string, ...rest: unknown[]) => string;
|
|
26
|
+
type ApplyLimitsTo = "external" | "base" | "all" | Array<"external" | "base">;
|
|
27
|
+
interface EntityDecoderLimitOptions {
|
|
28
|
+
maxTotalExpansions?: number;
|
|
29
|
+
maxExpandedLength?: number;
|
|
30
|
+
applyLimitsTo?: ApplyLimitsTo;
|
|
31
|
+
}
|
|
32
|
+
interface EntityDecoderNCROptions {
|
|
33
|
+
xmlVersion?: 1.0 | 1.1;
|
|
34
|
+
onNCR?: "allow" | "leave" | "remove" | "throw";
|
|
35
|
+
nullNCR?: "remove" | "throw";
|
|
36
|
+
}
|
|
37
|
+
interface EntityDecoderOptions {
|
|
38
|
+
namedEntities?: Record<string, string | {
|
|
39
|
+
regex: RegExp;
|
|
40
|
+
val: string | EntityValFn;
|
|
41
|
+
}> | null;
|
|
42
|
+
postCheck?: ((resolved: string, original: string) => string) | null;
|
|
43
|
+
numericAllowed?: boolean;
|
|
44
|
+
leave?: string[];
|
|
45
|
+
remove?: string[];
|
|
46
|
+
limit?: EntityDecoderLimitOptions;
|
|
47
|
+
ncr?: EntityDecoderNCROptions;
|
|
48
|
+
}
|
|
49
|
+
export interface EntityDecoder {
|
|
50
|
+
setExternalEntities(map: Record<string, string | {
|
|
51
|
+
regex: RegExp;
|
|
52
|
+
val: string | EntityValFn;
|
|
53
|
+
}>): void;
|
|
54
|
+
addExternalEntity(key: string, value: string): void;
|
|
55
|
+
addInputEntities(map: Record<string, string | {
|
|
56
|
+
regx?: RegExp;
|
|
57
|
+
regex?: RegExp;
|
|
58
|
+
val: string | EntityValFn;
|
|
59
|
+
}>): void;
|
|
60
|
+
reset(): this;
|
|
61
|
+
decode(str: string): string;
|
|
62
|
+
setXmlVersion(version: string): void;
|
|
63
|
+
}
|
|
64
|
+
export declare const EntityDecoderImpl: new (options?: EntityDecoderOptions) => EntityDecoder;
|
|
65
|
+
export {};
|
|
@@ -1 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Cases where this differs from fast-xml-parser:
|
|
3
|
+
*
|
|
4
|
+
* 1. Mixing text with nested tags (does not occur in AWS REST XML).
|
|
5
|
+
* <mixed-text> hello, <bold>world</bold>, how are you?</mixed-text>
|
|
6
|
+
*
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export declare function parseXML(xmlString: string): any;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contains code from \@nodable/entities v2.1.0
|
|
3
|
+
* Copyright (c) Amit Gupta (https://solothought.com)
|
|
4
|
+
* https://github.com/nodable/val-parsers
|
|
5
|
+
*
|
|
6
|
+
* This file bundles the EntityDecoder class and the named-entity maps
|
|
7
|
+
* (XML, COMMON_HTML, CURRENCY).
|
|
8
|
+
*
|
|
9
|
+
* This is a temporary solution while using this particular custom
|
|
10
|
+
* EntityDecoder class. The module-only nature of the original version
|
|
11
|
+
* is incompatible with some of our users' applications.
|
|
12
|
+
*
|
|
13
|
+
* Given that our CJS dist must call `require` to bring in the module, and
|
|
14
|
+
* because the EntityDecoder class and object are inaccessible via the runtime object surface
|
|
15
|
+
* of the XMLParser, we must inline the package.
|
|
16
|
+
*
|
|
17
|
+
* Q: Why is this necessary given that fast-xml-parser itself uses \@nodable/entities?
|
|
18
|
+
* A: FXP only uses \@nodable/entities when imported in ESM mode. When importing FXP
|
|
19
|
+
* via require, a bundled version is used, unaffected by the module-only nature
|
|
20
|
+
* of the entities package.
|
|
21
|
+
*/
|
|
22
|
+
export declare const XML: Record<string, string>;
|
|
23
|
+
export declare const COMMON_HTML: Record<string, string>;
|
|
24
|
+
export declare const CURRENCY: Record<string, string>;
|
|
25
|
+
type EntityValFn = (match: string, captured: string, ...rest: unknown[]) => string;
|
|
26
|
+
type ApplyLimitsTo = "external" | "base" | "all" | Array<"external" | "base">;
|
|
27
|
+
interface EntityDecoderLimitOptions {
|
|
28
|
+
maxTotalExpansions?: number;
|
|
29
|
+
maxExpandedLength?: number;
|
|
30
|
+
applyLimitsTo?: ApplyLimitsTo;
|
|
31
|
+
}
|
|
32
|
+
interface EntityDecoderNCROptions {
|
|
33
|
+
xmlVersion?: 1.0 | 1.1;
|
|
34
|
+
onNCR?: "allow" | "leave" | "remove" | "throw";
|
|
35
|
+
nullNCR?: "remove" | "throw";
|
|
36
|
+
}
|
|
37
|
+
interface EntityDecoderOptions {
|
|
38
|
+
namedEntities?: Record<string, string | {
|
|
39
|
+
regex: RegExp;
|
|
40
|
+
val: string | EntityValFn;
|
|
41
|
+
}> | null;
|
|
42
|
+
postCheck?: ((resolved: string, original: string) => string) | null;
|
|
43
|
+
numericAllowed?: boolean;
|
|
44
|
+
leave?: string[];
|
|
45
|
+
remove?: string[];
|
|
46
|
+
limit?: EntityDecoderLimitOptions;
|
|
47
|
+
ncr?: EntityDecoderNCROptions;
|
|
48
|
+
}
|
|
49
|
+
export interface EntityDecoder {
|
|
50
|
+
setExternalEntities(map: Record<string, string | {
|
|
51
|
+
regex: RegExp;
|
|
52
|
+
val: string | EntityValFn;
|
|
53
|
+
}>): void;
|
|
54
|
+
addExternalEntity(key: string, value: string): void;
|
|
55
|
+
addInputEntities(map: Record<string, string | {
|
|
56
|
+
regx?: RegExp;
|
|
57
|
+
regex?: RegExp;
|
|
58
|
+
val: string | EntityValFn;
|
|
59
|
+
}>): void;
|
|
60
|
+
reset(): this;
|
|
61
|
+
decode(str: string): string;
|
|
62
|
+
setXmlVersion(version: string): void;
|
|
63
|
+
}
|
|
64
|
+
export declare const EntityDecoderImpl: new (options?: EntityDecoderOptions) => EntityDecoder;
|
|
65
|
+
export {};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/xml-builder",
|
|
3
|
-
"version": "3.972.
|
|
3
|
+
"version": "3.972.21",
|
|
4
4
|
"description": "XML utilities for the AWS SDK",
|
|
5
5
|
"dependencies": {
|
|
6
|
+
"@nodable/entities": "2.1.0",
|
|
6
7
|
"@smithy/types": "^4.14.1",
|
|
7
|
-
"fast-xml-parser": "5.7.
|
|
8
|
+
"fast-xml-parser": "5.7.2",
|
|
8
9
|
"tslib": "^2.6.2"
|
|
9
10
|
},
|
|
10
11
|
"scripts": {
|