@cdklabs/cdk-ssm-documents 0.0.66 → 0.0.67

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 (358) hide show
  1. package/.jsii +13 -13
  2. package/lib/construct/synth-utils.js +1 -1
  3. package/lib/document/automation-document.js +1 -1
  4. package/lib/document/command-document.js +1 -1
  5. package/lib/document/document-builder.js +2 -2
  6. package/lib/document/ssm-document.js +1 -1
  7. package/lib/domain/aws-service.js +1 -1
  8. package/lib/domain/choice.js +1 -1
  9. package/lib/domain/data-type.js +1 -1
  10. package/lib/domain/enum/install-action.js +2 -2
  11. package/lib/domain/enum/install-uninstall-repair.js +2 -2
  12. package/lib/domain/enum/installation-type.js +2 -2
  13. package/lib/domain/enum/package-name.js +2 -2
  14. package/lib/domain/input.js +1 -1
  15. package/lib/domain/operation.js +1 -1
  16. package/lib/domain/platform.js +1 -1
  17. package/lib/domain/precondition.js +1 -1
  18. package/lib/incident-response/incident-response.js +3 -3
  19. package/lib/interface/approve-hook.js +2 -2
  20. package/lib/interface/auth-method.js +3 -3
  21. package/lib/interface/aws-invoker.js +2 -2
  22. package/lib/interface/downloadable-content.js +8 -8
  23. package/lib/interface/environment.js +3 -3
  24. package/lib/interface/execute-automation-hook/api-execute-automation-hook.js +1 -1
  25. package/lib/interface/observer.js +1 -1
  26. package/lib/interface/on-failure.js +6 -6
  27. package/lib/interface/pause-hook.js +2 -2
  28. package/lib/interface/run-command-hook/api-run-command-hook.js +1 -1
  29. package/lib/interface/run-document-location.js +2 -2
  30. package/lib/interface/sleep-hook.js +2 -2
  31. package/lib/interface/step-ref.js +1 -1
  32. package/lib/interface/variables/boolean-variable.js +2 -2
  33. package/lib/interface/variables/map-list-variable.js +2 -2
  34. package/lib/interface/variables/number-variable.js +2 -2
  35. package/lib/interface/variables/secure-string-variable.js +4 -4
  36. package/lib/interface/variables/string-list-variable.js +2 -2
  37. package/lib/interface/variables/string-map-variable.js +2 -2
  38. package/lib/interface/variables/string-variable.js +4 -4
  39. package/lib/interface/variables/variable.js +2 -2
  40. package/lib/interface/webhook.js +1 -1
  41. package/lib/parent-steps/automation/approve-step.js +1 -1
  42. package/lib/parent-steps/automation/assert-aws-resource-step.js +1 -1
  43. package/lib/parent-steps/automation/aws-api-step.js +1 -1
  44. package/lib/parent-steps/automation/branch-step.js +1 -1
  45. package/lib/parent-steps/automation/change-instance-state-step.js +3 -3
  46. package/lib/parent-steps/automation/copy-image-step.js +1 -1
  47. package/lib/parent-steps/automation/create-image-step.js +1 -1
  48. package/lib/parent-steps/automation/create-stack-step.js +3 -3
  49. package/lib/parent-steps/automation/create-tags-step.js +3 -3
  50. package/lib/parent-steps/automation/delete-image-step.js +1 -1
  51. package/lib/parent-steps/automation/delete-stack-step.js +1 -1
  52. package/lib/parent-steps/automation/execute-automation-step.js +1 -1
  53. package/lib/parent-steps/automation/execute-script-step.js +5 -5
  54. package/lib/parent-steps/automation/execute-state-machine-step.js +1 -1
  55. package/lib/parent-steps/automation/invoke-lambda-function-step.js +1 -1
  56. package/lib/parent-steps/automation/invoke-webhook-step.js +1 -1
  57. package/lib/parent-steps/automation/pause-step.js +1 -1
  58. package/lib/parent-steps/automation/run-command-step.js +3 -3
  59. package/lib/parent-steps/automation/run-instance-step.js +1 -1
  60. package/lib/parent-steps/automation/sleep-step.js +1 -1
  61. package/lib/parent-steps/automation/update-variable.js +1 -1
  62. package/lib/parent-steps/automation/wait-for-resource-step.js +1 -1
  63. package/lib/parent-steps/automation-step.js +1 -1
  64. package/lib/parent-steps/command/applications-step.js +1 -1
  65. package/lib/parent-steps/command/configure-docker-step.js +1 -1
  66. package/lib/parent-steps/command/configure-package-step.js +1 -1
  67. package/lib/parent-steps/command/domain-join-step.js +1 -1
  68. package/lib/parent-steps/command/download-content-step.js +1 -1
  69. package/lib/parent-steps/command/ps-module-step.js +1 -1
  70. package/lib/parent-steps/command/run-docker-action-step.js +1 -1
  71. package/lib/parent-steps/command/run-document-step.js +1 -1
  72. package/lib/parent-steps/command/run-powershell-script-step.js +1 -1
  73. package/lib/parent-steps/command/run-shell-script-step.js +1 -1
  74. package/lib/parent-steps/command/software-inventory-step.js +1 -1
  75. package/lib/parent-steps/command/update-agent-step.js +1 -1
  76. package/lib/parent-steps/command/update-ssm-agent-step.js +1 -1
  77. package/lib/parent-steps/command-step.js +1 -1
  78. package/lib/parent-steps/step.js +1 -1
  79. package/lib/patterns/automation/composite-step.js +2 -2
  80. package/lib/patterns/automation/reboot-instance-and-wait.js +1 -1
  81. package/lib/patterns/automation/string-step.js +1 -1
  82. package/lib/patterns/document/string-document.js +1 -1
  83. package/lib/patterns/document/timed-document.js +1 -1
  84. package/lib/samples/hello-world.js +1 -1
  85. package/lib/simulation/automation/approve-simulation.js +1 -1
  86. package/lib/simulation/automation/assert-aws-resource-simulation.js +1 -1
  87. package/lib/simulation/automation/automation-simulation-base.js +1 -1
  88. package/lib/simulation/automation/aws-api-simulation.js +1 -1
  89. package/lib/simulation/automation/branch-simulation.js +1 -1
  90. package/lib/simulation/automation/change-instance-state-simulation.js +1 -1
  91. package/lib/simulation/automation/copy-image-simulation.js +1 -1
  92. package/lib/simulation/automation/create-image-simulation.js +1 -1
  93. package/lib/simulation/automation/create-stack-simulation.js +1 -1
  94. package/lib/simulation/automation/create-tags-simulation.js +1 -1
  95. package/lib/simulation/automation/delete-image-simulation.js +1 -1
  96. package/lib/simulation/automation/delete-stack-simulation.js +1 -1
  97. package/lib/simulation/automation/execute-script-simulation.js +1 -1
  98. package/lib/simulation/automation/execute-state-machine-simulation.js +1 -1
  99. package/lib/simulation/automation/invoke-lambda-function-simulation.js +1 -1
  100. package/lib/simulation/automation/invoke-webhook-simulation.js +1 -1
  101. package/lib/simulation/automation/pause-simulation.js +1 -1
  102. package/lib/simulation/automation/run-command-simulation.js +1 -1
  103. package/lib/simulation/automation/run-instance-simulation.js +1 -1
  104. package/lib/simulation/automation/sleep-simulation.js +1 -1
  105. package/lib/simulation/automation/update-variable-simulation.js +1 -1
  106. package/lib/simulation/automation/wait-for-resource-simulation.js +1 -1
  107. package/lib/simulation/automation-step-simulation.js +1 -1
  108. package/lib/simulation/command/command-simulation-base.js +1 -1
  109. package/lib/simulation/command/ps-module-simulation.js +1 -1
  110. package/lib/simulation/command/run-powershell-script-simulation.js +1 -1
  111. package/lib/simulation/command/run-shell-script-simulation.js +1 -1
  112. package/lib/simulation/command-step-simulation.js +1 -1
  113. package/lib/simulation/document/automation-simulation.js +1 -1
  114. package/lib/simulation/document/command-simulation.js +1 -1
  115. package/lib/simulation/simulation.js +1 -1
  116. package/node_modules/@aws-sdk/checksums/package.json +2 -2
  117. package/node_modules/@aws-sdk/client-cloudformation/package.json +3 -3
  118. package/node_modules/@aws-sdk/client-cloudwatch/package.json +3 -3
  119. package/node_modules/@aws-sdk/client-ec2/dist-cjs/schemas/schemas_0.js +37 -4
  120. package/node_modules/@aws-sdk/client-ec2/dist-es/schemas/schemas_0.js +35 -4
  121. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/AttachImageWatermarkCommand.d.ts +2 -3
  122. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/CancelCapacityReservationCommand.d.ts +10 -16
  123. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/GetAllowedImagesSettingsCommand.d.ts +8 -0
  124. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/GetAwsNetworkPerformanceDataCommand.d.ts +2 -1
  125. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/ModifyIpamScopeCommand.d.ts +1 -2
  126. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/ReplaceImageCriteriaInAllowedImagesSettingsCommand.d.ts +15 -0
  127. package/node_modules/@aws-sdk/client-ec2/dist-types/models/models_5.d.ts +42 -15
  128. package/node_modules/@aws-sdk/client-ec2/dist-types/models/models_6.d.ts +17 -35
  129. package/node_modules/@aws-sdk/client-ec2/dist-types/models/models_7.d.ts +86 -1
  130. package/node_modules/@aws-sdk/client-ec2/dist-types/schemas/schemas_0.d.ts +2 -0
  131. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/commands/GetAwsNetworkPerformanceDataCommand.d.ts +2 -4
  132. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/commands/ModifyIpamScopeCommand.d.ts +4 -2
  133. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/models/models_5.d.ts +7 -4
  134. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/models/models_6.d.ts +5 -9
  135. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/models/models_7.d.ts +15 -0
  136. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/schemas/schemas_0.d.ts +2 -0
  137. package/node_modules/@aws-sdk/client-ec2/package.json +4 -4
  138. package/node_modules/@aws-sdk/client-iam/package.json +3 -3
  139. package/node_modules/@aws-sdk/client-lambda/dist-types/commands/GetProvisionedConcurrencyConfigCommand.d.ts +4 -4
  140. package/node_modules/@aws-sdk/client-lambda/package.json +3 -3
  141. package/node_modules/@aws-sdk/client-s3/package.json +6 -6
  142. package/node_modules/@aws-sdk/client-sns/package.json +3 -3
  143. package/node_modules/@aws-sdk/client-sqs/package.json +3 -3
  144. package/node_modules/@aws-sdk/client-ssm/package.json +3 -3
  145. package/node_modules/@aws-sdk/core/package.json +2 -2
  146. package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
  147. package/node_modules/@aws-sdk/credential-provider-http/package.json +2 -2
  148. package/node_modules/@aws-sdk/credential-provider-ini/package.json +9 -9
  149. package/node_modules/@aws-sdk/credential-provider-login/package.json +3 -3
  150. package/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
  151. package/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
  152. package/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
  153. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
  154. package/node_modules/@aws-sdk/middleware-flexible-checksums/package.json +2 -2
  155. package/node_modules/@aws-sdk/middleware-sdk-ec2/package.json +2 -2
  156. package/node_modules/@aws-sdk/middleware-sdk-s3/package.json +2 -2
  157. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +1 -1
  158. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +1 -1
  159. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +1 -1
  160. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +1 -1
  161. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +1 -1
  162. package/node_modules/@aws-sdk/nested-clients/package.json +2 -2
  163. package/node_modules/@aws-sdk/token-providers/package.json +3 -3
  164. package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.browser.js +1 -1
  165. package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.js +233 -43
  166. package/node_modules/@aws-sdk/xml-builder/dist-es/xml-parser.browser.js +1 -1
  167. package/node_modules/@aws-sdk/xml-builder/dist-es/xml-parser.js +233 -43
  168. package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/xml-parser.d.ts +1 -1
  169. package/node_modules/@aws-sdk/xml-builder/dist-types/xml-parser.d.ts +2 -1
  170. package/node_modules/@aws-sdk/xml-builder/package.json +4 -4
  171. package/node_modules/@smithy/core/dist-cjs/submodules/checksum/index.browser.js +355 -145
  172. package/node_modules/@smithy/core/dist-cjs/submodules/checksum/index.js +456 -142
  173. package/node_modules/@smithy/core/dist-cjs/submodules/checksum/index.native.js +355 -145
  174. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +5 -2
  175. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.browser.js +30 -36
  176. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js +54 -110
  177. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.native.js +30 -36
  178. package/node_modules/@smithy/core/dist-es/submodules/checksum/crc32/Crc32Js.js +27 -0
  179. package/node_modules/@smithy/core/dist-es/submodules/checksum/crc32/Crc32Node.js +21 -0
  180. package/node_modules/@smithy/core/dist-es/submodules/checksum/index.browser.js +7 -1
  181. package/node_modules/@smithy/core/dist-es/submodules/checksum/index.js +7 -1
  182. package/node_modules/@smithy/core/dist-es/submodules/checksum/index.native.js +7 -1
  183. package/node_modules/@smithy/core/dist-es/submodules/checksum/md5/Md5Js.js +92 -0
  184. package/node_modules/@smithy/core/dist-es/submodules/checksum/md5/Md5Node.js +29 -0
  185. package/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256Js.js +179 -0
  186. package/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256Node.js +59 -0
  187. package/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256WebCrypto.js +71 -0
  188. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +4 -1
  189. package/node_modules/@smithy/core/dist-es/submodules/serde/concatBytes.js +15 -0
  190. package/node_modules/@smithy/core/dist-es/submodules/serde/index.browser.js +2 -0
  191. package/node_modules/@smithy/core/dist-es/submodules/serde/index.js +2 -0
  192. package/node_modules/@smithy/core/dist-es/submodules/serde/index.native.js +2 -0
  193. package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/checksum/ChecksumStream.js +4 -0
  194. package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/headStream.js +2 -1
  195. package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/stream-collector.browser.js +12 -38
  196. package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/stream-collector.js +18 -33
  197. package/node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/toUint8Array.browser.js +3 -0
  198. package/node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/toUint8Array.js +3 -0
  199. package/node_modules/@smithy/core/dist-types/submodules/checksum/crc32/Crc32Js.d.ts +13 -0
  200. package/node_modules/@smithy/core/dist-types/submodules/checksum/crc32/Crc32Node.d.ts +13 -0
  201. package/node_modules/@smithy/core/dist-types/submodules/checksum/index.browser.d.ts +7 -1
  202. package/node_modules/@smithy/core/dist-types/submodules/checksum/index.d.ts +7 -1
  203. package/node_modules/@smithy/core/dist-types/submodules/checksum/index.native.d.ts +7 -1
  204. package/node_modules/@smithy/core/dist-types/submodules/checksum/md5/Md5Js.d.ts +19 -0
  205. package/node_modules/@smithy/core/dist-types/submodules/checksum/md5/Md5Node.d.ts +17 -0
  206. package/node_modules/@smithy/core/dist-types/submodules/checksum/sha256/Sha256Js.d.ts +28 -0
  207. package/node_modules/@smithy/core/dist-types/submodules/checksum/sha256/Sha256Node.d.ts +13 -0
  208. package/node_modules/@smithy/core/dist-types/submodules/checksum/sha256/Sha256WebCrypto.d.ts +22 -0
  209. package/node_modules/@smithy/core/dist-types/submodules/serde/concatBytes.d.ts +6 -0
  210. package/node_modules/@smithy/core/dist-types/submodules/serde/index.browser.d.ts +2 -0
  211. package/node_modules/@smithy/core/dist-types/submodules/serde/index.d.ts +2 -0
  212. package/node_modules/@smithy/core/dist-types/submodules/serde/index.native.d.ts +2 -0
  213. package/node_modules/@smithy/core/dist-types/submodules/serde/util-stream/checksum/ChecksumStream.d.ts +9 -0
  214. package/node_modules/@smithy/core/dist-types/submodules/serde/util-stream/stream-collector.browser.d.ts +8 -2
  215. package/node_modules/@smithy/core/dist-types/submodules/serde/util-stream/stream-collector.d.ts +4 -1
  216. package/node_modules/@smithy/core/package.json +4 -3
  217. package/node_modules/@smithy/credential-provider-imds/package.json +2 -2
  218. package/node_modules/@smithy/fetch-http-handler/dist-cjs/index.js +2 -55
  219. package/node_modules/@smithy/fetch-http-handler/dist-es/index.js +2 -2
  220. package/node_modules/@smithy/fetch-http-handler/dist-types/index.d.ts +2 -2
  221. package/node_modules/@smithy/fetch-http-handler/package.json +2 -2
  222. package/node_modules/@smithy/middleware-compression/package.json +2 -2
  223. package/node_modules/@smithy/node-http-handler/dist-cjs/index.js +3 -51
  224. package/node_modules/@smithy/node-http-handler/dist-es/index.js +3 -3
  225. package/node_modules/@smithy/node-http-handler/dist-types/index.d.ts +3 -3
  226. package/node_modules/@smithy/node-http-handler/package.json +2 -2
  227. package/node_modules/@smithy/signature-v4/package.json +2 -2
  228. package/node_modules/immutable/dist/immutable.es.js +161 -15
  229. package/node_modules/immutable/dist/immutable.js +161 -15
  230. package/node_modules/immutable/dist/immutable.min.js +33 -32
  231. package/node_modules/immutable/package.json +1 -1
  232. package/node_modules/js-yaml/README.md +5 -3
  233. package/node_modules/js-yaml/dist/js-yaml.js +3009 -2402
  234. package/node_modules/js-yaml/dist/js-yaml.js.map +1 -1
  235. package/node_modules/js-yaml/dist/js-yaml.min.js +2 -33
  236. package/node_modules/js-yaml/dist/js-yaml.min.js.map +1 -1
  237. package/node_modules/js-yaml/dist/js-yaml.mjs +3073 -2381
  238. package/node_modules/js-yaml/dist/js-yaml.mjs.map +1 -1
  239. package/node_modules/js-yaml/lib/loader.js +7 -11
  240. package/node_modules/js-yaml/lib/type/float.js +1 -1
  241. package/node_modules/js-yaml/lib/type/int.js +4 -4
  242. package/node_modules/js-yaml/package.json +10 -4
  243. package/package.json +12 -12
  244. package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-external/nodable_entities.js +0 -333
  245. package/node_modules/@aws-sdk/xml-builder/dist-es/xml-external/nodable_entities.js +0 -332
  246. package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/xml-external/nodable_entities.d.ts +0 -66
  247. package/node_modules/@aws-sdk/xml-builder/dist-types/xml-external/nodable_entities.d.ts +0 -65
  248. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/CHANGELOG.md +0 -827
  249. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/LICENSE +0 -21
  250. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/README.md +0 -202
  251. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxbuilder.min.js +0 -2
  252. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxbuilder.min.js.map +0 -1
  253. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.cjs +0 -1
  254. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.d.cts +0 -770
  255. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.min.js +0 -2
  256. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.min.js.map +0 -1
  257. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxparser.min.js +0 -2
  258. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxparser.min.js.map +0 -1
  259. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxvalidator.min.js +0 -2
  260. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxvalidator.min.js.map +0 -1
  261. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/package.json +0 -93
  262. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/cli/cli.js +0 -97
  263. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/cli/man.js +0 -17
  264. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/cli/read.js +0 -43
  265. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/fxp.d.ts +0 -739
  266. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/fxp.js +0 -14
  267. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/ignoreAttributes.js +0 -18
  268. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/util.js +0 -61
  269. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/CharsSymbol.js +0 -16
  270. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/EntitiesParser.js +0 -106
  271. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OptionsBuilder.js +0 -61
  272. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OutputBuilders/BaseOutputBuilder.js +0 -69
  273. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OutputBuilders/JsArrBuilder.js +0 -103
  274. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OutputBuilders/JsMinArrBuilder.js +0 -100
  275. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OutputBuilders/JsObjBuilder.js +0 -154
  276. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OutputBuilders/ParserOptionsBuilder.js +0 -94
  277. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/Report.js +0 -0
  278. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/TagPath.js +0 -81
  279. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/TagPathMatcher.js +0 -13
  280. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/XMLParser.js +0 -83
  281. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/Xml2JsParser.js +0 -235
  282. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/XmlPartReader.js +0 -210
  283. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/XmlSpecialTagsReader.js +0 -111
  284. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/inputSource/BufferSource.js +0 -116
  285. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/inputSource/StringSource.js +0 -121
  286. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/EntitiesParser.js +0 -105
  287. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/booleanParser.js +0 -22
  288. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/booleanParserExt.js +0 -19
  289. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/currency.js +0 -38
  290. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/join.js +0 -13
  291. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/number.js +0 -14
  292. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/trim.js +0 -6
  293. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/validator.js +0 -425
  294. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js +0 -6
  295. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js +0 -407
  296. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js +0 -163
  297. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js +0 -840
  298. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js +0 -71
  299. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/node2json.js +0 -177
  300. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/xmlNode.js +0 -40
  301. package/node_modules/@aws-sdk/xml-builder/node_modules/strnum/CHANGELOG.md +0 -51
  302. package/node_modules/@aws-sdk/xml-builder/node_modules/strnum/LICENSE +0 -21
  303. package/node_modules/@aws-sdk/xml-builder/node_modules/strnum/README.md +0 -113
  304. package/node_modules/@aws-sdk/xml-builder/node_modules/strnum/package.json +0 -36
  305. package/node_modules/@aws-sdk/xml-builder/node_modules/strnum/strnum.js +0 -171
  306. package/node_modules/@nodable/entities/README.md +0 -41
  307. package/node_modules/@nodable/entities/package.json +0 -57
  308. package/node_modules/@nodable/entities/src/EntityDecoder.js +0 -644
  309. package/node_modules/@nodable/entities/src/EntityEncoder.js +0 -194
  310. package/node_modules/@nodable/entities/src/entities.js +0 -1159
  311. package/node_modules/@nodable/entities/src/entityTries.js +0 -49
  312. package/node_modules/@nodable/entities/src/index.d.ts +0 -341
  313. package/node_modules/@nodable/entities/src/index.js +0 -29
  314. package/node_modules/@smithy/core/dist-es/submodules/checksum/md5-js/constants.js +0 -3
  315. package/node_modules/@smithy/core/dist-es/submodules/checksum/md5-js/md5.js +0 -168
  316. package/node_modules/@smithy/core/dist-types/submodules/checksum/md5-js/constants.d.ts +0 -12
  317. package/node_modules/@smithy/core/dist-types/submodules/checksum/md5-js/md5.d.ts +0 -16
  318. package/node_modules/@smithy/fetch-http-handler/dist-es/stream-collector.js +0 -53
  319. package/node_modules/@smithy/fetch-http-handler/dist-types/stream-collector.d.ts +0 -2
  320. package/node_modules/@smithy/node-http-handler/dist-es/stream-collector/collector.js +0 -8
  321. package/node_modules/@smithy/node-http-handler/dist-es/stream-collector/index.js +0 -41
  322. package/node_modules/@smithy/node-http-handler/dist-types/stream-collector/collector.d.ts +0 -5
  323. package/node_modules/@smithy/node-http-handler/dist-types/stream-collector/index.d.ts +0 -7
  324. package/node_modules/anynum/LICENSE +0 -21
  325. package/node_modules/anynum/README.md +0 -142
  326. package/node_modules/anynum/anynum.js +0 -135
  327. package/node_modules/anynum/digitTable.js +0 -116
  328. package/node_modules/anynum/package.json +0 -42
  329. package/node_modules/fast-xml-builder/CHANGELOG.md +0 -40
  330. package/node_modules/fast-xml-builder/LICENSE +0 -21
  331. package/node_modules/fast-xml-builder/README.md +0 -74
  332. package/node_modules/fast-xml-builder/lib/fxb.cjs +0 -1
  333. package/node_modules/fast-xml-builder/lib/fxb.d.cts +0 -270
  334. package/node_modules/fast-xml-builder/lib/fxb.min.js +0 -2
  335. package/node_modules/fast-xml-builder/lib/fxb.min.js.map +0 -1
  336. package/node_modules/fast-xml-builder/package.json +0 -81
  337. package/node_modules/fast-xml-builder/src/fxb.d.ts +0 -270
  338. package/node_modules/fast-xml-builder/src/fxb.js +0 -599
  339. package/node_modules/fast-xml-builder/src/ignoreAttributes.js +0 -18
  340. package/node_modules/fast-xml-builder/src/orderedJs2Xml.js +0 -359
  341. package/node_modules/fast-xml-builder/src/prettifyJs2Xml.js +0 -0
  342. package/node_modules/fast-xml-builder/src/util.js +0 -16
  343. package/node_modules/path-expression-matcher/LICENSE +0 -21
  344. package/node_modules/path-expression-matcher/README.md +0 -947
  345. package/node_modules/path-expression-matcher/lib/pem.cjs +0 -1
  346. package/node_modules/path-expression-matcher/lib/pem.d.cts +0 -715
  347. package/node_modules/path-expression-matcher/lib/pem.min.js +0 -2
  348. package/node_modules/path-expression-matcher/lib/pem.min.js.map +0 -1
  349. package/node_modules/path-expression-matcher/package.json +0 -79
  350. package/node_modules/path-expression-matcher/src/Expression.js +0 -232
  351. package/node_modules/path-expression-matcher/src/ExpressionSet.js +0 -225
  352. package/node_modules/path-expression-matcher/src/Matcher.js +0 -660
  353. package/node_modules/path-expression-matcher/src/index.d.ts +0 -589
  354. package/node_modules/path-expression-matcher/src/index.js +0 -29
  355. package/node_modules/xml-naming/README.md +0 -189
  356. package/node_modules/xml-naming/package.json +0 -54
  357. package/node_modules/xml-naming/src/index.d.ts +0 -74
  358. package/node_modules/xml-naming/src/index.js +0 -270
@@ -1,407 +0,0 @@
1
- import { isName } from '../util.js';
2
-
3
- export default class DocTypeReader {
4
- constructor(options) {
5
- this.suppressValidationErr = !options;
6
- this.options = options;
7
- }
8
-
9
- readDocType(xmlData, i) {
10
- const entities = Object.create(null);
11
- let entityCount = 0;
12
-
13
- if (xmlData[i + 3] === 'O' &&
14
- xmlData[i + 4] === 'C' &&
15
- xmlData[i + 5] === 'T' &&
16
- xmlData[i + 6] === 'Y' &&
17
- xmlData[i + 7] === 'P' &&
18
- xmlData[i + 8] === 'E') {
19
- i = i + 9;
20
- let angleBracketsCount = 1;
21
- let hasBody = false, comment = false;
22
- let exp = "";
23
- for (; i < xmlData.length; i++) {
24
- if (xmlData[i] === '<' && !comment) { //Determine the tag type
25
- if (hasBody && hasSeq(xmlData, "!ENTITY", i)) {
26
- i += 7;
27
- let entityName, val;
28
- [entityName, val, i] = this.readEntityExp(xmlData, i + 1, this.suppressValidationErr);
29
- if (val.indexOf("&") === -1) { //Parameter entities are not supported
30
- if (this.options.enabled !== false &&
31
- this.options.maxEntityCount != null &&
32
- entityCount >= this.options.maxEntityCount) {
33
- throw new Error(
34
- `Entity count (${entityCount + 1}) exceeds maximum allowed (${this.options.maxEntityCount})`
35
- );
36
- }
37
- //const escaped = entityName.replace(/[.\-+*:]/g, '\\.');
38
- //const escaped = entityName.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
39
- entities[entityName] = val;
40
- entityCount++;
41
- }
42
- }
43
- else if (hasBody && hasSeq(xmlData, "!ELEMENT", i)) {
44
- i += 8;//Not supported
45
- const { index } = this.readElementExp(xmlData, i + 1);
46
- i = index;
47
- } else if (hasBody && hasSeq(xmlData, "!ATTLIST", i)) {
48
- i += 8;//Not supported
49
- // const {index} = this.readAttlistExp(xmlData,i+1);
50
- // i = index;
51
- } else if (hasBody && hasSeq(xmlData, "!NOTATION", i)) {
52
- i += 9;//Not supported
53
- const { index } = this.readNotationExp(xmlData, i + 1, this.suppressValidationErr);
54
- i = index;
55
- } else if (hasSeq(xmlData, "!--", i)) comment = true;
56
- else throw new Error(`Invalid DOCTYPE`);
57
-
58
- angleBracketsCount++;
59
- exp = "";
60
- } else if (xmlData[i] === '>') { //Read tag content
61
- if (comment) {
62
- if (xmlData[i - 1] === "-" && xmlData[i - 2] === "-") {
63
- comment = false;
64
- angleBracketsCount--;
65
- }
66
- } else {
67
- angleBracketsCount--;
68
- }
69
- if (angleBracketsCount === 0) {
70
- break;
71
- }
72
- } else if (xmlData[i] === '[') {
73
- hasBody = true;
74
- } else {
75
- exp += xmlData[i];
76
- }
77
- }
78
- if (angleBracketsCount !== 0) {
79
- throw new Error(`Unclosed DOCTYPE`);
80
- }
81
- } else {
82
- throw new Error(`Invalid Tag instead of DOCTYPE`);
83
- }
84
- return { entities, i };
85
- }
86
- readEntityExp(xmlData, i) {
87
- //External entities are not supported
88
- // <!ENTITY ext SYSTEM "http://normal-website.com" >
89
-
90
- //Parameter entities are not supported
91
- // <!ENTITY entityname "&anotherElement;">
92
-
93
- //Internal entities are supported
94
- // <!ENTITY entityname "replacement text">
95
-
96
- // Skip leading whitespace after <!ENTITY
97
- i = skipWhitespace(xmlData, i);
98
-
99
- // Read entity name
100
- const startIndex = i;
101
- while (i < xmlData.length && !/\s/.test(xmlData[i]) && xmlData[i] !== '"' && xmlData[i] !== "'") {
102
- i++;
103
- }
104
- let entityName = xmlData.substring(startIndex, i);
105
-
106
- validateEntityName(entityName);
107
-
108
- // Skip whitespace after entity name
109
- i = skipWhitespace(xmlData, i);
110
-
111
- // Check for unsupported constructs (external entities or parameter entities)
112
- if (!this.suppressValidationErr) {
113
- if (xmlData.substring(i, i + 6).toUpperCase() === "SYSTEM") {
114
- throw new Error("External entities are not supported");
115
- } else if (xmlData[i] === "%") {
116
- throw new Error("Parameter entities are not supported");
117
- }
118
- }
119
-
120
- // Read entity value (internal entity)
121
- let entityValue = "";
122
- [i, entityValue] = this.readIdentifierVal(xmlData, i, "entity");
123
-
124
- // Validate entity size
125
- if (this.options.enabled !== false &&
126
- this.options.maxEntitySize != null &&
127
- entityValue.length > this.options.maxEntitySize) {
128
- throw new Error(
129
- `Entity "${entityName}" size (${entityValue.length}) exceeds maximum allowed size (${this.options.maxEntitySize})`
130
- );
131
- }
132
-
133
- i--;
134
- return [entityName, entityValue, i];
135
- }
136
-
137
- readNotationExp(xmlData, i) {
138
- // Skip leading whitespace after <!NOTATION
139
- i = skipWhitespace(xmlData, i);
140
-
141
- // Read notation name
142
-
143
- const startIndex = i;
144
- while (i < xmlData.length && !/\s/.test(xmlData[i])) {
145
- i++;
146
- }
147
- let notationName = xmlData.substring(startIndex, i);
148
-
149
- !this.suppressValidationErr && validateEntityName(notationName);
150
-
151
- // Skip whitespace after notation name
152
- i = skipWhitespace(xmlData, i);
153
-
154
- // Check identifier type (SYSTEM or PUBLIC)
155
- const identifierType = xmlData.substring(i, i + 6).toUpperCase();
156
- if (!this.suppressValidationErr && identifierType !== "SYSTEM" && identifierType !== "PUBLIC") {
157
- throw new Error(`Expected SYSTEM or PUBLIC, found "${identifierType}"`);
158
- }
159
- i += identifierType.length;
160
-
161
- // Skip whitespace after identifier type
162
- i = skipWhitespace(xmlData, i);
163
-
164
- // Read public identifier (if PUBLIC)
165
- let publicIdentifier = null;
166
- let systemIdentifier = null;
167
-
168
- if (identifierType === "PUBLIC") {
169
- [i, publicIdentifier] = this.readIdentifierVal(xmlData, i, "publicIdentifier");
170
-
171
- // Skip whitespace after public identifier
172
- i = skipWhitespace(xmlData, i);
173
-
174
- // Optionally read system identifier
175
- if (xmlData[i] === '"' || xmlData[i] === "'") {
176
- [i, systemIdentifier] = this.readIdentifierVal(xmlData, i, "systemIdentifier");
177
- }
178
- } else if (identifierType === "SYSTEM") {
179
- // Read system identifier (mandatory for SYSTEM)
180
- [i, systemIdentifier] = this.readIdentifierVal(xmlData, i, "systemIdentifier");
181
-
182
- if (!this.suppressValidationErr && !systemIdentifier) {
183
- throw new Error("Missing mandatory system identifier for SYSTEM notation");
184
- }
185
- }
186
-
187
- return { notationName, publicIdentifier, systemIdentifier, index: --i };
188
- }
189
-
190
- readIdentifierVal(xmlData, i, type) {
191
- let identifierVal = "";
192
- const startChar = xmlData[i];
193
- if (startChar !== '"' && startChar !== "'") {
194
- throw new Error(`Expected quoted string, found "${startChar}"`);
195
- }
196
- i++;
197
-
198
- const startIndex = i;
199
- while (i < xmlData.length && xmlData[i] !== startChar) {
200
- i++;
201
- }
202
- identifierVal = xmlData.substring(startIndex, i);
203
-
204
- if (xmlData[i] !== startChar) {
205
- throw new Error(`Unterminated ${type} value`);
206
- }
207
- i++;
208
- return [i, identifierVal];
209
- }
210
-
211
- readElementExp(xmlData, i) {
212
- // <!ELEMENT br EMPTY>
213
- // <!ELEMENT div ANY>
214
- // <!ELEMENT title (#PCDATA)>
215
- // <!ELEMENT book (title, author+)>
216
- // <!ELEMENT name (content-model)>
217
-
218
- // Skip leading whitespace after <!ELEMENT
219
- i = skipWhitespace(xmlData, i);
220
-
221
- // Read element name
222
- const startIndex = i;
223
- while (i < xmlData.length && !/\s/.test(xmlData[i])) {
224
- i++;
225
- }
226
- let elementName = xmlData.substring(startIndex, i);
227
-
228
- // Validate element name
229
- if (!this.suppressValidationErr && !isName(elementName)) {
230
- throw new Error(`Invalid element name: "${elementName}"`);
231
- }
232
-
233
- // Skip whitespace after element name
234
- i = skipWhitespace(xmlData, i);
235
- let contentModel = "";
236
- // Expect '(' to start content model
237
- if (xmlData[i] === "E" && hasSeq(xmlData, "MPTY", i)) i += 4;
238
- else if (xmlData[i] === "A" && hasSeq(xmlData, "NY", i)) i += 2;
239
- else if (xmlData[i] === "(") {
240
- i++; // Move past '('
241
-
242
- // Read content model
243
- const startIndex = i;
244
- while (i < xmlData.length && xmlData[i] !== ")") {
245
- i++;
246
- }
247
- contentModel = xmlData.substring(startIndex, i);
248
-
249
- if (xmlData[i] !== ")") {
250
- throw new Error("Unterminated content model");
251
- }
252
-
253
- } else if (!this.suppressValidationErr) {
254
- throw new Error(`Invalid Element Expression, found "${xmlData[i]}"`);
255
- }
256
-
257
- return {
258
- elementName,
259
- contentModel: contentModel.trim(),
260
- index: i
261
- };
262
- }
263
-
264
- readAttlistExp(xmlData, i) {
265
- // Skip leading whitespace after <!ATTLIST
266
- i = skipWhitespace(xmlData, i);
267
-
268
- // Read element name
269
- let startIndex = i;
270
- while (i < xmlData.length && !/\s/.test(xmlData[i])) {
271
- i++;
272
- }
273
- let elementName = xmlData.substring(startIndex, i);
274
-
275
- // Validate element name
276
- validateEntityName(elementName)
277
-
278
- // Skip whitespace after element name
279
- i = skipWhitespace(xmlData, i);
280
-
281
- // Read attribute name
282
- startIndex = i;
283
- while (i < xmlData.length && !/\s/.test(xmlData[i])) {
284
- i++;
285
- }
286
- let attributeName = xmlData.substring(startIndex, i);
287
-
288
- // Validate attribute name
289
- if (!validateEntityName(attributeName)) {
290
- throw new Error(`Invalid attribute name: "${attributeName}"`);
291
- }
292
-
293
- // Skip whitespace after attribute name
294
- i = skipWhitespace(xmlData, i);
295
-
296
- // Read attribute type
297
- let attributeType = "";
298
- if (xmlData.substring(i, i + 8).toUpperCase() === "NOTATION") {
299
- attributeType = "NOTATION";
300
- i += 8; // Move past "NOTATION"
301
-
302
- // Skip whitespace after "NOTATION"
303
- i = skipWhitespace(xmlData, i);
304
-
305
- // Expect '(' to start the list of notations
306
- if (xmlData[i] !== "(") {
307
- throw new Error(`Expected '(', found "${xmlData[i]}"`);
308
- }
309
- i++; // Move past '('
310
-
311
- // Read the list of allowed notations
312
- let allowedNotations = [];
313
- while (i < xmlData.length && xmlData[i] !== ")") {
314
-
315
-
316
- const startIndex = i;
317
- while (i < xmlData.length && xmlData[i] !== "|" && xmlData[i] !== ")") {
318
- i++;
319
- }
320
- let notation = xmlData.substring(startIndex, i);
321
-
322
- // Validate notation name
323
- notation = notation.trim();
324
- if (!validateEntityName(notation)) {
325
- throw new Error(`Invalid notation name: "${notation}"`);
326
- }
327
-
328
- allowedNotations.push(notation);
329
-
330
- // Skip '|' separator or exit loop
331
- if (xmlData[i] === "|") {
332
- i++; // Move past '|'
333
- i = skipWhitespace(xmlData, i); // Skip optional whitespace after '|'
334
- }
335
- }
336
-
337
- if (xmlData[i] !== ")") {
338
- throw new Error("Unterminated list of notations");
339
- }
340
- i++; // Move past ')'
341
-
342
- // Store the allowed notations as part of the attribute type
343
- attributeType += " (" + allowedNotations.join("|") + ")";
344
- } else {
345
- // Handle simple types (e.g., CDATA, ID, IDREF, etc.)
346
- const startIndex = i;
347
- while (i < xmlData.length && !/\s/.test(xmlData[i])) {
348
- i++;
349
- }
350
- attributeType += xmlData.substring(startIndex, i);
351
-
352
- // Validate simple attribute type
353
- const validTypes = ["CDATA", "ID", "IDREF", "IDREFS", "ENTITY", "ENTITIES", "NMTOKEN", "NMTOKENS"];
354
- if (!this.suppressValidationErr && !validTypes.includes(attributeType.toUpperCase())) {
355
- throw new Error(`Invalid attribute type: "${attributeType}"`);
356
- }
357
- }
358
-
359
- // Skip whitespace after attribute type
360
- i = skipWhitespace(xmlData, i);
361
-
362
- // Read default value
363
- let defaultValue = "";
364
- if (xmlData.substring(i, i + 8).toUpperCase() === "#REQUIRED") {
365
- defaultValue = "#REQUIRED";
366
- i += 8;
367
- } else if (xmlData.substring(i, i + 7).toUpperCase() === "#IMPLIED") {
368
- defaultValue = "#IMPLIED";
369
- i += 7;
370
- } else {
371
- [i, defaultValue] = this.readIdentifierVal(xmlData, i, "ATTLIST");
372
- }
373
-
374
- return {
375
- elementName,
376
- attributeName,
377
- attributeType,
378
- defaultValue,
379
- index: i
380
- }
381
- }
382
- }
383
-
384
-
385
-
386
- const skipWhitespace = (data, index) => {
387
- while (index < data.length && /\s/.test(data[index])) {
388
- index++;
389
- }
390
- return index;
391
- };
392
-
393
-
394
-
395
- function hasSeq(data, seq, i) {
396
- for (let j = 0; j < seq.length; j++) {
397
- if (seq[j] !== data[i + j + 1]) return false;
398
- }
399
- return true;
400
- }
401
-
402
- function validateEntityName(name) {
403
- if (isName(name))
404
- return name;
405
- else
406
- throw new Error(`Invalid entity name ${name}`);
407
- }
@@ -1,163 +0,0 @@
1
- import { DANGEROUS_PROPERTY_NAMES, criticalProperties } from "../util.js";
2
- import { COMMON_HTML, CURRENCY } from '@nodable/entities';
3
-
4
- const defaultOnDangerousProperty = (name) => {
5
- if (DANGEROUS_PROPERTY_NAMES.includes(name)) {
6
- return "__" + name;
7
- }
8
- return name;
9
- };
10
-
11
-
12
- export const defaultOptions = {
13
- preserveOrder: false,
14
- attributeNamePrefix: '@_',
15
- attributesGroupName: false,
16
- textNodeName: '#text',
17
- ignoreAttributes: true,
18
- removeNSPrefix: false, // remove NS from tag name or attribute name if true
19
- allowBooleanAttributes: false, //a tag can have attributes without any value
20
- //ignoreRootElement : false,
21
- parseTagValue: true,
22
- parseAttributeValue: false,
23
- trimValues: true, //Trim string values of tag and attributes
24
- cdataPropName: false,
25
- numberParseOptions: {
26
- hex: true,
27
- leadingZeros: true,
28
- eNotation: true
29
- },
30
- tagValueProcessor: function (tagName, val) {
31
- return val;
32
- },
33
- attributeValueProcessor: function (attrName, val) {
34
- return val;
35
- },
36
- stopNodes: [], //nested tags will not be parsed even for errors
37
- alwaysCreateTextNode: false,
38
- isArray: () => false,
39
- commentPropName: false,
40
- unpairedTags: [],
41
- processEntities: true,
42
- htmlEntities: false,
43
- entityDecoder: null,
44
- ignoreDeclaration: false,
45
- ignorePiTags: false,
46
- transformTagName: false,
47
- transformAttributeName: false,
48
- updateTag: function (tagName, jPath, attrs) {
49
- return tagName
50
- },
51
- // skipEmptyListItem: false
52
- captureMetaData: false,
53
- maxNestedTags: 100,
54
- strictReservedNames: true,
55
- jPath: true, // if true, pass jPath string to callbacks; if false, pass matcher instance
56
- onDangerousProperty: defaultOnDangerousProperty
57
- };
58
-
59
-
60
- /**
61
- * Validates that a property name is safe to use
62
- * @param {string} propertyName - The property name to validate
63
- * @param {string} optionName - The option field name (for error message)
64
- * @throws {Error} If property name is dangerous
65
- */
66
- function validatePropertyName(propertyName, optionName) {
67
- if (typeof propertyName !== 'string') {
68
- return; // Only validate string property names
69
- }
70
-
71
- const normalized = propertyName.toLowerCase();
72
- if (DANGEROUS_PROPERTY_NAMES.some(dangerous => normalized === dangerous.toLowerCase())) {
73
- throw new Error(
74
- `[SECURITY] Invalid ${optionName}: "${propertyName}" is a reserved JavaScript keyword that could cause prototype pollution`
75
- );
76
- }
77
-
78
- if (criticalProperties.some(dangerous => normalized === dangerous.toLowerCase())) {
79
- throw new Error(
80
- `[SECURITY] Invalid ${optionName}: "${propertyName}" is a reserved JavaScript keyword that could cause prototype pollution`
81
- );
82
- }
83
- }
84
-
85
- /**
86
- * Normalizes processEntities option for backward compatibility
87
- * @param {boolean|object} value
88
- * @returns {object} Always returns normalized object
89
- */
90
- function normalizeProcessEntities(value, htmlEntities) {
91
- // Boolean backward compatibility
92
- if (typeof value === 'boolean') {
93
- return {
94
- enabled: value, // true or false
95
- maxEntitySize: 10000,
96
- maxExpansionDepth: 10000,
97
- maxTotalExpansions: Infinity,
98
- maxExpandedLength: 100000,
99
- maxEntityCount: 1000,
100
- allowedTags: null,
101
- tagFilter: null,
102
- appliesTo: "all",
103
- };
104
- }
105
-
106
- // Object config - merge with defaults
107
- if (typeof value === 'object' && value !== null) {
108
- return {
109
- enabled: value.enabled !== false,
110
- maxEntitySize: Math.max(1, value.maxEntitySize ?? 10000),
111
- maxExpansionDepth: Math.max(1, value.maxExpansionDepth ?? 10000),
112
- maxTotalExpansions: Math.max(1, value.maxTotalExpansions ?? Infinity),
113
- maxExpandedLength: Math.max(1, value.maxExpandedLength ?? 100000),
114
- maxEntityCount: Math.max(1, value.maxEntityCount ?? 1000),
115
- allowedTags: value.allowedTags ?? null,
116
- tagFilter: value.tagFilter ?? null,
117
- appliesTo: value.appliesTo ?? "all",
118
- };
119
- }
120
-
121
- // Default to enabled with limits
122
- return normalizeProcessEntities(true);
123
- }
124
-
125
- export const buildOptions = function (options) {
126
- const built = Object.assign({}, defaultOptions, options);
127
-
128
- // Validate property names to prevent prototype pollution
129
- const propertyNameOptions = [
130
- { value: built.attributeNamePrefix, name: 'attributeNamePrefix' },
131
- { value: built.attributesGroupName, name: 'attributesGroupName' },
132
- { value: built.textNodeName, name: 'textNodeName' },
133
- { value: built.cdataPropName, name: 'cdataPropName' },
134
- { value: built.commentPropName, name: 'commentPropName' }
135
- ];
136
-
137
- for (const { value, name } of propertyNameOptions) {
138
- if (value) {
139
- validatePropertyName(value, name);
140
- }
141
- }
142
-
143
- if (built.onDangerousProperty === null) {
144
- built.onDangerousProperty = defaultOnDangerousProperty;
145
- }
146
-
147
- // Always normalize processEntities for backward compatibility and validation
148
- built.processEntities = normalizeProcessEntities(built.processEntities, built.htmlEntities);
149
- built.unpairedTagsSet = new Set(built.unpairedTags);
150
- // Convert old-style stopNodes for backward compatibility
151
- if (built.stopNodes && Array.isArray(built.stopNodes)) {
152
- built.stopNodes = built.stopNodes.map(node => {
153
- if (typeof node === 'string' && node.startsWith('*.')) {
154
- // Old syntax: *.tagname meant "tagname anywhere"
155
- // Convert to new syntax: ..tagname
156
- return '..' + node.substring(2);
157
- }
158
- return node;
159
- });
160
- }
161
- //console.debug(built.processEntities)
162
- return built;
163
- };