@cdk8s/awscdk-resolver 0.0.609 → 0.0.611

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/.jsii +3 -3
  2. package/lib/resolve.js +1 -1
  3. package/node_modules/@aws-sdk/client-cloudformation/package.json +3 -3
  4. package/node_modules/@aws-sdk/core/package.json +2 -2
  5. package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
  6. package/node_modules/@aws-sdk/credential-provider-http/package.json +2 -2
  7. package/node_modules/@aws-sdk/credential-provider-ini/package.json +9 -9
  8. package/node_modules/@aws-sdk/credential-provider-login/package.json +3 -3
  9. package/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
  10. package/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
  11. package/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
  12. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
  13. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +1 -1
  14. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +1 -1
  15. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +1 -1
  16. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +1 -1
  17. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +1 -1
  18. package/node_modules/@aws-sdk/nested-clients/package.json +2 -2
  19. package/node_modules/@aws-sdk/token-providers/package.json +3 -3
  20. package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.browser.js +1 -1
  21. package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.js +233 -43
  22. package/node_modules/@aws-sdk/xml-builder/dist-es/xml-parser.browser.js +1 -1
  23. package/node_modules/@aws-sdk/xml-builder/dist-es/xml-parser.js +233 -43
  24. package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/xml-parser.d.ts +1 -1
  25. package/node_modules/@aws-sdk/xml-builder/dist-types/xml-parser.d.ts +2 -1
  26. package/node_modules/@aws-sdk/xml-builder/package.json +4 -4
  27. package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +518 -371
  28. package/node_modules/@smithy/core/dist-cjs/submodules/client/index.js +1 -1
  29. package/node_modules/@smithy/core/dist-es/submodules/cbor/cbor-decode.js +326 -269
  30. package/node_modules/@smithy/core/dist-es/submodules/cbor/cbor-encode.js +192 -103
  31. package/node_modules/@smithy/core/dist-es/submodules/cbor/cbor.js +4 -2
  32. package/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/get-value-from-text-node.js +1 -1
  33. package/node_modules/@smithy/core/dist-types/submodules/cbor/cbor-decode.d.ts +4 -0
  34. package/node_modules/@smithy/core/dist-types/submodules/cbor/cbor-encode.d.ts +8 -4
  35. package/node_modules/@smithy/core/package.json +1 -1
  36. package/node_modules/@smithy/credential-provider-imds/package.json +2 -2
  37. package/node_modules/@smithy/fetch-http-handler/package.json +2 -2
  38. package/node_modules/@smithy/node-http-handler/package.json +2 -2
  39. package/node_modules/@smithy/signature-v4/package.json +2 -2
  40. package/package.json +9 -9
  41. package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-external/nodable_entities.js +0 -333
  42. package/node_modules/@aws-sdk/xml-builder/dist-es/xml-external/nodable_entities.js +0 -332
  43. package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/xml-external/nodable_entities.d.ts +0 -66
  44. package/node_modules/@aws-sdk/xml-builder/dist-types/xml-external/nodable_entities.d.ts +0 -65
  45. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/CHANGELOG.md +0 -827
  46. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/LICENSE +0 -21
  47. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/README.md +0 -202
  48. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxbuilder.min.js +0 -2
  49. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxbuilder.min.js.map +0 -1
  50. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.cjs +0 -1
  51. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.d.cts +0 -770
  52. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.min.js +0 -2
  53. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.min.js.map +0 -1
  54. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxparser.min.js +0 -2
  55. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxparser.min.js.map +0 -1
  56. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxvalidator.min.js +0 -2
  57. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxvalidator.min.js.map +0 -1
  58. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/package.json +0 -93
  59. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/cli/cli.js +0 -97
  60. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/cli/man.js +0 -17
  61. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/cli/read.js +0 -43
  62. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/fxp.d.ts +0 -739
  63. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/fxp.js +0 -14
  64. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/ignoreAttributes.js +0 -18
  65. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/util.js +0 -61
  66. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/CharsSymbol.js +0 -16
  67. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/EntitiesParser.js +0 -106
  68. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OptionsBuilder.js +0 -61
  69. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OutputBuilders/BaseOutputBuilder.js +0 -69
  70. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OutputBuilders/JsArrBuilder.js +0 -103
  71. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OutputBuilders/JsMinArrBuilder.js +0 -100
  72. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OutputBuilders/JsObjBuilder.js +0 -154
  73. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OutputBuilders/ParserOptionsBuilder.js +0 -94
  74. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/Report.js +0 -0
  75. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/TagPath.js +0 -81
  76. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/TagPathMatcher.js +0 -13
  77. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/XMLParser.js +0 -83
  78. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/Xml2JsParser.js +0 -235
  79. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/XmlPartReader.js +0 -210
  80. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/XmlSpecialTagsReader.js +0 -111
  81. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/inputSource/BufferSource.js +0 -116
  82. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/inputSource/StringSource.js +0 -121
  83. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/EntitiesParser.js +0 -105
  84. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/booleanParser.js +0 -22
  85. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/booleanParserExt.js +0 -19
  86. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/currency.js +0 -38
  87. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/join.js +0 -13
  88. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/number.js +0 -14
  89. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/trim.js +0 -6
  90. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/validator.js +0 -425
  91. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js +0 -6
  92. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js +0 -407
  93. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js +0 -163
  94. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js +0 -840
  95. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js +0 -71
  96. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/node2json.js +0 -177
  97. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/xmlNode.js +0 -40
  98. package/node_modules/@nodable/entities/README.md +0 -41
  99. package/node_modules/@nodable/entities/package.json +0 -57
  100. package/node_modules/@nodable/entities/src/EntityDecoder.js +0 -644
  101. package/node_modules/@nodable/entities/src/EntityEncoder.js +0 -194
  102. package/node_modules/@nodable/entities/src/entities.js +0 -1159
  103. package/node_modules/@nodable/entities/src/entityTries.js +0 -49
  104. package/node_modules/@nodable/entities/src/index.d.ts +0 -341
  105. package/node_modules/@nodable/entities/src/index.js +0 -29
  106. package/node_modules/anynum/LICENSE +0 -21
  107. package/node_modules/anynum/README.md +0 -142
  108. package/node_modules/anynum/anynum.js +0 -135
  109. package/node_modules/anynum/digitTable.js +0 -116
  110. package/node_modules/anynum/package.json +0 -42
  111. package/node_modules/fast-xml-builder/CHANGELOG.md +0 -40
  112. package/node_modules/fast-xml-builder/LICENSE +0 -21
  113. package/node_modules/fast-xml-builder/README.md +0 -74
  114. package/node_modules/fast-xml-builder/lib/fxb.cjs +0 -1
  115. package/node_modules/fast-xml-builder/lib/fxb.d.cts +0 -270
  116. package/node_modules/fast-xml-builder/lib/fxb.min.js +0 -2
  117. package/node_modules/fast-xml-builder/lib/fxb.min.js.map +0 -1
  118. package/node_modules/fast-xml-builder/package.json +0 -81
  119. package/node_modules/fast-xml-builder/src/fxb.d.ts +0 -270
  120. package/node_modules/fast-xml-builder/src/fxb.js +0 -599
  121. package/node_modules/fast-xml-builder/src/ignoreAttributes.js +0 -18
  122. package/node_modules/fast-xml-builder/src/orderedJs2Xml.js +0 -359
  123. package/node_modules/fast-xml-builder/src/prettifyJs2Xml.js +0 -0
  124. package/node_modules/fast-xml-builder/src/util.js +0 -16
  125. package/node_modules/path-expression-matcher/LICENSE +0 -21
  126. package/node_modules/path-expression-matcher/README.md +0 -947
  127. package/node_modules/path-expression-matcher/lib/pem.cjs +0 -1
  128. package/node_modules/path-expression-matcher/lib/pem.d.cts +0 -715
  129. package/node_modules/path-expression-matcher/lib/pem.min.js +0 -2
  130. package/node_modules/path-expression-matcher/lib/pem.min.js.map +0 -1
  131. package/node_modules/path-expression-matcher/package.json +0 -79
  132. package/node_modules/path-expression-matcher/src/Expression.js +0 -232
  133. package/node_modules/path-expression-matcher/src/ExpressionSet.js +0 -225
  134. package/node_modules/path-expression-matcher/src/Matcher.js +0 -660
  135. package/node_modules/path-expression-matcher/src/index.d.ts +0 -589
  136. package/node_modules/path-expression-matcher/src/index.js +0 -29
  137. package/node_modules/strnum/CHANGELOG.md +0 -51
  138. package/node_modules/strnum/LICENSE +0 -21
  139. package/node_modules/strnum/README.md +0 -113
  140. package/node_modules/strnum/package.json +0 -36
  141. package/node_modules/strnum/strnum.js +0 -171
  142. package/node_modules/xml-naming/README.md +0 -189
  143. package/node_modules/xml-naming/package.json +0 -54
  144. package/node_modules/xml-naming/src/index.d.ts +0 -74
  145. package/node_modules/xml-naming/src/index.js +0 -270
@@ -1,14 +0,0 @@
1
- 'use strict';
2
-
3
- import { validate } from './validator.js';
4
- import XMLParser from './xmlparser/XMLParser.js';
5
- import XMLBuilder from './xmlbuilder/json2xml.js';
6
-
7
- const XMLValidator = {
8
- validate: validate
9
- }
10
- export {
11
- XMLParser,
12
- XMLValidator,
13
- XMLBuilder
14
- };
@@ -1,18 +0,0 @@
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
- }
@@ -1,61 +0,0 @@
1
- 'use strict';
2
-
3
- const nameStartChar = ':A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD';
4
- const nameChar = nameStartChar + '\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040';
5
- export const nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*';
6
- const regexName = new RegExp('^' + nameRegexp + '$');
7
-
8
- export function getAllMatches(string, regex) {
9
- const matches = [];
10
- let match = regex.exec(string);
11
- while (match) {
12
- const allmatches = [];
13
- allmatches.startIndex = regex.lastIndex - match[0].length;
14
- const len = match.length;
15
- for (let index = 0; index < len; index++) {
16
- allmatches.push(match[index]);
17
- }
18
- matches.push(allmatches);
19
- match = regex.exec(string);
20
- }
21
- return matches;
22
- }
23
-
24
- export const isName = function (string) {
25
- const match = regexName.exec(string);
26
- return !(match === null || typeof match === 'undefined');
27
- }
28
-
29
- export function isExist(v) {
30
- return typeof v !== 'undefined';
31
- }
32
-
33
- export function isEmptyObject(obj) {
34
- return Object.keys(obj).length === 0;
35
- }
36
-
37
- export function getValue(v) {
38
- if (exports.isExist(v)) {
39
- return v;
40
- } else {
41
- return '';
42
- }
43
- }
44
-
45
- /**
46
- * Dangerous property names that could lead to prototype pollution or security issues
47
- */
48
- export const DANGEROUS_PROPERTY_NAMES = [
49
- // '__proto__',
50
- // 'constructor',
51
- // 'prototype',
52
- 'hasOwnProperty',
53
- 'toString',
54
- 'valueOf',
55
- '__defineGetter__',
56
- '__defineSetter__',
57
- '__lookupGetter__',
58
- '__lookupSetter__'
59
- ];
60
-
61
- export const criticalProperties = ["__proto__", "constructor", "prototype"];
@@ -1,16 +0,0 @@
1
- export default {
2
- "<" : "<", //tag start
3
- ">" : ">", //tag end
4
- "/" : "/", //close tag
5
- "!" : "!", //comment or docttype
6
- "!--" : "!--", //comment
7
- "-->" : "-->", //comment end
8
- "?" : "?", //pi
9
- "?>" : "?>", //pi end
10
- "?xml" : "?xml", //pi end
11
- "![" : "![", //cdata
12
- "]]>" : "]]>", //cdata end
13
- "[" : "[",
14
- "-" : "-",
15
- "D" : "D",
16
- }
@@ -1,106 +0,0 @@
1
- const ampEntity = { regex: /&(amp|#38|#x26);/g, val: "&" };
2
- const htmlEntities = {
3
- "space": { regex: /&(nbsp|#160);/g, val: " " },
4
- // "lt" : { regex: /&(lt|#60);/g, val: "<" },
5
- // "gt" : { regex: /&(gt|#62);/g, val: ">" },
6
- // "amp" : { regex: /&(amp|#38);/g, val: "&" },
7
- // "quot" : { regex: /&(quot|#34);/g, val: "\"" },
8
- // "apos" : { regex: /&(apos|#39);/g, val: "'" },
9
- "cent": { regex: /&(cent|#162);/g, val: "¢" },
10
- "pound": { regex: /&(pound|#163);/g, val: "£" },
11
- "yen": { regex: /&(yen|#165);/g, val: "¥" },
12
- "euro": { regex: /&(euro|#8364);/g, val: "€" },
13
- "copyright": { regex: /&(copy|#169);/g, val: "©" },
14
- "reg": { regex: /&(reg|#174);/g, val: "®" },
15
- "inr": { regex: /&(inr|#8377);/g, val: "₹" },
16
- "num_dec": { regex: /&#([0-9]{1,7});/g, val: (_, str) => String.fromCodePoint(Number.parseInt(str, 10)) },
17
- "num_hex": { regex: /&#x([0-9a-fA-F]{1,6});/g, val: (_, str) => String.fromCodePoint(Number.parseInt(str, 16)) },
18
- };
19
- export default class EntitiesParser {
20
- constructor(replaceHtmlEntities) {
21
- this.replaceHtmlEntities = replaceHtmlEntities;
22
- this.docTypeEntities = {};
23
- this.lastEntities = {
24
- "apos": { regex: /&(apos|#39|#x27);/g, val: "'" },
25
- "gt": { regex: /&(gt|#62|#x3E);/g, val: ">" },
26
- "lt": { regex: /&(lt|#60|#x3C);/g, val: "<" },
27
- "quot": { regex: /&(quot|#34|#x22);/g, val: "\"" },
28
- };
29
- }
30
-
31
- addExternalEntities(externalEntities) {
32
- const entKeys = Object.keys(externalEntities);
33
- for (let i = 0; i < entKeys.length; i++) {
34
- const ent = entKeys[i];
35
- this.addExternalEntity(ent, externalEntities[ent])
36
- }
37
- }
38
- addExternalEntity(key, val) {
39
- validateEntityName(key);
40
- const escaped = key.replace(/[.\-+*:]/g, '\\.');
41
- if (val.indexOf("&") !== -1) {
42
- reportWarning(`Entity ${key} is not added as '&' is found in value;`)
43
- return;
44
- } else {
45
- this.lastEntities[key] = {
46
- regex: new RegExp("&" + escaped + ";", "g"),
47
- val: val
48
- }
49
- }
50
- }
51
-
52
- addDocTypeEntities(entities) {
53
- const entKeys = Object.keys(entities);
54
- for (let i = 0; i < entKeys.length; i++) {
55
- const ent = entKeys[i];
56
- const escaped = ent.replace(/[.\-+*:]/g, '\\.');
57
- this.docTypeEntities[ent] = {
58
- regex: new RegExp("&" + escaped + ";", "g"),
59
- val: entities[ent]
60
- }
61
- }
62
- }
63
-
64
- parse(val) {
65
- return this.replaceEntitiesValue(val)
66
- }
67
-
68
- /**
69
- * 1. Replace DOCTYPE entities
70
- * 2. Replace external entities
71
- * 3. Replace HTML entities if asked
72
- * @param {string} val
73
- */
74
- replaceEntitiesValue(val) {
75
- if (typeof val === "string" && val.length > 0) {
76
- for (let entityName in this.docTypeEntities) {
77
- const entity = this.docTypeEntities[entityName];
78
- val = val.replace(entity.regx, entity.val);
79
- }
80
- for (let entityName in this.lastEntities) {
81
- const entity = this.lastEntities[entityName];
82
- val = val.replace(entity.regex, entity.val);
83
- }
84
- if (this.replaceHtmlEntities) {
85
- for (let entityName in htmlEntities) {
86
- const entity = htmlEntities[entityName];
87
- val = val.replace(entity.regex, entity.val);
88
- }
89
- }
90
- val = val.replace(ampEntity.regex, ampEntity.val);
91
- }
92
- return val;
93
- }
94
- }
95
-
96
- //an entity name should not contains special characters that may be used in regex
97
- //Eg !?\\\/[]$%{}^&*()<>
98
- const specialChar = "!?\\/[]$%{}^&*()<>|+";
99
-
100
- function validateEntityName(name) {
101
- for (let i = 0; i < specialChar.length; i++) {
102
- const ch = specialChar[i];
103
- if (name.indexOf(ch) !== -1) throw new Error(`Invalid character ${ch} in entity name`);
104
- }
105
- return name;
106
- }
@@ -1,61 +0,0 @@
1
-
2
- import { JsObjOutputBuilder } from './OutputBuilders/JsObjBuilder.js';
3
-
4
- export const defaultOptions = {
5
- preserveOrder: false,
6
- removeNSPrefix: false, // remove NS from tag name or attribute name if true
7
- //ignoreRootElement : false,
8
- stopNodes: [], //nested tags will not be parsed even for errors
9
- // isArray: () => false, //User will set it
10
- htmlEntities: false,
11
- // skipEmptyListItem: false
12
- tags: {
13
- unpaired: [],
14
- nameFor: {
15
- cdata: false,
16
- comment: false,
17
- text: '#text'
18
- },
19
- separateTextProperty: false,
20
- },
21
- attributes: {
22
- ignore: false,
23
- booleanType: true,
24
- entities: true,
25
- },
26
-
27
- // select: ["img[src]"],
28
- // stop: ["anim", "[ads]"]
29
- only: [], // rest tags will be skipped. It will result in flat array
30
- hierarchy: false, //will be used when a particular tag is set to be parsed.
31
- skip: [], // will be skipped from parse result. on('skip') will be triggered
32
-
33
- select: [], // on('select', tag => tag ) will be called if match
34
- stop: [], //given tagPath will not be parsed. innerXML will be set as string value
35
- OutputBuilder: new JsObjOutputBuilder(),
36
- };
37
-
38
- export const buildOptions = function (options) {
39
- const finalOptions = { ...defaultOptions };
40
- copyProperties(finalOptions, options)
41
- return finalOptions;
42
- };
43
-
44
- function copyProperties(target, source) {
45
- for (let key in source) {
46
- if (Object.prototype.hasOwnProperty.call(source, key)) {
47
- if (key === 'OutputBuilder') {
48
- target[key] = source[key];
49
- } else if (typeof source[key] === 'object' && !Array.isArray(source[key])) {
50
- // Recursively copy nested properties
51
- if (typeof target[key] === 'undefined') {
52
- target[key] = {};
53
- }
54
- copyProperties(target[key], source[key]);
55
- } else {
56
- // Copy non-nested properties
57
- target[key] = source[key];
58
- }
59
- }
60
- }
61
- }
@@ -1,69 +0,0 @@
1
- export default class BaseOutputBuilder {
2
- constructor() {
3
- // this.attributes = {};
4
- }
5
-
6
- addAttribute(name, value) {
7
- if (this.options.onAttribute) {
8
- //TODO: better to pass tag path
9
- const v = this.options.onAttribute(name, value, this.tagName);
10
- if (v) this.attributes[v.name] = v.value;
11
- } else {
12
- name = this.options.attributes.prefix + name + this.options.attributes.suffix;
13
- this.attributes[name] = this.parseValue(value, this.options.attributes.valueParsers);
14
- }
15
- }
16
-
17
- /**
18
- * parse value by chain of parsers
19
- * @param {string} val
20
- * @returns {any} parsed value if matching parser found
21
- */
22
- parseValue = function (val, valParsers) {
23
- for (let i = 0; i < valParsers.length; i++) {
24
- let valParser = valParsers[i];
25
- if (typeof valParser === "string") {
26
- valParser = this.registeredParsers[valParser];
27
- }
28
- if (valParser) {
29
- val = valParser.parse(val);
30
- }
31
- }
32
- return val;
33
- }
34
-
35
- /**
36
- * To add a nested empty tag.
37
- * @param {string} key
38
- * @param {any} val
39
- */
40
- _addChild(key, val) { }
41
-
42
- /**
43
- * skip the comment if property is not set
44
- */
45
- addComment(text) {
46
- if (this.options.nameFor.comment)
47
- this._addChild(this.options.nameFor.comment, text);
48
- }
49
-
50
- //store CDATA separately if property is set
51
- //otherwise add to tag's value
52
- addCdata(text) {
53
- if (this.options.nameFor.cdata) {
54
- this._addChild(this.options.nameFor.cdata, text);
55
- } else {
56
- this.addRawValue(text || "");
57
- }
58
- }
59
-
60
- addRawValue = text => this.addValue(text);
61
-
62
- addDeclaration() {
63
- if (!this.options.declaration) {
64
- } else {
65
- this.addPi("?xml");
66
- }
67
- this.attributes = {}
68
- }
69
- }
@@ -1,103 +0,0 @@
1
- import { buildOptions, registerCommonValueParsers } from './ParserOptionsBuilder.js';
2
-
3
- export default class OutputBuilder {
4
- constructor(options) {
5
- this.options = buildOptions(options);
6
- this.registeredParsers = registerCommonValueParsers(this.options);
7
- }
8
-
9
- registerValueParser(name, parserInstance) {//existing name will override the parser without warning
10
- this.registeredParsers[name] = parserInstance;
11
- }
12
-
13
- getInstance(parserOptions) {
14
- return new JsArrBuilder(parserOptions, this.options, this.registeredParsers);
15
- }
16
- }
17
-
18
- const rootName = '!js_arr';
19
- import BaseOutputBuilder from './BaseOutputBuilder.js';
20
-
21
- class JsArrBuilder extends BaseOutputBuilder {
22
-
23
- constructor(parserOptions, options, registeredParsers) {
24
- super();
25
- this.tagsStack = [];
26
- this.parserOptions = parserOptions;
27
- this.options = options;
28
- this.registeredParsers = registeredParsers;
29
-
30
- this.root = new Node(rootName);
31
- this.currentNode = this.root;
32
- this.attributes = {};
33
- }
34
-
35
- addTag(tag) {
36
- //when a new tag is added, it should be added as child of current node
37
- //TODO: shift this check to the parser
38
- if (tag.name === "__proto__") tag.name = "#__proto__";
39
-
40
- this.tagsStack.push(this.currentNode);
41
- this.currentNode = new Node(tag.name, this.attributes);
42
- this.attributes = {};
43
- }
44
-
45
- /**
46
- * Check if the node should be added by checking user's preference
47
- * @param {Node} node
48
- * @returns boolean: true if the node should not be added
49
- */
50
- closeTag() {
51
- const node = this.currentNode;
52
- this.currentNode = this.tagsStack.pop(); //set parent node in scope
53
- if (this.options.onClose !== undefined) {
54
- //TODO TagPathMatcher
55
- const resultTag = this.options.onClose(node,
56
- new TagPathMatcher(this.tagsStack, node));
57
-
58
- if (resultTag) return;
59
- }
60
- this.currentNode.child.push(node); //to parent node
61
- }
62
-
63
- //Called by parent class methods
64
- _addChild(key, val) {
65
- // if(key === "__proto__") tagName = "#__proto__";
66
- this.currentNode.child.push({ [key]: val });
67
- // this.currentNode.leafType = false;
68
- }
69
-
70
- /**
71
- * Add text value child node
72
- * @param {string} text
73
- */
74
- addValue(text) {
75
- this.currentNode.child.push({ [this.options.nameFor.text]: this.parseValue(text, this.options.tags.valueParsers) });
76
- }
77
-
78
- addPi(name) {
79
- //TODO: set pi flag
80
- if (!this.options.ignorePiTags) {
81
- const node = new Node(name, this.attributes);
82
- this.currentNode[":@"] = this.attributes;
83
- this.currentNode.child.push(node);
84
- }
85
- this.attributes = {};
86
- }
87
- getOutput() {
88
- return this.root.child[0];
89
- }
90
- }
91
-
92
-
93
-
94
- class Node {
95
- constructor(tagname, attributes) {
96
- this.tagname = tagname;
97
- this.child = []; //nested tags, text, cdata, comments
98
- if (attributes && Object.keys(attributes).length > 0)
99
- this[":@"] = attributes;
100
- }
101
- }
102
-
103
- module.exports = OutputBuilder;
@@ -1,100 +0,0 @@
1
- import {buildOptions,registerCommonValueParsers} from"./ParserOptionsBuilder.js";
2
-
3
- export default class OutputBuilder{
4
- constructor(options){
5
- this.options = buildOptions(options);
6
- this.registeredParsers = registerCommonValueParsers(this.options);
7
- }
8
-
9
- registerValueParser(name,parserInstance){//existing name will override the parser without warning
10
- this.registeredParsers[name] = parserInstance;
11
- }
12
-
13
- getInstance(parserOptions){
14
- return new JsMinArrBuilder(parserOptions, this.options, this.registeredParsers);
15
- }
16
- }
17
-
18
- import BaseOutputBuilder from "./BaseOutputBuilder.js";
19
- const rootName = '^';
20
-
21
- class JsMinArrBuilder extends BaseOutputBuilder{
22
-
23
- constructor(parserOptions, options,registeredParsers) {
24
- super();
25
- this.tagsStack = [];
26
- this.parserOptions = parserOptions;
27
- this.options = options;
28
- this.registeredParsers = registeredParsers;
29
-
30
- this.root = {[rootName]: []};
31
- this.currentNode = this.root;
32
- this.currentNodeTagName = rootName;
33
- this.attributes = {};
34
- }
35
-
36
- addTag(tag){
37
- //when a new tag is added, it should be added as child of current node
38
- //TODO: shift this check to the parser
39
- if(tag.name === "__proto__") tag.name = "#__proto__";
40
-
41
- this.tagsStack.push([this.currentNodeTagName,this.currentNode]); //this.currentNode is parent node here
42
- this.currentNodeTagName = tag.name;
43
- this.currentNode = { [tag.name]:[]}
44
- if(Object.keys(this.attributes).length > 0){
45
- this.currentNode[":@"] = this.attributes;
46
- this.attributes = {};
47
- }
48
- }
49
-
50
- /**
51
- * Check if the node should be added by checking user's preference
52
- * @param {Node} node
53
- * @returns boolean: true if the node should not be added
54
- */
55
- closeTag(){
56
- const node = this.currentNode;
57
- const nodeName = this.currentNodeTagName;
58
- const arr = this.tagsStack.pop(); //set parent node in scope
59
- this.currentNodeTagName = arr[0];
60
- this.currentNode = arr[1];
61
-
62
- if(this.options.onClose !== undefined){
63
- //TODO TagPathMatcher
64
- const resultTag = this.options.onClose(node,
65
- new TagPathMatcher(this.tagsStack,node));
66
-
67
- if(resultTag) return;
68
- }
69
- this.currentNode[this.currentNodeTagName].push(node); //to parent node
70
- }
71
-
72
- //Called by parent class methods
73
- _addChild(key, val){
74
- // if(key === "__proto__") tagName = "#__proto__";
75
- this.currentNode.push( {[key]: val });
76
- // this.currentNode.leafType = false;
77
- }
78
-
79
- /**
80
- * Add text value child node
81
- * @param {string} text
82
- */
83
- addValue(text){
84
- this.currentNode[this.currentNodeTagName].push( {[this.options.nameFor.text]: this.parseValue(text, this.options.tags.valueParsers) });
85
- }
86
-
87
- addPi(name){
88
- if(!this.options.ignorePiTags){
89
- const node = { [name]:[]}
90
- if(this.attributes){
91
- node[":@"] = this.attributes;
92
- }
93
- this.currentNode.push(node);
94
- }
95
- this.attributes = {};
96
- }
97
- getOutput(){
98
- return this.root[rootName];
99
- }
100
- }