@jjrawlins/cdk-diff-pr-github-action 1.9.1 → 1.9.3
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 +4 -4
- package/cdkdiffprgithubaction/go.mod +1 -1
- package/cdkdiffprgithubaction/jsii/jsii.go +2 -2
- package/cdkdiffprgithubaction/version +1 -1
- package/lib/CdkDiffIamTemplate.js +2 -2
- package/lib/CdkDiffIamTemplateStackSet.js +2 -2
- package/lib/CdkDiffStackWorkflow.js +1 -1
- package/lib/CdkDriftDetectionWorkflow.js +1 -1
- package/lib/CdkDriftIamTemplate.js +2 -2
- package/node_modules/@aws-sdk/client-cloudformation/package.json +13 -13
- package/node_modules/@aws-sdk/core/dist-cjs/index.js +7 -15
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +7 -15
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeDeserializer.js +2 -8
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeDeserializer.js +5 -7
- 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 +6 -6
- 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 +12 -12
- package/node_modules/@aws-sdk/token-providers/package.json +3 -3
- package/node_modules/@aws-sdk/util-user-agent-node/dist-cjs/index.js +36 -19
- package/node_modules/@aws-sdk/util-user-agent-node/dist-es/getSanitizedTypeScriptVersion.js +9 -0
- package/node_modules/@aws-sdk/util-user-agent-node/dist-es/getTypeScriptPackageJsonPaths.js +17 -0
- package/node_modules/@aws-sdk/util-user-agent-node/dist-es/getTypeScriptUserAgentPair.js +17 -12
- package/node_modules/@aws-sdk/util-user-agent-node/dist-types/getSanitizedTypeScriptVersion.d.ts +8 -0
- package/node_modules/@aws-sdk/util-user-agent-node/dist-types/getTypeScriptPackageJsonPaths.d.ts +10 -0
- package/node_modules/@aws-sdk/util-user-agent-node/dist-types/ts3.4/getSanitizedTypeScriptVersion.d.ts +3 -0
- package/node_modules/@aws-sdk/util-user-agent-node/dist-types/ts3.4/getTypeScriptPackageJsonPaths.d.ts +3 -0
- package/node_modules/@aws-sdk/util-user-agent-node/package.json +2 -2
- package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.js +1 -0
- package/node_modules/@aws-sdk/xml-builder/dist-es/xml-parser.js +1 -0
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/CHANGELOG.md +23 -0
- 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 +15 -1
- 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 +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/package.json +3 -2
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/fxp.d.ts +16 -0
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/fxp.js +1 -1
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/util.js +1 -26
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/EntitiesParser.js +87 -87
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OptionsBuilder.js +10 -10
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OutputBuilders/BaseOutputBuilder.js +23 -23
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OutputBuilders/JsArrBuilder.js +29 -29
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OutputBuilders/JsObjBuilder.js +39 -39
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OutputBuilders/ParserOptionsBuilder.js +17 -17
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/XMLParser.js +22 -22
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/EntitiesParser.js +85 -85
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/validator.js +34 -34
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js +5 -284
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js +1 -1
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js +2 -0
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js +27 -5
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js +21 -21
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/node2json.js +38 -34
- package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/xmlNode.js +10 -10
- package/node_modules/@aws-sdk/xml-builder/package.json +2 -2
- package/node_modules/@smithy/abort-controller/package.json +2 -2
- package/node_modules/@smithy/config-resolver/package.json +6 -6
- package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +2 -8
- package/node_modules/@smithy/core/dist-es/submodules/cbor/CborCodec.js +2 -8
- package/node_modules/@smithy/core/package.json +11 -11
- package/node_modules/@smithy/credential-provider-imds/package.json +5 -5
- package/node_modules/@smithy/fetch-http-handler/dist-cjs/index.js +18 -4
- package/node_modules/@smithy/fetch-http-handler/dist-es/fetch-http-handler.js +18 -4
- package/node_modules/@smithy/fetch-http-handler/package.json +6 -6
- package/node_modules/@smithy/hash-node/package.json +4 -4
- package/node_modules/@smithy/invalid-dependency/package.json +2 -2
- package/node_modules/@smithy/is-array-buffer/package.json +2 -2
- package/node_modules/@smithy/middleware-content-length/package.json +3 -3
- package/node_modules/@smithy/middleware-endpoint/package.json +8 -8
- package/node_modules/@smithy/middleware-retry/package.json +9 -9
- package/node_modules/@smithy/middleware-serde/package.json +3 -3
- package/node_modules/@smithy/middleware-stack/package.json +2 -2
- package/node_modules/@smithy/node-config-provider/package.json +4 -4
- package/node_modules/@smithy/node-http-handler/dist-cjs/index.js +21 -8
- package/node_modules/@smithy/node-http-handler/dist-es/build-abort-error.js +16 -0
- package/node_modules/@smithy/node-http-handler/dist-es/node-http-handler.js +3 -4
- package/node_modules/@smithy/node-http-handler/dist-es/node-http2-handler.js +3 -4
- package/node_modules/@smithy/node-http-handler/dist-types/build-abort-error.d.ts +9 -0
- package/node_modules/@smithy/node-http-handler/dist-types/ts3.4/build-abort-error.d.ts +9 -0
- package/node_modules/@smithy/node-http-handler/package.json +5 -5
- package/node_modules/@smithy/property-provider/package.json +2 -2
- package/node_modules/@smithy/protocol-http/package.json +2 -2
- package/node_modules/@smithy/querystring-builder/package.json +3 -3
- package/node_modules/@smithy/querystring-parser/package.json +2 -2
- package/node_modules/@smithy/service-error-classification/package.json +2 -2
- package/node_modules/@smithy/shared-ini-file-loader/package.json +2 -2
- package/node_modules/@smithy/signature-v4/package.json +8 -8
- package/node_modules/@smithy/smithy-client/package.json +7 -7
- package/node_modules/@smithy/url-parser/package.json +3 -3
- package/node_modules/@smithy/util-base64/package.json +4 -4
- package/node_modules/@smithy/util-body-length-browser/package.json +2 -2
- package/node_modules/@smithy/util-body-length-node/package.json +2 -2
- package/node_modules/@smithy/util-buffer-from/package.json +3 -3
- package/node_modules/@smithy/util-config-provider/package.json +2 -2
- package/node_modules/@smithy/util-defaults-mode-browser/package.json +4 -4
- package/node_modules/@smithy/util-defaults-mode-node/package.json +7 -7
- package/node_modules/@smithy/util-endpoints/package.json +3 -3
- package/node_modules/@smithy/util-hex-encoding/package.json +2 -2
- package/node_modules/@smithy/util-middleware/package.json +2 -2
- package/node_modules/@smithy/util-retry/package.json +3 -3
- package/node_modules/@smithy/util-stream/package.json +8 -8
- package/node_modules/@smithy/util-uri-escape/package.json +2 -2
- package/node_modules/@smithy/util-utf8/package.json +3 -3
- package/node_modules/@smithy/util-waiter/package.json +3 -3
- package/node_modules/@smithy/uuid/package.json +2 -2
- package/node_modules/fast-xml-builder/LICENSE +21 -0
- package/node_modules/fast-xml-builder/README.md +23 -0
- package/node_modules/fast-xml-builder/lib/builder.cjs +1 -0
- package/node_modules/fast-xml-builder/lib/builder.min.js +2 -0
- package/node_modules/fast-xml-builder/lib/builder.min.js.map +1 -0
- package/node_modules/fast-xml-builder/lib/fxb.d.cts +167 -0
- package/node_modules/fast-xml-builder/package.json +78 -0
- package/node_modules/fast-xml-builder/src/fxb.d.ts +156 -0
- package/node_modules/fast-xml-builder/src/fxb.js +285 -0
- package/node_modules/fast-xml-builder/src/ignoreAttributes.js +18 -0
- package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlbuilder → fast-xml-builder/src}/orderedJs2Xml.js +14 -3
- package/node_modules/fast-xml-builder/src/prettifyJs2Xml.js +0 -0
- package/package.json +2 -2
- package/node_modules/@aws-sdk/util-user-agent-node/dist-es/getTypeScriptPackageJsonPath.js +0 -14
- package/node_modules/@aws-sdk/util-user-agent-node/dist-types/getTypeScriptPackageJsonPath.d.ts +0 -9
- package/node_modules/@aws-sdk/util-user-agent-node/dist-types/ts3.4/getTypeScriptPackageJsonPath.d.ts +0 -1
- /package/node_modules/{@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlbuilder/prettifyJs2Xml.js → fast-xml-builder/CHANGELOG.md} +0 -0
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
export type XmlBuilderOptions = {
|
|
2
|
+
/**
|
|
3
|
+
* Give a prefix to the attribute name in the resulting JS object
|
|
4
|
+
*
|
|
5
|
+
* Defaults to '@_'
|
|
6
|
+
*/
|
|
7
|
+
attributeNamePrefix?: string;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* A name to group all attributes of a tag under, or `false` to disable
|
|
11
|
+
*
|
|
12
|
+
* Defaults to `false`
|
|
13
|
+
*/
|
|
14
|
+
attributesGroupName?: false | string;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* The name of the next node in the resulting JS
|
|
18
|
+
*
|
|
19
|
+
* Defaults to `#text`
|
|
20
|
+
*/
|
|
21
|
+
textNodeName?: string;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Whether to ignore attributes when building
|
|
25
|
+
*
|
|
26
|
+
* When `true` - ignores all the attributes
|
|
27
|
+
*
|
|
28
|
+
* When `false` - builds all the attributes
|
|
29
|
+
*
|
|
30
|
+
* When `Array<string | RegExp>` - filters out attributes that match provided patterns
|
|
31
|
+
*
|
|
32
|
+
* When `Function` - calls the function for each attribute and filters out those for which the function returned `true`
|
|
33
|
+
*
|
|
34
|
+
* Defaults to `true`
|
|
35
|
+
*/
|
|
36
|
+
ignoreAttributes?: boolean | (string | RegExp)[] | ((attrName: string, jPath: string) => boolean);
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Give a property name to set CDATA values to instead of merging to tag's text value
|
|
40
|
+
*
|
|
41
|
+
* Defaults to `false`
|
|
42
|
+
*/
|
|
43
|
+
cdataPropName?: false | string;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* If set, parse comments and set as this property
|
|
47
|
+
*
|
|
48
|
+
* Defaults to `false`
|
|
49
|
+
*/
|
|
50
|
+
commentPropName?: false | string;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Whether to make output pretty instead of single line
|
|
54
|
+
*
|
|
55
|
+
* Defaults to `false`
|
|
56
|
+
*/
|
|
57
|
+
format?: boolean;
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* If `format` is set to `true`, sets the indent string
|
|
62
|
+
*
|
|
63
|
+
* Defaults to ` `
|
|
64
|
+
*/
|
|
65
|
+
indentBy?: string;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Give a name to a top-level array
|
|
69
|
+
*
|
|
70
|
+
* Defaults to `undefined`
|
|
71
|
+
*/
|
|
72
|
+
arrayNodeName?: string;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Create empty tags for tags with no text value
|
|
76
|
+
*
|
|
77
|
+
* Defaults to `false`
|
|
78
|
+
*/
|
|
79
|
+
suppressEmptyNode?: boolean;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Suppress an unpaired tag
|
|
83
|
+
*
|
|
84
|
+
* Defaults to `true`
|
|
85
|
+
*/
|
|
86
|
+
suppressUnpairedNode?: boolean;
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Don't put a value for boolean attributes
|
|
90
|
+
*
|
|
91
|
+
* Defaults to `true`
|
|
92
|
+
*/
|
|
93
|
+
suppressBooleanAttributes?: boolean;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Preserve the order of tags in resulting JS object
|
|
97
|
+
*
|
|
98
|
+
* Defaults to `false`
|
|
99
|
+
*/
|
|
100
|
+
preserveOrder?: boolean;
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* List of tags without closing tags
|
|
104
|
+
*
|
|
105
|
+
* Defaults to `[]`
|
|
106
|
+
*/
|
|
107
|
+
unpairedTags?: string[];
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Nodes to stop parsing at
|
|
111
|
+
*
|
|
112
|
+
* Defaults to `[]`
|
|
113
|
+
*/
|
|
114
|
+
stopNodes?: string[];
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Control how tag value should be parsed. Called only if tag value is not empty
|
|
118
|
+
*
|
|
119
|
+
* @returns {undefined|null} `undefined` or `null` to set original value.
|
|
120
|
+
* @returns {unknown}
|
|
121
|
+
*
|
|
122
|
+
* 1. Different value or value with different data type to set new value.
|
|
123
|
+
* 2. Same value to set parsed value if `parseTagValue: true`.
|
|
124
|
+
*
|
|
125
|
+
* Defaults to `(tagName, val, jPath, hasAttributes, isLeafNode) => val`
|
|
126
|
+
*/
|
|
127
|
+
tagValueProcessor?: (name: string, value: unknown) => unknown;
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Control how attribute value should be parsed
|
|
131
|
+
*
|
|
132
|
+
* @param attrName
|
|
133
|
+
* @param attrValue
|
|
134
|
+
* @param jPath
|
|
135
|
+
* @returns {undefined|null} `undefined` or `null` to set original value
|
|
136
|
+
* @returns {unknown}
|
|
137
|
+
*
|
|
138
|
+
* Defaults to `(attrName, val, jPath) => val`
|
|
139
|
+
*/
|
|
140
|
+
attributeValueProcessor?: (name: string, value: unknown) => unknown;
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Whether to process default and DOCTYPE entities
|
|
144
|
+
*
|
|
145
|
+
* Defaults to `true`
|
|
146
|
+
*/
|
|
147
|
+
processEntities?: boolean;
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
oneListGroup?: boolean;
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
export class XMLBuilder {
|
|
154
|
+
constructor(options?: XmlBuilderOptions);
|
|
155
|
+
build(jObj: any): string;
|
|
156
|
+
}
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
//parse Empty Node as self closing node
|
|
3
|
+
import buildFromOrderedJs from './orderedJs2Xml.js';
|
|
4
|
+
import getIgnoreAttributesFn from "./ignoreAttributes.js";
|
|
5
|
+
|
|
6
|
+
const defaultOptions = {
|
|
7
|
+
attributeNamePrefix: '@_',
|
|
8
|
+
attributesGroupName: false,
|
|
9
|
+
textNodeName: '#text',
|
|
10
|
+
ignoreAttributes: true,
|
|
11
|
+
cdataPropName: false,
|
|
12
|
+
format: false,
|
|
13
|
+
indentBy: ' ',
|
|
14
|
+
suppressEmptyNode: false,
|
|
15
|
+
suppressUnpairedNode: true,
|
|
16
|
+
suppressBooleanAttributes: true,
|
|
17
|
+
tagValueProcessor: function (key, a) {
|
|
18
|
+
return a;
|
|
19
|
+
},
|
|
20
|
+
attributeValueProcessor: function (attrName, a) {
|
|
21
|
+
return a;
|
|
22
|
+
},
|
|
23
|
+
preserveOrder: false,
|
|
24
|
+
commentPropName: false,
|
|
25
|
+
unpairedTags: [],
|
|
26
|
+
entities: [
|
|
27
|
+
{ regex: new RegExp("&", "g"), val: "&" },//it must be on top
|
|
28
|
+
{ regex: new RegExp(">", "g"), val: ">" },
|
|
29
|
+
{ regex: new RegExp("<", "g"), val: "<" },
|
|
30
|
+
{ regex: new RegExp("\'", "g"), val: "'" },
|
|
31
|
+
{ regex: new RegExp("\"", "g"), val: """ }
|
|
32
|
+
],
|
|
33
|
+
processEntities: true,
|
|
34
|
+
stopNodes: [],
|
|
35
|
+
// transformTagName: false,
|
|
36
|
+
// transformAttributeName: false,
|
|
37
|
+
oneListGroup: false
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export default function Builder(options) {
|
|
41
|
+
this.options = Object.assign({}, defaultOptions, options);
|
|
42
|
+
if (this.options.ignoreAttributes === true || this.options.attributesGroupName) {
|
|
43
|
+
this.isAttribute = function (/*a*/) {
|
|
44
|
+
return false;
|
|
45
|
+
};
|
|
46
|
+
} else {
|
|
47
|
+
this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes)
|
|
48
|
+
this.attrPrefixLen = this.options.attributeNamePrefix.length;
|
|
49
|
+
this.isAttribute = isAttribute;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
this.processTextOrObjNode = processTextOrObjNode
|
|
53
|
+
|
|
54
|
+
if (this.options.format) {
|
|
55
|
+
this.indentate = indentate;
|
|
56
|
+
this.tagEndChar = '>\n';
|
|
57
|
+
this.newLine = '\n';
|
|
58
|
+
} else {
|
|
59
|
+
this.indentate = function () {
|
|
60
|
+
return '';
|
|
61
|
+
};
|
|
62
|
+
this.tagEndChar = '>';
|
|
63
|
+
this.newLine = '';
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
Builder.prototype.build = function (jObj) {
|
|
68
|
+
if (this.options.preserveOrder) {
|
|
69
|
+
return buildFromOrderedJs(jObj, this.options);
|
|
70
|
+
} else {
|
|
71
|
+
if (Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1) {
|
|
72
|
+
jObj = {
|
|
73
|
+
[this.options.arrayNodeName]: jObj
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return this.j2x(jObj, 0, []).val;
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
Builder.prototype.j2x = function (jObj, level, ajPath) {
|
|
81
|
+
let attrStr = '';
|
|
82
|
+
let val = '';
|
|
83
|
+
const jPath = ajPath.join('.')
|
|
84
|
+
for (let key in jObj) {
|
|
85
|
+
if (!Object.prototype.hasOwnProperty.call(jObj, key)) continue;
|
|
86
|
+
if (typeof jObj[key] === 'undefined') {
|
|
87
|
+
// supress undefined node only if it is not an attribute
|
|
88
|
+
if (this.isAttribute(key)) {
|
|
89
|
+
val += '';
|
|
90
|
+
}
|
|
91
|
+
} else if (jObj[key] === null) {
|
|
92
|
+
// null attribute should be ignored by the attribute list, but should not cause the tag closing
|
|
93
|
+
if (this.isAttribute(key)) {
|
|
94
|
+
val += '';
|
|
95
|
+
} else if (key === this.options.cdataPropName) {
|
|
96
|
+
val += '';
|
|
97
|
+
} else if (key[0] === '?') {
|
|
98
|
+
val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;
|
|
99
|
+
} else {
|
|
100
|
+
val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;
|
|
101
|
+
}
|
|
102
|
+
// val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;
|
|
103
|
+
} else if (jObj[key] instanceof Date) {
|
|
104
|
+
val += this.buildTextValNode(jObj[key], key, '', level);
|
|
105
|
+
} else if (typeof jObj[key] !== 'object') {
|
|
106
|
+
//premitive type
|
|
107
|
+
const attr = this.isAttribute(key);
|
|
108
|
+
if (attr && !this.ignoreAttributesFn(attr, jPath)) {
|
|
109
|
+
attrStr += this.buildAttrPairStr(attr, '' + jObj[key]);
|
|
110
|
+
} else if (!attr) {
|
|
111
|
+
//tag value
|
|
112
|
+
if (key === this.options.textNodeName) {
|
|
113
|
+
let newval = this.options.tagValueProcessor(key, '' + jObj[key]);
|
|
114
|
+
val += this.replaceEntitiesValue(newval);
|
|
115
|
+
} else {
|
|
116
|
+
val += this.buildTextValNode(jObj[key], key, '', level);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
} else if (Array.isArray(jObj[key])) {
|
|
120
|
+
//repeated nodes
|
|
121
|
+
const arrLen = jObj[key].length;
|
|
122
|
+
let listTagVal = "";
|
|
123
|
+
let listTagAttr = "";
|
|
124
|
+
for (let j = 0; j < arrLen; j++) {
|
|
125
|
+
const item = jObj[key][j];
|
|
126
|
+
if (typeof item === 'undefined') {
|
|
127
|
+
// supress undefined node
|
|
128
|
+
} else if (item === null) {
|
|
129
|
+
if (key[0] === "?") val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;
|
|
130
|
+
else val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;
|
|
131
|
+
// val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;
|
|
132
|
+
} else if (typeof item === 'object') {
|
|
133
|
+
if (this.options.oneListGroup) {
|
|
134
|
+
const result = this.j2x(item, level + 1, ajPath.concat(key));
|
|
135
|
+
listTagVal += result.val;
|
|
136
|
+
if (this.options.attributesGroupName && item.hasOwnProperty(this.options.attributesGroupName)) {
|
|
137
|
+
listTagAttr += result.attrStr
|
|
138
|
+
}
|
|
139
|
+
} else {
|
|
140
|
+
listTagVal += this.processTextOrObjNode(item, key, level, ajPath)
|
|
141
|
+
}
|
|
142
|
+
} else {
|
|
143
|
+
if (this.options.oneListGroup) {
|
|
144
|
+
let textValue = this.options.tagValueProcessor(key, item);
|
|
145
|
+
textValue = this.replaceEntitiesValue(textValue);
|
|
146
|
+
listTagVal += textValue;
|
|
147
|
+
} else {
|
|
148
|
+
listTagVal += this.buildTextValNode(item, key, '', level);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
if (this.options.oneListGroup) {
|
|
153
|
+
listTagVal = this.buildObjectNode(listTagVal, key, listTagAttr, level);
|
|
154
|
+
}
|
|
155
|
+
val += listTagVal;
|
|
156
|
+
} else {
|
|
157
|
+
//nested node
|
|
158
|
+
if (this.options.attributesGroupName && key === this.options.attributesGroupName) {
|
|
159
|
+
const Ks = Object.keys(jObj[key]);
|
|
160
|
+
const L = Ks.length;
|
|
161
|
+
for (let j = 0; j < L; j++) {
|
|
162
|
+
attrStr += this.buildAttrPairStr(Ks[j], '' + jObj[key][Ks[j]]);
|
|
163
|
+
}
|
|
164
|
+
} else {
|
|
165
|
+
val += this.processTextOrObjNode(jObj[key], key, level, ajPath)
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return { attrStr: attrStr, val: val };
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
Builder.prototype.buildAttrPairStr = function (attrName, val) {
|
|
173
|
+
val = this.options.attributeValueProcessor(attrName, '' + val);
|
|
174
|
+
val = this.replaceEntitiesValue(val);
|
|
175
|
+
if (this.options.suppressBooleanAttributes && val === "true") {
|
|
176
|
+
return ' ' + attrName;
|
|
177
|
+
} else return ' ' + attrName + '="' + val + '"';
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
function processTextOrObjNode(object, key, level, ajPath) {
|
|
181
|
+
const result = this.j2x(object, level + 1, ajPath.concat(key));
|
|
182
|
+
if (object[this.options.textNodeName] !== undefined && Object.keys(object).length === 1) {
|
|
183
|
+
return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);
|
|
184
|
+
} else {
|
|
185
|
+
return this.buildObjectNode(result.val, key, result.attrStr, level);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
Builder.prototype.buildObjectNode = function (val, key, attrStr, level) {
|
|
190
|
+
if (val === "") {
|
|
191
|
+
if (key[0] === "?") return this.indentate(level) + '<' + key + attrStr + '?' + this.tagEndChar;
|
|
192
|
+
else {
|
|
193
|
+
return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;
|
|
194
|
+
}
|
|
195
|
+
} else {
|
|
196
|
+
|
|
197
|
+
let tagEndExp = '</' + key + this.tagEndChar;
|
|
198
|
+
let piClosingChar = "";
|
|
199
|
+
|
|
200
|
+
if (key[0] === "?") {
|
|
201
|
+
piClosingChar = "?";
|
|
202
|
+
tagEndExp = "";
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
// attrStr is an empty string in case the attribute came as undefined or null
|
|
206
|
+
if ((attrStr || attrStr === '') && val.indexOf('<') === -1) {
|
|
207
|
+
return (this.indentate(level) + '<' + key + attrStr + piClosingChar + '>' + val + tagEndExp);
|
|
208
|
+
} else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {
|
|
209
|
+
return this.indentate(level) + `<!--${val}-->` + this.newLine;
|
|
210
|
+
} else {
|
|
211
|
+
return (
|
|
212
|
+
this.indentate(level) + '<' + key + attrStr + piClosingChar + this.tagEndChar +
|
|
213
|
+
val +
|
|
214
|
+
this.indentate(level) + tagEndExp);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
Builder.prototype.closeTag = function (key) {
|
|
220
|
+
let closeTag = "";
|
|
221
|
+
if (this.options.unpairedTags.indexOf(key) !== -1) { //unpaired
|
|
222
|
+
if (!this.options.suppressUnpairedNode) closeTag = "/"
|
|
223
|
+
} else if (this.options.suppressEmptyNode) { //empty
|
|
224
|
+
closeTag = "/";
|
|
225
|
+
} else {
|
|
226
|
+
closeTag = `></${key}`
|
|
227
|
+
}
|
|
228
|
+
return closeTag;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
function buildEmptyObjNode(val, key, attrStr, level) {
|
|
232
|
+
if (val !== '') {
|
|
233
|
+
return this.buildObjectNode(val, key, attrStr, level);
|
|
234
|
+
} else {
|
|
235
|
+
if (key[0] === "?") return this.indentate(level) + '<' + key + attrStr + '?' + this.tagEndChar;
|
|
236
|
+
else {
|
|
237
|
+
return this.indentate(level) + '<' + key + attrStr + '/' + this.tagEndChar;
|
|
238
|
+
// return this.buildTagStr(level,key, attrStr);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
Builder.prototype.buildTextValNode = function (val, key, attrStr, level) {
|
|
244
|
+
if (this.options.cdataPropName !== false && key === this.options.cdataPropName) {
|
|
245
|
+
return this.indentate(level) + `<![CDATA[${val}]]>` + this.newLine;
|
|
246
|
+
} else if (this.options.commentPropName !== false && key === this.options.commentPropName) {
|
|
247
|
+
return this.indentate(level) + `<!--${val}-->` + this.newLine;
|
|
248
|
+
} else if (key[0] === "?") {//PI tag
|
|
249
|
+
return this.indentate(level) + '<' + key + attrStr + '?' + this.tagEndChar;
|
|
250
|
+
} else {
|
|
251
|
+
let textValue = this.options.tagValueProcessor(key, val);
|
|
252
|
+
textValue = this.replaceEntitiesValue(textValue);
|
|
253
|
+
|
|
254
|
+
if (textValue === '') {
|
|
255
|
+
return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;
|
|
256
|
+
} else {
|
|
257
|
+
return this.indentate(level) + '<' + key + attrStr + '>' +
|
|
258
|
+
textValue +
|
|
259
|
+
'</' + key + this.tagEndChar;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
Builder.prototype.replaceEntitiesValue = function (textValue) {
|
|
265
|
+
if (textValue && textValue.length > 0 && this.options.processEntities) {
|
|
266
|
+
for (let i = 0; i < this.options.entities.length; i++) {
|
|
267
|
+
const entity = this.options.entities[i];
|
|
268
|
+
textValue = textValue.replace(entity.regex, entity.val);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return textValue;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
function indentate(level) {
|
|
275
|
+
return this.options.indentBy.repeat(level);
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
function isAttribute(name /*, options*/) {
|
|
279
|
+
if (name.startsWith(this.options.attributeNamePrefix) && name !== this.options.textNodeName) {
|
|
280
|
+
return name.substr(this.attrPrefixLen);
|
|
281
|
+
} else {
|
|
282
|
+
return false;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export default function getIgnoreAttributesFn(ignoreAttributes) {
|
|
2
|
+
if (typeof ignoreAttributes === 'function') {
|
|
3
|
+
return ignoreAttributes
|
|
4
|
+
}
|
|
5
|
+
if (Array.isArray(ignoreAttributes)) {
|
|
6
|
+
return (attrName) => {
|
|
7
|
+
for (const pattern of ignoreAttributes) {
|
|
8
|
+
if (typeof pattern === 'string' && attrName === pattern) {
|
|
9
|
+
return true
|
|
10
|
+
}
|
|
11
|
+
if (pattern instanceof RegExp && pattern.test(attrName)) {
|
|
12
|
+
return true
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return () => false
|
|
18
|
+
}
|
|
@@ -18,10 +18,21 @@ function arrToStr(arr, options, jPath, indentation) {
|
|
|
18
18
|
let xmlStr = "";
|
|
19
19
|
let isPreviousElementTag = false;
|
|
20
20
|
|
|
21
|
+
|
|
22
|
+
if (!Array.isArray(arr)) {
|
|
23
|
+
// Non-array values (e.g. string tag values) should be treated as text content
|
|
24
|
+
if (arr !== undefined && arr !== null) {
|
|
25
|
+
let text = arr.toString();
|
|
26
|
+
text = replaceEntitiesValue(text, options);
|
|
27
|
+
return text;
|
|
28
|
+
}
|
|
29
|
+
return "";
|
|
30
|
+
}
|
|
31
|
+
|
|
21
32
|
for (let i = 0; i < arr.length; i++) {
|
|
22
33
|
const tagObj = arr[i];
|
|
23
34
|
const tagName = propName(tagObj);
|
|
24
|
-
if(tagName === undefined) continue;
|
|
35
|
+
if (tagName === undefined) continue;
|
|
25
36
|
|
|
26
37
|
let newJPath = "";
|
|
27
38
|
if (jPath.length === 0) newJPath = tagName
|
|
@@ -92,7 +103,7 @@ function propName(obj) {
|
|
|
92
103
|
const keys = Object.keys(obj);
|
|
93
104
|
for (let i = 0; i < keys.length; i++) {
|
|
94
105
|
const key = keys[i];
|
|
95
|
-
if(!
|
|
106
|
+
if (!Object.prototype.hasOwnProperty.call(obj, key)) continue;
|
|
96
107
|
if (key !== ":@") return key;
|
|
97
108
|
}
|
|
98
109
|
}
|
|
@@ -101,7 +112,7 @@ function attr_to_str(attrMap, options) {
|
|
|
101
112
|
let attrStr = "";
|
|
102
113
|
if (attrMap && !options.ignoreAttributes) {
|
|
103
114
|
for (let attr in attrMap) {
|
|
104
|
-
if(!
|
|
115
|
+
if (!Object.prototype.hasOwnProperty.call(attrMap, attr)) continue;
|
|
105
116
|
let attrVal = options.attributeValueProcessor(attr, attrMap[attr]);
|
|
106
117
|
attrVal = replaceEntitiesValue(attrVal, options);
|
|
107
118
|
if (attrVal === true && options.suppressBooleanAttributes) {
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"constructs": ">=10.0.5 <11.0.0"
|
|
70
70
|
},
|
|
71
71
|
"dependencies": {
|
|
72
|
-
"@aws-sdk/client-cloudformation": "^3.
|
|
72
|
+
"@aws-sdk/client-cloudformation": "^3.1002.0",
|
|
73
73
|
"@types/crypto-js": "^4.2.2",
|
|
74
74
|
"@types/js-yaml": "^4.0.9",
|
|
75
75
|
"crypto-js": "^4.2.0",
|
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
"publishConfig": {
|
|
111
111
|
"access": "public"
|
|
112
112
|
},
|
|
113
|
-
"version": "1.9.
|
|
113
|
+
"version": "1.9.3",
|
|
114
114
|
"jest": {
|
|
115
115
|
"coverageProvider": "v8",
|
|
116
116
|
"testMatch": [
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { join, normalize, sep } from "node:path";
|
|
2
|
-
export const getTypeScriptPackageJsonPath = (dirname = "") => {
|
|
3
|
-
let nodeModulesPath;
|
|
4
|
-
const normalizedPath = normalize(dirname);
|
|
5
|
-
const parts = normalizedPath.split(sep);
|
|
6
|
-
const nodeModulesIndex = parts.indexOf("node_modules");
|
|
7
|
-
if (nodeModulesIndex !== -1) {
|
|
8
|
-
nodeModulesPath = parts.slice(0, nodeModulesIndex).join(sep);
|
|
9
|
-
}
|
|
10
|
-
else {
|
|
11
|
-
nodeModulesPath = dirname;
|
|
12
|
-
}
|
|
13
|
-
return join(nodeModulesPath, "node_modules", "typescript", "package.json");
|
|
14
|
-
};
|
package/node_modules/@aws-sdk/util-user-agent-node/dist-types/getTypeScriptPackageJsonPath.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Returns the path to the TypeScript package.json file relative to the given directory.
|
|
3
|
-
*
|
|
4
|
-
* @param dirname - The directory path to resolve from.
|
|
5
|
-
* @returns The path to the TypeScript package.json file.
|
|
6
|
-
*
|
|
7
|
-
* @internal
|
|
8
|
-
*/
|
|
9
|
-
export declare const getTypeScriptPackageJsonPath: (dirname?: string) => string;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const getTypeScriptPackageJsonPath: (dirname?: string) => string;
|