@cdklabs/cdk-ssm-documents 0.0.58 → 0.0.60

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 (427) hide show
  1. package/.jsii +12 -12
  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/client-cloudformation/dist-cjs/index.js +9 -9
  117. package/node_modules/@aws-sdk/client-cloudformation/dist-es/waiters/waitForChangeSetCreateComplete.js +2 -2
  118. package/node_modules/@aws-sdk/client-cloudformation/dist-es/waiters/waitForStackCreateComplete.js +2 -2
  119. package/node_modules/@aws-sdk/client-cloudformation/dist-es/waiters/waitForStackDeleteComplete.js +2 -2
  120. package/node_modules/@aws-sdk/client-cloudformation/dist-es/waiters/waitForStackExists.js +2 -2
  121. package/node_modules/@aws-sdk/client-cloudformation/dist-es/waiters/waitForStackImportComplete.js +2 -2
  122. package/node_modules/@aws-sdk/client-cloudformation/dist-es/waiters/waitForStackRefactorCreateComplete.js +1 -1
  123. package/node_modules/@aws-sdk/client-cloudformation/dist-es/waiters/waitForStackRefactorExecuteComplete.js +1 -1
  124. package/node_modules/@aws-sdk/client-cloudformation/dist-es/waiters/waitForStackRollbackComplete.js +2 -2
  125. package/node_modules/@aws-sdk/client-cloudformation/dist-es/waiters/waitForStackUpdateComplete.js +2 -2
  126. package/node_modules/@aws-sdk/client-cloudformation/dist-types/CloudFormation.d.ts +11 -10
  127. package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/CloudFormation.d.ts +13 -10
  128. package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/waiters/waitForChangeSetCreateComplete.d.ts +9 -3
  129. package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/waiters/waitForStackCreateComplete.d.ts +9 -3
  130. package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/waiters/waitForStackDeleteComplete.d.ts +11 -3
  131. package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/waiters/waitForStackExists.d.ts +9 -3
  132. package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/waiters/waitForStackImportComplete.d.ts +9 -3
  133. package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/waiters/waitForStackRefactorCreateComplete.d.ts +11 -3
  134. package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/waiters/waitForStackRefactorExecuteComplete.d.ts +11 -3
  135. package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/waiters/waitForStackRollbackComplete.d.ts +9 -3
  136. package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/waiters/waitForStackUpdateComplete.d.ts +9 -3
  137. package/node_modules/@aws-sdk/client-cloudformation/dist-types/ts3.4/waiters/waitForTypeRegistrationComplete.d.ts +11 -3
  138. package/node_modules/@aws-sdk/client-cloudformation/dist-types/waiters/waitForChangeSetCreateComplete.d.ts +4 -3
  139. package/node_modules/@aws-sdk/client-cloudformation/dist-types/waiters/waitForStackCreateComplete.d.ts +4 -3
  140. package/node_modules/@aws-sdk/client-cloudformation/dist-types/waiters/waitForStackDeleteComplete.d.ts +4 -3
  141. package/node_modules/@aws-sdk/client-cloudformation/dist-types/waiters/waitForStackExists.d.ts +4 -3
  142. package/node_modules/@aws-sdk/client-cloudformation/dist-types/waiters/waitForStackImportComplete.d.ts +4 -3
  143. package/node_modules/@aws-sdk/client-cloudformation/dist-types/waiters/waitForStackRefactorCreateComplete.d.ts +4 -3
  144. package/node_modules/@aws-sdk/client-cloudformation/dist-types/waiters/waitForStackRefactorExecuteComplete.d.ts +4 -3
  145. package/node_modules/@aws-sdk/client-cloudformation/dist-types/waiters/waitForStackRollbackComplete.d.ts +4 -3
  146. package/node_modules/@aws-sdk/client-cloudformation/dist-types/waiters/waitForStackUpdateComplete.d.ts +4 -3
  147. package/node_modules/@aws-sdk/client-cloudformation/dist-types/waiters/waitForTypeRegistrationComplete.d.ts +4 -3
  148. package/node_modules/@aws-sdk/client-cloudformation/package.json +8 -8
  149. package/node_modules/@aws-sdk/client-cloudwatch/dist-cjs/index.js +1 -1
  150. package/node_modules/@aws-sdk/client-cloudwatch/dist-cjs/schemas/schemas_0.js +2 -2
  151. package/node_modules/@aws-sdk/client-cloudwatch/dist-es/schemas/schemas_0.js +2 -2
  152. package/node_modules/@aws-sdk/client-cloudwatch/dist-es/waiters/waitForAlarmExists.js +1 -1
  153. package/node_modules/@aws-sdk/client-cloudwatch/dist-es/waiters/waitForAlarmMuteRuleExists.js +2 -2
  154. package/node_modules/@aws-sdk/client-cloudwatch/dist-es/waiters/waitForCompositeAlarmExists.js +1 -1
  155. package/node_modules/@aws-sdk/client-cloudwatch/dist-types/CloudWatch.d.ts +3 -3
  156. package/node_modules/@aws-sdk/client-cloudwatch/dist-types/commands/DeleteDashboardsCommand.d.ts +2 -4
  157. package/node_modules/@aws-sdk/client-cloudwatch/dist-types/commands/GetOTelEnrichmentCommand.d.ts +1 -1
  158. package/node_modules/@aws-sdk/client-cloudwatch/dist-types/commands/ListTagsForResourceCommand.d.ts +2 -2
  159. package/node_modules/@aws-sdk/client-cloudwatch/dist-types/commands/PutDashboardCommand.d.ts +6 -0
  160. package/node_modules/@aws-sdk/client-cloudwatch/dist-types/commands/StartOTelEnrichmentCommand.d.ts +1 -1
  161. package/node_modules/@aws-sdk/client-cloudwatch/dist-types/commands/StopOTelEnrichmentCommand.d.ts +1 -1
  162. package/node_modules/@aws-sdk/client-cloudwatch/dist-types/commands/TagResourceCommand.d.ts +2 -2
  163. package/node_modules/@aws-sdk/client-cloudwatch/dist-types/commands/UntagResourceCommand.d.ts +2 -1
  164. package/node_modules/@aws-sdk/client-cloudwatch/dist-types/models/models_0.d.ts +37 -0
  165. package/node_modules/@aws-sdk/client-cloudwatch/dist-types/ts3.4/CloudWatch.d.ts +3 -3
  166. package/node_modules/@aws-sdk/client-cloudwatch/dist-types/ts3.4/models/models_0.d.ts +1 -0
  167. package/node_modules/@aws-sdk/client-cloudwatch/dist-types/ts3.4/waiters/waitForAlarmExists.d.ts +9 -3
  168. package/node_modules/@aws-sdk/client-cloudwatch/dist-types/ts3.4/waiters/waitForAlarmMuteRuleExists.d.ts +9 -3
  169. package/node_modules/@aws-sdk/client-cloudwatch/dist-types/ts3.4/waiters/waitForCompositeAlarmExists.d.ts +9 -3
  170. package/node_modules/@aws-sdk/client-cloudwatch/dist-types/waiters/waitForAlarmExists.d.ts +4 -3
  171. package/node_modules/@aws-sdk/client-cloudwatch/dist-types/waiters/waitForAlarmMuteRuleExists.d.ts +4 -3
  172. package/node_modules/@aws-sdk/client-cloudwatch/dist-types/waiters/waitForCompositeAlarmExists.d.ts +4 -3
  173. package/node_modules/@aws-sdk/client-cloudwatch/package.json +8 -8
  174. package/node_modules/@aws-sdk/client-ec2/dist-cjs/index.js +17 -17
  175. package/node_modules/@aws-sdk/client-ec2/dist-cjs/schemas/schemas_0.js +12 -8
  176. package/node_modules/@aws-sdk/client-ec2/dist-es/schemas/schemas_0.js +12 -8
  177. package/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForImageAvailable.js +1 -1
  178. package/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForImageExists.js +2 -2
  179. package/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForInstanceExists.js +2 -2
  180. package/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForInstanceRunning.js +2 -2
  181. package/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForInstanceStatusOk.js +1 -1
  182. package/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForInstanceStopped.js +1 -1
  183. package/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForInstanceTerminated.js +1 -1
  184. package/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForInternetGatewayExists.js +1 -1
  185. package/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForKeyPairExists.js +2 -2
  186. package/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForNatGatewayAvailable.js +1 -1
  187. package/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForNatGatewayDeleted.js +1 -1
  188. package/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForNetworkInterfaceAvailable.js +1 -1
  189. package/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForPasswordDataAvailable.js +1 -1
  190. package/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForSecondaryNetworkCreateComplete.js +1 -1
  191. package/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForSecondarySubnetCreateComplete.js +1 -1
  192. package/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForSecurityGroupExists.js +1 -1
  193. package/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForSnapshotCompleted.js +1 -1
  194. package/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForSpotInstanceRequestFulfilled.js +1 -1
  195. package/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForSubnetAvailable.js +1 -1
  196. package/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForVolumeAvailable.js +1 -1
  197. package/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForVolumeDeleted.js +2 -2
  198. package/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForVolumeInUse.js +1 -1
  199. package/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForVpcAvailable.js +1 -1
  200. package/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForVpcExists.js +2 -2
  201. package/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForVpcPeeringConnectionDeleted.js +1 -1
  202. package/node_modules/@aws-sdk/client-ec2/dist-es/waiters/waitForVpcPeeringConnectionExists.js +1 -1
  203. package/node_modules/@aws-sdk/client-ec2/dist-types/EC2.d.ts +44 -44
  204. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/DescribeInstanceTypesCommand.d.ts +5 -1
  205. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/ModifyManagedResourceVisibilityCommand.d.ts +2 -2
  206. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/ModifyVpnConnectionOptionsCommand.d.ts +1 -0
  207. package/node_modules/@aws-sdk/client-ec2/dist-types/models/models_4.d.ts +11 -0
  208. package/node_modules/@aws-sdk/client-ec2/dist-types/models/models_6.d.ts +1 -1
  209. package/node_modules/@aws-sdk/client-ec2/dist-types/models/models_7.d.ts +6 -1
  210. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/EC2.d.ts +50 -44
  211. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/commands/ModifyManagedResourceVisibilityCommand.d.ts +1 -1
  212. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/models/models_4.d.ts +2 -0
  213. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/models/models_6.d.ts +1 -1
  214. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/models/models_7.d.ts +2 -0
  215. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForBundleTaskComplete.d.ts +9 -3
  216. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForConversionTaskCancelled.d.ts +9 -3
  217. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForConversionTaskCompleted.d.ts +9 -3
  218. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForConversionTaskDeleted.d.ts +9 -3
  219. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForCustomerGatewayAvailable.d.ts +9 -3
  220. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForExportTaskCancelled.d.ts +9 -3
  221. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForExportTaskCompleted.d.ts +9 -3
  222. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForImageAvailable.d.ts +7 -3
  223. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForImageExists.d.ts +7 -3
  224. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForImageUsageReportAvailable.d.ts +9 -3
  225. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForInstanceExists.d.ts +9 -3
  226. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForInstanceRunning.d.ts +9 -3
  227. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForInstanceStatusOk.d.ts +9 -3
  228. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForInstanceStopped.d.ts +9 -3
  229. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForInstanceTerminated.d.ts +9 -3
  230. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForInternetGatewayExists.d.ts +9 -3
  231. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForKeyPairExists.d.ts +7 -3
  232. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForNatGatewayAvailable.d.ts +9 -3
  233. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForNatGatewayDeleted.d.ts +11 -3
  234. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForNetworkInterfaceAvailable.d.ts +9 -3
  235. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForPasswordDataAvailable.d.ts +7 -3
  236. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForSecondaryNetworkCreateComplete.d.ts +9 -3
  237. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForSecondaryNetworkDeleteComplete.d.ts +9 -3
  238. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForSecondarySubnetCreateComplete.d.ts +9 -3
  239. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForSecondarySubnetDeleteComplete.d.ts +9 -3
  240. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForSecurityGroupExists.d.ts +9 -3
  241. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForSecurityGroupVpcAssociationAssociated.d.ts +11 -3
  242. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForSecurityGroupVpcAssociationDisassociated.d.ts +11 -3
  243. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForSnapshotCompleted.d.ts +9 -3
  244. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForSnapshotImported.d.ts +9 -3
  245. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForSpotInstanceRequestFulfilled.d.ts +9 -3
  246. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForStoreImageTaskComplete.d.ts +9 -3
  247. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForSubnetAvailable.d.ts +7 -3
  248. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForSystemStatusOk.d.ts +9 -3
  249. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForVolumeAvailable.d.ts +7 -3
  250. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForVolumeDeleted.d.ts +7 -3
  251. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForVolumeInUse.d.ts +7 -3
  252. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForVpcAvailable.d.ts +7 -3
  253. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForVpcExists.d.ts +7 -3
  254. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForVpcPeeringConnectionDeleted.d.ts +11 -3
  255. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForVpcPeeringConnectionExists.d.ts +9 -3
  256. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForVpnConnectionAvailable.d.ts +9 -3
  257. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/waiters/waitForVpnConnectionDeleted.d.ts +9 -3
  258. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForBundleTaskComplete.d.ts +4 -3
  259. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForConversionTaskCancelled.d.ts +4 -3
  260. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForConversionTaskCompleted.d.ts +4 -3
  261. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForConversionTaskDeleted.d.ts +4 -3
  262. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForCustomerGatewayAvailable.d.ts +4 -3
  263. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForExportTaskCancelled.d.ts +4 -3
  264. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForExportTaskCompleted.d.ts +4 -3
  265. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForImageAvailable.d.ts +4 -3
  266. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForImageExists.d.ts +4 -3
  267. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForImageUsageReportAvailable.d.ts +4 -3
  268. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForInstanceExists.d.ts +4 -3
  269. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForInstanceRunning.d.ts +4 -3
  270. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForInstanceStatusOk.d.ts +4 -3
  271. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForInstanceStopped.d.ts +4 -3
  272. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForInstanceTerminated.d.ts +4 -3
  273. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForInternetGatewayExists.d.ts +4 -3
  274. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForKeyPairExists.d.ts +4 -3
  275. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForNatGatewayAvailable.d.ts +4 -3
  276. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForNatGatewayDeleted.d.ts +4 -3
  277. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForNetworkInterfaceAvailable.d.ts +4 -3
  278. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForPasswordDataAvailable.d.ts +4 -3
  279. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForSecondaryNetworkCreateComplete.d.ts +4 -3
  280. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForSecondaryNetworkDeleteComplete.d.ts +4 -3
  281. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForSecondarySubnetCreateComplete.d.ts +4 -3
  282. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForSecondarySubnetDeleteComplete.d.ts +4 -3
  283. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForSecurityGroupExists.d.ts +4 -3
  284. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForSecurityGroupVpcAssociationAssociated.d.ts +4 -3
  285. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForSecurityGroupVpcAssociationDisassociated.d.ts +4 -3
  286. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForSnapshotCompleted.d.ts +4 -3
  287. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForSnapshotImported.d.ts +4 -3
  288. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForSpotInstanceRequestFulfilled.d.ts +4 -3
  289. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForStoreImageTaskComplete.d.ts +4 -3
  290. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForSubnetAvailable.d.ts +4 -3
  291. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForSystemStatusOk.d.ts +4 -3
  292. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForVolumeAvailable.d.ts +4 -3
  293. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForVolumeDeleted.d.ts +4 -3
  294. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForVolumeInUse.d.ts +4 -3
  295. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForVpcAvailable.d.ts +4 -3
  296. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForVpcExists.d.ts +4 -3
  297. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForVpcPeeringConnectionDeleted.d.ts +4 -3
  298. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForVpcPeeringConnectionExists.d.ts +4 -3
  299. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForVpnConnectionAvailable.d.ts +4 -3
  300. package/node_modules/@aws-sdk/client-ec2/dist-types/waiters/waitForVpnConnectionDeleted.d.ts +4 -3
  301. package/node_modules/@aws-sdk/client-ec2/package.json +8 -8
  302. package/node_modules/@aws-sdk/client-iam/README.md +51 -0
  303. package/node_modules/@aws-sdk/client-iam/dist-cjs/index.js +4 -4
  304. package/node_modules/@aws-sdk/client-iam/dist-es/waiters/waitForInstanceProfileExists.js +2 -2
  305. package/node_modules/@aws-sdk/client-iam/dist-es/waiters/waitForPolicyExists.js +2 -2
  306. package/node_modules/@aws-sdk/client-iam/dist-es/waiters/waitForRoleExists.js +1 -1
  307. package/node_modules/@aws-sdk/client-iam/dist-es/waiters/waitForUserExists.js +1 -1
  308. package/node_modules/@aws-sdk/client-iam/dist-types/IAM.d.ts +55 -4
  309. package/node_modules/@aws-sdk/client-iam/dist-types/IAMClient.d.ts +51 -0
  310. package/node_modules/@aws-sdk/client-iam/dist-types/index.d.ts +51 -0
  311. package/node_modules/@aws-sdk/client-iam/dist-types/models/models_0.d.ts +5 -0
  312. package/node_modules/@aws-sdk/client-iam/dist-types/ts3.4/IAM.d.ts +4 -4
  313. package/node_modules/@aws-sdk/client-iam/dist-types/ts3.4/waiters/waitForInstanceProfileExists.d.ts +9 -3
  314. package/node_modules/@aws-sdk/client-iam/dist-types/ts3.4/waiters/waitForPolicyExists.d.ts +7 -3
  315. package/node_modules/@aws-sdk/client-iam/dist-types/ts3.4/waiters/waitForRoleExists.d.ts +7 -3
  316. package/node_modules/@aws-sdk/client-iam/dist-types/ts3.4/waiters/waitForUserExists.d.ts +7 -3
  317. package/node_modules/@aws-sdk/client-iam/dist-types/waiters/waitForInstanceProfileExists.d.ts +4 -3
  318. package/node_modules/@aws-sdk/client-iam/dist-types/waiters/waitForPolicyExists.d.ts +4 -3
  319. package/node_modules/@aws-sdk/client-iam/dist-types/waiters/waitForRoleExists.d.ts +4 -3
  320. package/node_modules/@aws-sdk/client-iam/dist-types/waiters/waitForUserExists.d.ts +4 -3
  321. package/node_modules/@aws-sdk/client-iam/package.json +8 -8
  322. package/node_modules/@aws-sdk/client-lambda/dist-cjs/index.js +1 -1
  323. package/node_modules/@aws-sdk/client-lambda/dist-es/waiters/waitForFunctionActiveV2.js +1 -1
  324. package/node_modules/@aws-sdk/client-lambda/dist-es/waiters/waitForFunctionExists.js +2 -2
  325. package/node_modules/@aws-sdk/client-lambda/dist-es/waiters/waitForFunctionUpdatedV2.js +1 -1
  326. package/node_modules/@aws-sdk/client-lambda/dist-types/Lambda.d.ts +6 -6
  327. package/node_modules/@aws-sdk/client-lambda/dist-types/ts3.4/Lambda.d.ts +6 -6
  328. package/node_modules/@aws-sdk/client-lambda/dist-types/ts3.4/waiters/waitForFunctionActive.d.ts +9 -3
  329. package/node_modules/@aws-sdk/client-lambda/dist-types/ts3.4/waiters/waitForFunctionActiveV2.d.ts +7 -3
  330. package/node_modules/@aws-sdk/client-lambda/dist-types/ts3.4/waiters/waitForFunctionExists.d.ts +7 -3
  331. package/node_modules/@aws-sdk/client-lambda/dist-types/ts3.4/waiters/waitForFunctionUpdated.d.ts +9 -3
  332. package/node_modules/@aws-sdk/client-lambda/dist-types/ts3.4/waiters/waitForFunctionUpdatedV2.d.ts +7 -3
  333. package/node_modules/@aws-sdk/client-lambda/dist-types/ts3.4/waiters/waitForPublishedVersionActive.d.ts +9 -3
  334. package/node_modules/@aws-sdk/client-lambda/dist-types/waiters/waitForFunctionActive.d.ts +4 -3
  335. package/node_modules/@aws-sdk/client-lambda/dist-types/waiters/waitForFunctionActiveV2.d.ts +4 -3
  336. package/node_modules/@aws-sdk/client-lambda/dist-types/waiters/waitForFunctionExists.d.ts +4 -3
  337. package/node_modules/@aws-sdk/client-lambda/dist-types/waiters/waitForFunctionUpdated.d.ts +4 -3
  338. package/node_modules/@aws-sdk/client-lambda/dist-types/waiters/waitForFunctionUpdatedV2.d.ts +4 -3
  339. package/node_modules/@aws-sdk/client-lambda/dist-types/waiters/waitForPublishedVersionActive.d.ts +4 -3
  340. package/node_modules/@aws-sdk/client-lambda/package.json +8 -8
  341. package/node_modules/@aws-sdk/client-s3/dist-cjs/endpoint/bdd.js +622 -618
  342. package/node_modules/@aws-sdk/client-s3/dist-cjs/index.js +4 -4
  343. package/node_modules/@aws-sdk/client-s3/dist-es/endpoint/bdd.js +622 -618
  344. package/node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForBucketExists.js +2 -2
  345. package/node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForBucketNotExists.js +2 -2
  346. package/node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForObjectExists.js +2 -2
  347. package/node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForObjectNotExists.js +2 -2
  348. package/node_modules/@aws-sdk/client-s3/dist-types/S3.d.ts +5 -4
  349. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/S3.d.ts +5 -4
  350. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/waiters/waitForBucketExists.d.ts +7 -3
  351. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/waiters/waitForBucketNotExists.d.ts +8 -3
  352. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/waiters/waitForObjectExists.d.ts +7 -3
  353. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/waiters/waitForObjectNotExists.d.ts +8 -3
  354. package/node_modules/@aws-sdk/client-s3/dist-types/waiters/waitForBucketExists.d.ts +4 -3
  355. package/node_modules/@aws-sdk/client-s3/dist-types/waiters/waitForBucketNotExists.d.ts +5 -3
  356. package/node_modules/@aws-sdk/client-s3/dist-types/waiters/waitForObjectExists.d.ts +4 -3
  357. package/node_modules/@aws-sdk/client-s3/dist-types/waiters/waitForObjectNotExists.d.ts +5 -3
  358. package/node_modules/@aws-sdk/client-s3/package.json +12 -12
  359. package/node_modules/@aws-sdk/client-sns/package.json +7 -7
  360. package/node_modules/@aws-sdk/client-sqs/package.json +7 -7
  361. package/node_modules/@aws-sdk/client-ssm/dist-cjs/index.js +1 -1
  362. package/node_modules/@aws-sdk/client-ssm/dist-es/waiters/waitForCommandExecuted.js +1 -1
  363. package/node_modules/@aws-sdk/client-ssm/dist-types/SSM.d.ts +1 -1
  364. package/node_modules/@aws-sdk/client-ssm/dist-types/ts3.4/SSM.d.ts +1 -1
  365. package/node_modules/@aws-sdk/client-ssm/dist-types/ts3.4/waiters/waitForCommandExecuted.d.ts +9 -3
  366. package/node_modules/@aws-sdk/client-ssm/dist-types/waiters/waitForCommandExecuted.d.ts +4 -3
  367. package/node_modules/@aws-sdk/client-ssm/package.json +8 -8
  368. package/node_modules/@aws-sdk/core/dist-cjs/index.js +15 -6
  369. package/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js +15 -6
  370. package/node_modules/@aws-sdk/core/dist-es/submodules/client/emitWarningIfUnsupportedVersion.js +15 -6
  371. package/node_modules/@aws-sdk/core/dist-types/submodules/client/emitWarningIfUnsupportedVersion.d.ts +1 -2
  372. package/node_modules/@aws-sdk/core/package.json +3 -3
  373. package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
  374. package/node_modules/@aws-sdk/credential-provider-http/package.json +2 -2
  375. package/node_modules/@aws-sdk/credential-provider-ini/package.json +9 -9
  376. package/node_modules/@aws-sdk/credential-provider-login/package.json +3 -3
  377. package/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
  378. package/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
  379. package/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
  380. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
  381. package/node_modules/@aws-sdk/middleware-flexible-checksums/package.json +2 -2
  382. package/node_modules/@aws-sdk/middleware-sdk-s3/package.json +2 -2
  383. package/node_modules/@aws-sdk/middleware-user-agent/package.json +3 -3
  384. package/node_modules/@aws-sdk/nested-clients/package.json +7 -7
  385. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +2 -2
  386. package/node_modules/@aws-sdk/token-providers/package.json +3 -3
  387. package/node_modules/@aws-sdk/util-user-agent-node/package.json +2 -2
  388. package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-external/nodable_entities.js +336 -0
  389. package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.js +26 -0
  390. package/node_modules/@aws-sdk/xml-builder/dist-es/xml-external/nodable_entities.js +332 -0
  391. package/node_modules/@aws-sdk/xml-builder/dist-es/xml-parser.js +26 -0
  392. package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/xml-external/nodable_entities.d.ts +66 -0
  393. package/node_modules/@aws-sdk/xml-builder/dist-types/xml-external/nodable_entities.d.ts +65 -0
  394. package/node_modules/@aws-sdk/xml-builder/package.json +3 -2
  395. package/node_modules/@smithy/middleware-retry/package.json +2 -2
  396. package/node_modules/@smithy/util-retry/dist-cjs/index.js +7 -3
  397. package/node_modules/@smithy/util-retry/dist-es/AdaptiveRetryStrategy.js +5 -2
  398. package/node_modules/@smithy/util-retry/dist-es/DefaultRateLimiter.js +2 -1
  399. package/node_modules/@smithy/util-retry/package.json +2 -2
  400. package/node_modules/fast-xml-builder/CHANGELOG.md +24 -0
  401. package/node_modules/fast-xml-builder/README.md +53 -2
  402. package/node_modules/fast-xml-builder/lib/fxb.cjs +1 -1
  403. package/node_modules/fast-xml-builder/lib/fxb.d.cts +91 -1
  404. package/node_modules/fast-xml-builder/lib/fxb.min.js +1 -1
  405. package/node_modules/fast-xml-builder/lib/fxb.min.js.map +1 -1
  406. package/node_modules/fast-xml-builder/package.json +3 -2
  407. package/node_modules/fast-xml-builder/src/fxb.d.ts +93 -3
  408. package/node_modules/fast-xml-builder/src/fxb.js +106 -40
  409. package/node_modules/fast-xml-builder/src/orderedJs2Xml.js +95 -42
  410. package/node_modules/fast-xml-builder/src/util.js +16 -0
  411. package/node_modules/fast-xml-parser/CHANGELOG.md +8 -0
  412. package/node_modules/fast-xml-parser/lib/fxp.cjs +1 -1
  413. package/node_modules/fast-xml-parser/lib/fxp.min.js +1 -1
  414. package/node_modules/fast-xml-parser/lib/fxp.min.js.map +1 -1
  415. package/node_modules/fast-xml-parser/lib/fxparser.min.js +1 -1
  416. package/node_modules/fast-xml-parser/lib/fxparser.min.js.map +1 -1
  417. package/node_modules/fast-xml-parser/package.json +1 -1
  418. package/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js +16 -11
  419. package/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js +2 -2
  420. package/node_modules/strnum/CHANGELOG.md +3 -0
  421. package/node_modules/strnum/package.json +3 -2
  422. package/node_modules/strnum/strnum.js +12 -10
  423. package/node_modules/xml-naming/README.md +189 -0
  424. package/node_modules/xml-naming/package.json +54 -0
  425. package/node_modules/xml-naming/src/index.d.ts +74 -0
  426. package/node_modules/xml-naming/src/index.js +270 -0
  427. package/package.json +10 -10
@@ -1,4 +1,15 @@
1
1
  import { XMLParser } from "fast-xml-parser";
2
+ import { COMMON_HTML, CURRENCY, EntityDecoderImpl, XML } from "./xml-external/nodable_entities";
3
+ const entityDecoder = new EntityDecoderImpl({
4
+ namedEntities: { ...XML, ...COMMON_HTML, ...CURRENCY },
5
+ numericAllowed: true,
6
+ limit: {
7
+ maxTotalExpansions: Infinity,
8
+ },
9
+ ncr: {
10
+ xmlVersion: 1.1,
11
+ },
12
+ });
2
13
  const parser = new XMLParser({
3
14
  attributeNamePrefix: "",
4
15
  processEntities: {
@@ -6,6 +17,21 @@ const parser = new XMLParser({
6
17
  maxTotalExpansions: Infinity,
7
18
  },
8
19
  htmlEntities: true,
20
+ entityDecoder: {
21
+ setExternalEntities: (entities) => {
22
+ entityDecoder.setExternalEntities(entities);
23
+ },
24
+ addInputEntities: (entities) => {
25
+ entityDecoder.addInputEntities(entities);
26
+ },
27
+ reset: () => {
28
+ entityDecoder.reset();
29
+ },
30
+ decode: (text) => {
31
+ return entityDecoder.decode(text);
32
+ },
33
+ setXmlVersion: (version) => void {},
34
+ },
9
35
  ignoreAttributes: false,
10
36
  ignoreDeclaration: true,
11
37
  parseTagValue: false,
@@ -0,0 +1,66 @@
1
+ export declare const XML: Record<string, string>;
2
+ export declare const COMMON_HTML: Record<string, string>;
3
+ export declare const CURRENCY: Record<string, string>;
4
+ type EntityValFn = (
5
+ match: string,
6
+ captured: string,
7
+ ...rest: unknown[]
8
+ ) => string;
9
+ type ApplyLimitsTo = "external" | "base" | "all" | Array<"external" | "base">;
10
+ interface EntityDecoderLimitOptions {
11
+ maxTotalExpansions?: number;
12
+ maxExpandedLength?: number;
13
+ applyLimitsTo?: ApplyLimitsTo;
14
+ }
15
+ interface EntityDecoderNCROptions {
16
+ xmlVersion?: 1.0 | 1.1;
17
+ onNCR?: "allow" | "leave" | "remove" | "throw";
18
+ nullNCR?: "remove" | "throw";
19
+ }
20
+ interface EntityDecoderOptions {
21
+ namedEntities?: Record<
22
+ string,
23
+ | string
24
+ | {
25
+ regex: RegExp;
26
+ val: string | EntityValFn;
27
+ }
28
+ > | null;
29
+ postCheck?: ((resolved: string, original: string) => string) | null;
30
+ numericAllowed?: boolean;
31
+ leave?: string[];
32
+ remove?: string[];
33
+ limit?: EntityDecoderLimitOptions;
34
+ ncr?: EntityDecoderNCROptions;
35
+ }
36
+ export interface EntityDecoder {
37
+ setExternalEntities(
38
+ map: Record<
39
+ string,
40
+ | string
41
+ | {
42
+ regex: RegExp;
43
+ val: string | EntityValFn;
44
+ }
45
+ >
46
+ ): void;
47
+ addExternalEntity(key: string, value: string): void;
48
+ addInputEntities(
49
+ map: Record<
50
+ string,
51
+ | string
52
+ | {
53
+ regx?: RegExp;
54
+ regex?: RegExp;
55
+ val: string | EntityValFn;
56
+ }
57
+ >
58
+ ): void;
59
+ reset(): this;
60
+ decode(str: string): string;
61
+ setXmlVersion(version: string): void;
62
+ }
63
+ export declare const EntityDecoderImpl: new (
64
+ options?: EntityDecoderOptions
65
+ ) => EntityDecoder;
66
+ export {};
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Contains code from \@nodable/entities v2.1.0
3
+ * Copyright (c) Amit Gupta (https://solothought.com)
4
+ * https://github.com/nodable/val-parsers
5
+ *
6
+ * This file bundles the EntityDecoder class and the named-entity maps
7
+ * (XML, COMMON_HTML, CURRENCY).
8
+ *
9
+ * This is a temporary solution while using this particular custom
10
+ * EntityDecoder class. The module-only nature of the original version
11
+ * is incompatible with some of our users' applications.
12
+ *
13
+ * Given that our CJS dist must call `require` to bring in the module, and
14
+ * because the EntityDecoder class and object are inaccessible via the runtime object surface
15
+ * of the XMLParser, we must inline the package.
16
+ *
17
+ * Q: Why is this necessary given that fast-xml-parser itself uses \@nodable/entities?
18
+ * A: FXP only uses \@nodable/entities when imported in ESM mode. When importing FXP
19
+ * via require, a bundled version is used, unaffected by the module-only nature
20
+ * of the entities package.
21
+ */
22
+ export declare const XML: Record<string, string>;
23
+ export declare const COMMON_HTML: Record<string, string>;
24
+ export declare const CURRENCY: Record<string, string>;
25
+ type EntityValFn = (match: string, captured: string, ...rest: unknown[]) => string;
26
+ type ApplyLimitsTo = "external" | "base" | "all" | Array<"external" | "base">;
27
+ interface EntityDecoderLimitOptions {
28
+ maxTotalExpansions?: number;
29
+ maxExpandedLength?: number;
30
+ applyLimitsTo?: ApplyLimitsTo;
31
+ }
32
+ interface EntityDecoderNCROptions {
33
+ xmlVersion?: 1.0 | 1.1;
34
+ onNCR?: "allow" | "leave" | "remove" | "throw";
35
+ nullNCR?: "remove" | "throw";
36
+ }
37
+ interface EntityDecoderOptions {
38
+ namedEntities?: Record<string, string | {
39
+ regex: RegExp;
40
+ val: string | EntityValFn;
41
+ }> | null;
42
+ postCheck?: ((resolved: string, original: string) => string) | null;
43
+ numericAllowed?: boolean;
44
+ leave?: string[];
45
+ remove?: string[];
46
+ limit?: EntityDecoderLimitOptions;
47
+ ncr?: EntityDecoderNCROptions;
48
+ }
49
+ export interface EntityDecoder {
50
+ setExternalEntities(map: Record<string, string | {
51
+ regex: RegExp;
52
+ val: string | EntityValFn;
53
+ }>): void;
54
+ addExternalEntity(key: string, value: string): void;
55
+ addInputEntities(map: Record<string, string | {
56
+ regx?: RegExp;
57
+ regex?: RegExp;
58
+ val: string | EntityValFn;
59
+ }>): void;
60
+ reset(): this;
61
+ decode(str: string): string;
62
+ setXmlVersion(version: string): void;
63
+ }
64
+ export declare const EntityDecoderImpl: new (options?: EntityDecoderOptions) => EntityDecoder;
65
+ export {};
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "@aws-sdk/xml-builder",
3
- "version": "3.972.19",
3
+ "version": "3.972.22",
4
4
  "description": "XML utilities for the AWS SDK",
5
5
  "dependencies": {
6
+ "@nodable/entities": "2.1.0",
6
7
  "@smithy/types": "^4.14.1",
7
- "fast-xml-parser": "5.7.1",
8
+ "fast-xml-parser": "5.7.2",
8
9
  "tslib": "^2.6.2"
9
10
  },
10
11
  "scripts": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/middleware-retry",
3
- "version": "4.5.6",
3
+ "version": "4.5.7",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:types' 'yarn:build:es:cjs'",
6
6
  "build:es:cjs": "yarn g:tsc -p tsconfig.es.json && node ../../scripts/inline middleware-retry",
@@ -40,7 +40,7 @@
40
40
  "@smithy/smithy-client": "^4.12.13",
41
41
  "@smithy/types": "^4.14.1",
42
42
  "@smithy/util-middleware": "^4.2.14",
43
- "@smithy/util-retry": "^4.3.5",
43
+ "@smithy/util-retry": "^4.3.6",
44
44
  "@smithy/uuid": "^1.1.2",
45
45
  "tslib": "^2.6.2"
46
46
  },
@@ -70,9 +70,10 @@ class DefaultRateLimiter {
70
70
  return;
71
71
  }
72
72
  this.refillTokenBucket();
73
- if (amount > this.availableTokens) {
73
+ while (amount > this.availableTokens) {
74
74
  const delay = ((amount - this.availableTokens) / this.fillRate) * 1000;
75
75
  await new Promise((resolve) => DefaultRateLimiter.setTimeoutFn(resolve, delay));
76
+ this.refillTokenBucket();
76
77
  }
77
78
  this.availableTokens = this.availableTokens - amount;
78
79
  }
@@ -291,12 +292,15 @@ class AdaptiveRetryStrategy {
291
292
  : new StandardRetryStrategy(maxAttemptsProvider);
292
293
  }
293
294
  async acquireInitialRetryToken(retryTokenScope) {
295
+ const token = await this.standardRetryStrategy.acquireInitialRetryToken(retryTokenScope);
294
296
  await this.rateLimiter.getSendToken();
295
- return this.standardRetryStrategy.acquireInitialRetryToken(retryTokenScope);
297
+ return token;
296
298
  }
297
299
  async refreshRetryTokenForRetry(tokenToRenew, errorInfo) {
298
300
  this.rateLimiter.updateClientSendingRate(errorInfo);
299
- return this.standardRetryStrategy.refreshRetryTokenForRetry(tokenToRenew, errorInfo);
301
+ const token = await this.standardRetryStrategy.refreshRetryTokenForRetry(tokenToRenew, errorInfo);
302
+ await this.rateLimiter.getSendToken();
303
+ return token;
300
304
  }
301
305
  recordSuccess(token) {
302
306
  this.rateLimiter.updateClientSendingRate({});
@@ -16,12 +16,15 @@ export class AdaptiveRetryStrategy {
16
16
  : new StandardRetryStrategy(maxAttemptsProvider);
17
17
  }
18
18
  async acquireInitialRetryToken(retryTokenScope) {
19
+ const token = await this.standardRetryStrategy.acquireInitialRetryToken(retryTokenScope);
19
20
  await this.rateLimiter.getSendToken();
20
- return this.standardRetryStrategy.acquireInitialRetryToken(retryTokenScope);
21
+ return token;
21
22
  }
22
23
  async refreshRetryTokenForRetry(tokenToRenew, errorInfo) {
23
24
  this.rateLimiter.updateClientSendingRate(errorInfo);
24
- return this.standardRetryStrategy.refreshRetryTokenForRetry(tokenToRenew, errorInfo);
25
+ const token = await this.standardRetryStrategy.refreshRetryTokenForRetry(tokenToRenew, errorInfo);
26
+ await this.rateLimiter.getSendToken();
27
+ return token;
25
28
  }
26
29
  recordSuccess(token) {
27
30
  this.rateLimiter.updateClientSendingRate({});
@@ -59,9 +59,10 @@ export class DefaultRateLimiter {
59
59
  return;
60
60
  }
61
61
  this.refillTokenBucket();
62
- if (amount > this.availableTokens) {
62
+ while (amount > this.availableTokens) {
63
63
  const delay = ((amount - this.availableTokens) / this.fillRate) * 1000;
64
64
  await new Promise((resolve) => DefaultRateLimiter.setTimeoutFn(resolve, delay));
65
+ this.refillTokenBucket();
65
66
  }
66
67
  this.availableTokens = this.availableTokens - amount;
67
68
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/util-retry",
3
- "version": "4.3.5",
3
+ "version": "4.3.8",
4
4
  "description": "Shared retry utilities to be used in middleware packages.",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -67,4 +67,4 @@
67
67
  "publishConfig": {
68
68
  "directory": ".release/package"
69
69
  }
70
- }
70
+ }
@@ -1,3 +1,27 @@
1
+
2
+
3
+
4
+ **1.2.0** (2026-05-08)
5
+ - Add support for `sanitizeName` option
6
+ - Support xml-naming for validating and sanitizing tag and attribute names
7
+
8
+ **1.1.9** (2026-05-06)
9
+ - fix: format output for preserve order when indent by is set to empty string
10
+
11
+ **1.1.8** (2026-05-05)
12
+ - fix: skip text property for PI tags
13
+ - improve typings
14
+
15
+ **1.1.7** (2026--05-04)
16
+ - fix security issues when attribute value contains quotes
17
+
18
+ **1.1.6** (2026--05-04)
19
+ - fix security issues related to comment
20
+ - skip comment with null value
21
+
22
+ **1.1.5** (2026-04-17)
23
+ - fix security issues related to comment and cdata
24
+
1
25
  **1.1.4** (2026-03-16)
2
26
  - support maxNestedTags option
3
27
 
@@ -2,7 +2,7 @@
2
2
  Build XML from JSON
3
3
 
4
4
 
5
- XML Builder was the part of [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) for years. But considering that any bug in parser may false-alarm the users who are only using builder, we have decided to split it into a separate package.
5
+ XML Builder was part of [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) for years. But considering that any bug in the parser may false-alarm users who are only using the builder, we have decided to split it into a separate package.
6
6
 
7
7
  ## Installation
8
8
 
@@ -19,5 +19,56 @@ const builder = new XMLBuilder();
19
19
  const xml = builder.build({ name: 'value' });
20
20
  ```
21
21
 
22
- fast-xml-builder fully support the response generated by fast-xml-parser. So you can use the maximum options as you are using for fast-xml-parser like `preserveOrder`, `ignoreAttributes`, `attributeNamePrefix`, `textNodeName`, `cdataTagName`, `cdataPositionChar`, `format`, `indentBy`, `suppressEmptyNode` and many more. Any change in parser will reflect here time to time.
22
+ fast-xml-builder fully supports the response generated by fast-xml-parser. You can use options like `preserveOrder`, `ignoreAttributes`, `attributeNamePrefix`, `textNodeName`, `cdataPropName`, `commentPropName`, `format`, `indentBy`, `suppressEmptyNode`, `suppressUnpairedNode`, `stopNodes`, `oneListGroup`, `maxNestedTags`, and many more.
23
23
 
24
+ ## Default Options
25
+
26
+ ```js
27
+ {
28
+ attributeNamePrefix: '@_',
29
+ attributesGroupName: false,
30
+ textNodeName: '#text',
31
+ ignoreAttributes: true,
32
+ cdataPropName: false,
33
+ commentPropName: false,
34
+ format: false,
35
+ indentBy: ' ',
36
+ suppressEmptyNode: false,
37
+ suppressUnpairedNode: true,
38
+ suppressBooleanAttributes: true,
39
+ preserveOrder: false,
40
+ processEntities: true,
41
+ unpairedTags: [],
42
+ stopNodes: [],
43
+ oneListGroup: false,
44
+ maxNestedTags: 100,
45
+ jPath: true,
46
+ tagValueProcessor: (key, val) => val,
47
+ attributeValueProcessor: (attrName, val) => val,
48
+ }
49
+ ```
50
+
51
+ ## Options Reference
52
+
53
+ Check [Options reference](docs/Builder_v1.md) for more detail and examples.
54
+
55
+ - **arrayNodeName**: When building XML from an array, set `arrayNodeName` to wrap each element in a tag name.
56
+ - **attributeNamePrefix**: Prefix used to identify attribute properties in the JS object. Default: `'@_'`.
57
+ - **attributesGroupName**: Group name for attributes in the JS object. When set, all attributes are expected to be nested under this key. Not supported with `preserveOrder: true`.
58
+ - **attributeValueProcessor**: Customize how attribute values are serialized. Receives the attribute name and value.
59
+ - **cdataPropName**: Property name that identifies CDATA content. Values under this key are wrapped in `<![CDATA[...]]>`.
60
+ - **commentPropName**: Property name that identifies comment content. Values under this key are rendered as `<!-- ... -->`.
61
+ - **format**: By default, output is a single-line XML string. Set `format: true` for human-readable, indented output.
62
+ - **ignoreAttributes**: By default (`true`), attributes are skipped. Set to `false` to include them. Also supports selective ignoring via an array of strings, array of regular expressions, or a callback function.
63
+ - **indentBy**: String used for each level of indentation. Default: `' '` (two spaces). Only applies when `format: true`.
64
+ - **maxNestedTags**: Limits the maximum depth of nested tags. An error is thrown if this depth is exceeded. Default: `100`.
65
+ - **oneListGroup**: Groups all repeated child tags under a single parent tag.
66
+ - **preserveOrder**: When a JS object was produced by XMLParser with `preserveOrder: true`, pass the same option to XMLBuilder to reconstruct the original XML correctly.
67
+ - **processEntities**: When `true` (default), special characters in text and attribute values are replaced with XML entities (`&amp;`, `&lt;`, etc.). Set to `false` for a performance boost when you know your content has no entities. Note: quotes in attribute values are always escaped regardless of this setting.
68
+ - **stopNodes**: Tags listed here are treated as raw content containers — their text content is written as-is without entity encoding. Accepts an array of tag name strings or `Expression` instances from `path-expression-matcher`. The old `*.tagName` wildcard syntax is still accepted and automatically converted to the equivalent `..tagName` deep-wildcard syntax.
69
+ - **suppressBooleanAttributes**: When `true` (default), attributes with the value `true` are rendered without the value (e.g. `<tag attr>` instead of `<tag attr="true">`).
70
+ - **suppressEmptyNode**: When `true`, tags with no text value are rendered as self-closing (`<tag/>`).
71
+ - **suppressUnpairedNode**: When `true` (default), unpaired tags are rendered without a closing slash (`<br>`). When `false`, they are rendered as `<br/>`.
72
+ - **tagValueProcessor**: Customize how tag text values are serialized. Receives the tag name and value.
73
+ - **textNodeName**: Property name representing the text content of a tag in the JS object. Default: `'#text'`.
74
+ - **unpairedTags**: List of tag names that have no matching closing tag (e.g. `<br>` in HTML).
@@ -1 +1 @@
1
- (()=>{"use strict";var t={d:(e,i)=>{for(var s in i)t.o(i,s)&&!t.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:i[s]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{default:()=>f});class i{constructor(t,e={}){this.pattern=t,this.separator=e.separator||".",this.segments=this._parse(t),this._hasDeepWildcard=this.segments.some(t=>"deep-wildcard"===t.type),this._hasAttributeCondition=this.segments.some(t=>void 0!==t.attrName),this._hasPositionSelector=this.segments.some(t=>void 0!==t.position)}_parse(t){const e=[];let i=0,s="";for(;i<t.length;)t[i]===this.separator?i+1<t.length&&t[i+1]===this.separator?(s.trim()&&(e.push(this._parseSegment(s.trim())),s=""),e.push({type:"deep-wildcard"}),i+=2):(s.trim()&&e.push(this._parseSegment(s.trim())),s="",i++):(s+=t[i],i++);return s.trim()&&e.push(this._parseSegment(s.trim())),e}_parseSegment(t){const e={type:"tag"};let i=null,s=t;const n=t.match(/^([^\[]+)(\[[^\]]*\])(.*)$/);if(n&&(s=n[1]+n[3],n[2])){const t=n[2].slice(1,-1);t&&(i=t)}let o,r,a=s;if(s.includes("::")){const e=s.indexOf("::");if(o=s.substring(0,e).trim(),a=s.substring(e+2).trim(),!o)throw new Error(`Invalid namespace in pattern: ${t}`)}let h=null;if(a.includes(":")){const t=a.lastIndexOf(":"),e=a.substring(0,t).trim(),i=a.substring(t+1).trim();["first","last","odd","even"].includes(i)||/^nth\(\d+\)$/.test(i)?(r=e,h=i):r=a}else r=a;if(!r)throw new Error(`Invalid segment pattern: ${t}`);if(e.tag=r,o&&(e.namespace=o),i)if(i.includes("=")){const t=i.indexOf("=");e.attrName=i.substring(0,t).trim(),e.attrValue=i.substring(t+1).trim()}else e.attrName=i.trim();if(h){const t=h.match(/^nth\((\d+)\)$/);t?(e.position="nth",e.positionValue=parseInt(t[1],10)):e.position=h}return e}get length(){return this.segments.length}hasDeepWildcard(){return this._hasDeepWildcard}hasAttributeCondition(){return this._hasAttributeCondition}hasPositionSelector(){return this._hasPositionSelector}toString(){return this.pattern}}class s{constructor(t={}){this.separator=t.separator||".",this.path=[],this.siblingStacks=[]}push(t,e=null,i=null){this.path.length>0&&(this.path[this.path.length-1].values=void 0);const s=this.path.length;this.siblingStacks[s]||(this.siblingStacks[s]=new Map);const n=this.siblingStacks[s],o=i?`${i}:${t}`:t,r=n.get(o)||0;let a=0;for(const t of n.values())a+=t;n.set(o,r+1);const h={tag:t,position:a,counter:r};null!=i&&(h.namespace=i),null!=e&&(h.values=e),this.path.push(h)}pop(){if(0===this.path.length)return;const t=this.path.pop();return this.siblingStacks.length>this.path.length+1&&(this.siblingStacks.length=this.path.length+1),t}updateCurrent(t){if(this.path.length>0){const e=this.path[this.path.length-1];null!=t&&(e.values=t)}}getCurrentTag(){return this.path.length>0?this.path[this.path.length-1].tag:void 0}getCurrentNamespace(){return this.path.length>0?this.path[this.path.length-1].namespace:void 0}getAttrValue(t){if(0===this.path.length)return;const e=this.path[this.path.length-1];return e.values?.[t]}hasAttr(t){if(0===this.path.length)return!1;const e=this.path[this.path.length-1];return void 0!==e.values&&t in e.values}getPosition(){return 0===this.path.length?-1:this.path[this.path.length-1].position??0}getCounter(){return 0===this.path.length?-1:this.path[this.path.length-1].counter??0}getIndex(){return this.getPosition()}getDepth(){return this.path.length}toString(t,e=!0){const i=t||this.separator;return this.path.map(t=>e&&t.namespace?`${t.namespace}:${t.tag}`:t.tag).join(i)}toArray(){return this.path.map(t=>t.tag)}reset(){this.path=[],this.siblingStacks=[]}matches(t){const e=t.segments;return 0!==e.length&&(t.hasDeepWildcard()?this._matchWithDeepWildcard(e):this._matchSimple(e))}_matchSimple(t){if(this.path.length!==t.length)return!1;for(let e=0;e<t.length;e++){const i=t[e],s=this.path[e],n=e===this.path.length-1;if(!this._matchSegment(i,s,n))return!1}return!0}_matchWithDeepWildcard(t){let e=this.path.length-1,i=t.length-1;for(;i>=0&&e>=0;){const s=t[i];if("deep-wildcard"===s.type){if(i--,i<0)return!0;const s=t[i];let n=!1;for(let t=e;t>=0;t--){const o=t===this.path.length-1;if(this._matchSegment(s,this.path[t],o)){e=t-1,i--,n=!0;break}}if(!n)return!1}else{const t=e===this.path.length-1;if(!this._matchSegment(s,this.path[e],t))return!1;e--,i--}}return i<0}_matchSegment(t,e,i){if("*"!==t.tag&&t.tag!==e.tag)return!1;if(void 0!==t.namespace&&"*"!==t.namespace&&t.namespace!==e.namespace)return!1;if(void 0!==t.attrName){if(!i)return!1;if(!e.values||!(t.attrName in e.values))return!1;if(void 0!==t.attrValue){const i=e.values[t.attrName];if(String(i)!==String(t.attrValue))return!1}}if(void 0!==t.position){if(!i)return!1;const s=e.counter??0;if("first"===t.position&&0!==s)return!1;if("odd"===t.position&&s%2!=1)return!1;if("even"===t.position&&s%2!=0)return!1;if("nth"===t.position&&s!==t.positionValue)return!1}return!0}snapshot(){return{path:this.path.map(t=>({...t})),siblingStacks:this.siblingStacks.map(t=>new Map(t))}}restore(t){this.path=t.path.map(t=>({...t})),this.siblingStacks=t.siblingStacks.map(t=>new Map(t))}}function n(t,e){let n="";e.format&&e.indentBy.length>0&&(n="\n");const r=[];if(e.stopNodes&&Array.isArray(e.stopNodes))for(let t=0;t<e.stopNodes.length;t++){const s=e.stopNodes[t];"string"==typeof s?r.push(new i(s)):s instanceof i&&r.push(s)}return o(t,e,n,new s,r)}function o(t,e,i,s,n){let h="",d=!1;if(e.maxNestedTags&&s.getDepth()>e.maxNestedTags)throw new Error("Maximum nested tags exceeded");if(!Array.isArray(t)){if(null!=t){let i=t.toString();return i=c(i,e),i}return""}for(let f=0;f<t.length;f++){const g=t[f],m=p(g);if(void 0===m)continue;const b=r(g[":@"],e);s.push(m,b);const N=l(s,n);if(m===e.textNodeName){let t=g[m];N||(t=e.tagValueProcessor(m,t),t=c(t,e)),d&&(h+=i),h+=t,d=!1,s.pop();continue}if(m===e.cdataPropName){d&&(h+=i),h+=`<![CDATA[${g[m][0][e.textNodeName]}]]>`,d=!1,s.pop();continue}if(m===e.commentPropName){h+=i+`\x3c!--${g[m][0][e.textNodeName]}--\x3e`,d=!0,s.pop();continue}if("?"===m[0]){const t=u(g[":@"],e,N),n="?xml"===m?"":i;let o=g[m][0][e.textNodeName];o=0!==o.length?" "+o:"",h+=n+`<${m}${o}${t}?>`,d=!0,s.pop();continue}let y=i;""!==y&&(y+=e.indentBy);const x=i+`<${m}${u(g[":@"],e,N)}`;let P;P=N?a(g[m],e):o(g[m],e,y,s,n),-1!==e.unpairedTags.indexOf(m)?e.suppressUnpairedNode?h+=x+">":h+=x+"/>":P&&0!==P.length||!e.suppressEmptyNode?P&&P.endsWith(">")?h+=x+`>${P}${i}</${m}>`:(h+=x+">",P&&""!==i&&(P.includes("/>")||P.includes("</"))?h+=i+e.indentBy+P+i:h+=P,h+=`</${m}>`):h+=x+"/>",d=!0,s.pop()}return h}function r(t,e){if(!t||e.ignoreAttributes)return null;const i={};let s=!1;for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n.startsWith(e.attributeNamePrefix)?n.substr(e.attributeNamePrefix.length):n]=t[n],s=!0);return s?i:null}function a(t,e){if(!Array.isArray(t))return null!=t?t.toString():"";let i="";for(let s=0;s<t.length;s++){const n=t[s],o=p(n);if(o===e.textNodeName)i+=n[o];else if(o===e.cdataPropName)i+=n[o][0][e.textNodeName];else if(o===e.commentPropName)i+=n[o][0][e.textNodeName];else{if(o&&"?"===o[0])continue;if(o){const t=h(n[":@"],e),s=a(n[o],e);s&&0!==s.length?i+=`<${o}${t}>${s}</${o}>`:i+=`<${o}${t}/>`}}}return i}function h(t,e){let i="";if(t&&!e.ignoreAttributes)for(let s in t){if(!Object.prototype.hasOwnProperty.call(t,s))continue;let n=t[s];!0===n&&e.suppressBooleanAttributes?i+=` ${s.substr(e.attributeNamePrefix.length)}`:i+=` ${s.substr(e.attributeNamePrefix.length)}="${n}"`}return i}function p(t){const e=Object.keys(t);for(let i=0;i<e.length;i++){const s=e[i];if(Object.prototype.hasOwnProperty.call(t,s)&&":@"!==s)return s}}function u(t,e,i){let s="";if(t&&!e.ignoreAttributes)for(let n in t){if(!Object.prototype.hasOwnProperty.call(t,n))continue;let o;i?o=t[n]:(o=e.attributeValueProcessor(n,t[n]),o=c(o,e)),!0===o&&e.suppressBooleanAttributes?s+=` ${n.substr(e.attributeNamePrefix.length)}`:s+=` ${n.substr(e.attributeNamePrefix.length)}="${o}"`}return s}function l(t,e){if(!e||0===e.length)return!1;for(let i=0;i<e.length;i++)if(t.matches(e[i]))return!0;return!1}function c(t,e){if(t&&t.length>0&&e.processEntities)for(let i=0;i<e.entities.length;i++){const s=e.entities[i];t=t.replace(s.regex,s.val)}return t}const d={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&amp;"},{regex:new RegExp(">","g"),val:"&gt;"},{regex:new RegExp("<","g"),val:"&lt;"},{regex:new RegExp("'","g"),val:"&apos;"},{regex:new RegExp('"',"g"),val:"&quot;"}],processEntities:!0,stopNodes:[],oneListGroup:!1,maxNestedTags:100,jPath:!0};function f(t){if(this.options=Object.assign({},d,t),this.options.stopNodes&&Array.isArray(this.options.stopNodes)&&(this.options.stopNodes=this.options.stopNodes.map(t=>"string"==typeof t&&t.startsWith("*.")?".."+t.substring(2):t)),this.stopNodeExpressions=[],this.options.stopNodes&&Array.isArray(this.options.stopNodes))for(let t=0;t<this.options.stopNodes.length;t++){const e=this.options.stopNodes[t];"string"==typeof e?this.stopNodeExpressions.push(new i(e)):e instanceof i&&this.stopNodeExpressions.push(e)}var e;!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn="function"==typeof(e=this.options.ignoreAttributes)?e:Array.isArray(e)?t=>{for(const i of e){if("string"==typeof i&&t===i)return!0;if(i instanceof RegExp&&i.test(t))return!0}}:()=>!1,this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=b),this.processTextOrObjNode=g,this.options.format?(this.indentate=m,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function g(t,e,i,s){const n=this.extractAttributes(t);if(s.push(e,n),this.checkStopNode(s)){const n=this.buildRawContent(t),o=this.buildAttributesForStopNode(t);return s.pop(),this.buildObjectNode(n,e,o,i)}const o=this.j2x(t,i+1,s);return s.pop(),void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,o.attrStr,i,s):this.buildObjectNode(o.val,e,o.attrStr,i)}function m(t){return this.options.indentBy.repeat(t)}function b(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}f.prototype.build=function(t){if(this.options.preserveOrder)return n(t,this.options);{Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t});const e=new s;return this.j2x(t,0,e).val}},f.prototype.j2x=function(t,e,i){let s="",n="";if(this.options.maxNestedTags&&i.getDepth()>=this.options.maxNestedTags)throw new Error("Maximum nested tags exceeded");const o=this.options.jPath?i.toString():i,r=this.checkStopNode(i);for(let a in t)if(Object.prototype.hasOwnProperty.call(t,a))if(void 0===t[a])this.isAttribute(a)&&(n+="");else if(null===t[a])this.isAttribute(a)||a===this.options.cdataPropName?n+="":"?"===a[0]?n+=this.indentate(e)+"<"+a+"?"+this.tagEndChar:n+=this.indentate(e)+"<"+a+"/"+this.tagEndChar;else if(t[a]instanceof Date)n+=this.buildTextValNode(t[a],a,"",e,i);else if("object"!=typeof t[a]){const h=this.isAttribute(a);if(h&&!this.ignoreAttributesFn(h,o))s+=this.buildAttrPairStr(h,""+t[a],r);else if(!h)if(a===this.options.textNodeName){let e=this.options.tagValueProcessor(a,""+t[a]);n+=this.replaceEntitiesValue(e)}else{i.push(a);const s=this.checkStopNode(i);if(i.pop(),s){const i=""+t[a];n+=""===i?this.indentate(e)+"<"+a+this.closeTag(a)+this.tagEndChar:this.indentate(e)+"<"+a+">"+i+"</"+a+this.tagEndChar}else n+=this.buildTextValNode(t[a],a,"",e,i)}}else if(Array.isArray(t[a])){const s=t[a].length;let o="",r="";for(let h=0;h<s;h++){const s=t[a][h];if(void 0===s);else if(null===s)"?"===a[0]?n+=this.indentate(e)+"<"+a+"?"+this.tagEndChar:n+=this.indentate(e)+"<"+a+"/"+this.tagEndChar;else if("object"==typeof s)if(this.options.oneListGroup){i.push(a);const t=this.j2x(s,e+1,i);i.pop(),o+=t.val,this.options.attributesGroupName&&s.hasOwnProperty(this.options.attributesGroupName)&&(r+=t.attrStr)}else o+=this.processTextOrObjNode(s,a,e,i);else if(this.options.oneListGroup){let t=this.options.tagValueProcessor(a,s);t=this.replaceEntitiesValue(t),o+=t}else{i.push(a);const t=this.checkStopNode(i);if(i.pop(),t){const t=""+s;o+=""===t?this.indentate(e)+"<"+a+this.closeTag(a)+this.tagEndChar:this.indentate(e)+"<"+a+">"+t+"</"+a+this.tagEndChar}else o+=this.buildTextValNode(s,a,"",e,i)}}this.options.oneListGroup&&(o=this.buildObjectNode(o,a,r,e)),n+=o}else if(this.options.attributesGroupName&&a===this.options.attributesGroupName){const e=Object.keys(t[a]),i=e.length;for(let n=0;n<i;n++)s+=this.buildAttrPairStr(e[n],""+t[a][e[n]],r)}else n+=this.processTextOrObjNode(t[a],a,e,i);return{attrStr:s,val:n}},f.prototype.buildAttrPairStr=function(t,e,i){return i||(e=this.options.attributeValueProcessor(t,""+e),e=this.replaceEntitiesValue(e)),this.options.suppressBooleanAttributes&&"true"===e?" "+t:" "+t+'="'+e+'"'},f.prototype.extractAttributes=function(t){if(!t||"object"!=typeof t)return null;const e={};let i=!1;if(this.options.attributesGroupName&&t[this.options.attributesGroupName]){const s=t[this.options.attributesGroupName];for(let t in s)Object.prototype.hasOwnProperty.call(s,t)&&(e[t.startsWith(this.options.attributeNamePrefix)?t.substring(this.options.attributeNamePrefix.length):t]=s[t],i=!0)}else for(let s in t){if(!Object.prototype.hasOwnProperty.call(t,s))continue;const n=this.isAttribute(s);n&&(e[n]=t[s],i=!0)}return i?e:null},f.prototype.buildRawContent=function(t){if("string"==typeof t)return t;if("object"!=typeof t||null===t)return String(t);if(void 0!==t[this.options.textNodeName])return t[this.options.textNodeName];let e="";for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i))continue;if(this.isAttribute(i))continue;if(this.options.attributesGroupName&&i===this.options.attributesGroupName)continue;const s=t[i];if(i===this.options.textNodeName)e+=s;else if(Array.isArray(s)){for(let t of s)if("string"==typeof t||"number"==typeof t)e+=`<${i}>${t}</${i}>`;else if("object"==typeof t&&null!==t){const s=this.buildRawContent(t),n=this.buildAttributesForStopNode(t);e+=""===s?`<${i}${n}/>`:`<${i}${n}>${s}</${i}>`}}else if("object"==typeof s&&null!==s){const t=this.buildRawContent(s),n=this.buildAttributesForStopNode(s);e+=""===t?`<${i}${n}/>`:`<${i}${n}>${t}</${i}>`}else e+=`<${i}>${s}</${i}>`}return e},f.prototype.buildAttributesForStopNode=function(t){if(!t||"object"!=typeof t)return"";let e="";if(this.options.attributesGroupName&&t[this.options.attributesGroupName]){const i=t[this.options.attributesGroupName];for(let t in i){if(!Object.prototype.hasOwnProperty.call(i,t))continue;const s=t.startsWith(this.options.attributeNamePrefix)?t.substring(this.options.attributeNamePrefix.length):t,n=i[t];!0===n&&this.options.suppressBooleanAttributes?e+=" "+s:e+=" "+s+'="'+n+'"'}}else for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i))continue;const s=this.isAttribute(i);if(s){const n=t[i];!0===n&&this.options.suppressBooleanAttributes?e+=" "+s:e+=" "+s+'="'+n+'"'}}return e},f.prototype.buildObjectNode=function(t,e,i,s){if(""===t)return"?"===e[0]?this.indentate(s)+"<"+e+i+"?"+this.tagEndChar:this.indentate(s)+"<"+e+i+this.closeTag(e)+this.tagEndChar;{let n="</"+e+this.tagEndChar,o="";return"?"===e[0]&&(o="?",n=""),!i&&""!==i||-1!==t.indexOf("<")?!1!==this.options.commentPropName&&e===this.options.commentPropName&&0===o.length?this.indentate(s)+`\x3c!--${t}--\x3e`+this.newLine:this.indentate(s)+"<"+e+i+o+this.tagEndChar+t+this.indentate(s)+n:this.indentate(s)+"<"+e+i+o+">"+t+n}},f.prototype.closeTag=function(t){let e="";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e="/"):e=this.options.suppressEmptyNode?"/":`></${t}`,e},f.prototype.checkStopNode=function(t){if(!this.stopNodeExpressions||0===this.stopNodeExpressions.length)return!1;for(let e=0;e<this.stopNodeExpressions.length;e++)if(t.matches(this.stopNodeExpressions[e]))return!0;return!1},f.prototype.buildTextValNode=function(t,e,i,s,n){if(!1!==this.options.cdataPropName&&e===this.options.cdataPropName)return this.indentate(s)+`<![CDATA[${t}]]>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(s)+`\x3c!--${t}--\x3e`+this.newLine;if("?"===e[0])return this.indentate(s)+"<"+e+i+"?"+this.tagEndChar;{let n=this.options.tagValueProcessor(e,t);return n=this.replaceEntitiesValue(n),""===n?this.indentate(s)+"<"+e+i+this.closeTag(e)+this.tagEndChar:this.indentate(s)+"<"+e+i+">"+n+"</"+e+this.tagEndChar}},f.prototype.replaceEntitiesValue=function(t){if(t&&t.length>0&&this.options.processEntities)for(let e=0;e<this.options.entities.length;e++){const i=this.options.entities[e];t=t.replace(i.regex,i.val)}return t},module.exports=e})();
1
+ (()=>{"use strict";var t={d:(e,i)=>{for(var s in i)t.o(i,s)&&!t.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:i[s]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{default:()=>w});class i{constructor(t,e={},i){this.pattern=t,this.separator=e.separator||".",this.segments=this._parse(t),this.data=i,this._hasDeepWildcard=this.segments.some(t=>"deep-wildcard"===t.type),this._hasAttributeCondition=this.segments.some(t=>void 0!==t.attrName),this._hasPositionSelector=this.segments.some(t=>void 0!==t.position)}_parse(t){const e=[];let i=0,s="";for(;i<t.length;)t[i]===this.separator?i+1<t.length&&t[i+1]===this.separator?(s.trim()&&(e.push(this._parseSegment(s.trim())),s=""),e.push({type:"deep-wildcard"}),i+=2):(s.trim()&&e.push(this._parseSegment(s.trim())),s="",i++):(s+=t[i],i++);return s.trim()&&e.push(this._parseSegment(s.trim())),e}_parseSegment(t){const e={type:"tag"};let i=null,s=t;const n=t.match(/^([^\[]+)(\[[^\]]*\])(.*)$/);if(n&&(s=n[1]+n[3],n[2])){const t=n[2].slice(1,-1);t&&(i=t)}let r,o,a=s;if(s.includes("::")){const e=s.indexOf("::");if(r=s.substring(0,e).trim(),a=s.substring(e+2).trim(),!r)throw new Error(`Invalid namespace in pattern: ${t}`)}let h=null;if(a.includes(":")){const t=a.lastIndexOf(":"),e=a.substring(0,t).trim(),i=a.substring(t+1).trim();["first","last","odd","even"].includes(i)||/^nth\(\d+\)$/.test(i)?(o=e,h=i):o=a}else o=a;if(!o)throw new Error(`Invalid segment pattern: ${t}`);if(e.tag=o,r&&(e.namespace=r),i)if(i.includes("=")){const t=i.indexOf("=");e.attrName=i.substring(0,t).trim(),e.attrValue=i.substring(t+1).trim()}else e.attrName=i.trim();if(h){const t=h.match(/^nth\((\d+)\)$/);t?(e.position="nth",e.positionValue=parseInt(t[1],10)):e.position=h}return e}get length(){return this.segments.length}hasDeepWildcard(){return this._hasDeepWildcard}hasAttributeCondition(){return this._hasAttributeCondition}hasPositionSelector(){return this._hasPositionSelector}toString(){return this.pattern}}class s{constructor(t){this._matcher=t}get separator(){return this._matcher.separator}getCurrentTag(){const t=this._matcher.path;return t.length>0?t[t.length-1].tag:void 0}getCurrentNamespace(){const t=this._matcher.path;return t.length>0?t[t.length-1].namespace:void 0}getAttrValue(t){const e=this._matcher.path;if(0!==e.length)return e[e.length-1].values?.[t]}hasAttr(t){const e=this._matcher.path;if(0===e.length)return!1;const i=e[e.length-1];return void 0!==i.values&&t in i.values}getPosition(){const t=this._matcher.path;return 0===t.length?-1:t[t.length-1].position??0}getCounter(){const t=this._matcher.path;return 0===t.length?-1:t[t.length-1].counter??0}getIndex(){return this.getPosition()}getDepth(){return this._matcher.path.length}toString(t,e=!0){return this._matcher.toString(t,e)}toArray(){return this._matcher.path.map(t=>t.tag)}matches(t){return this._matcher.matches(t)}matchesAny(t){return t.matchesAny(this._matcher)}}class n{constructor(t={}){this.separator=t.separator||".",this.path=[],this.siblingStacks=[],this._pathStringCache=null,this._view=new s(this)}push(t,e=null,i=null){this._pathStringCache=null,this.path.length>0&&(this.path[this.path.length-1].values=void 0);const s=this.path.length;this.siblingStacks[s]||(this.siblingStacks[s]=new Map);const n=this.siblingStacks[s],r=i?`${i}:${t}`:t,o=n.get(r)||0;let a=0;for(const t of n.values())a+=t;n.set(r,o+1);const h={tag:t,position:a,counter:o};null!=i&&(h.namespace=i),null!=e&&(h.values=e),this.path.push(h)}pop(){if(0===this.path.length)return;this._pathStringCache=null;const t=this.path.pop();return this.siblingStacks.length>this.path.length+1&&(this.siblingStacks.length=this.path.length+1),t}updateCurrent(t){if(this.path.length>0){const e=this.path[this.path.length-1];null!=t&&(e.values=t)}}getCurrentTag(){return this.path.length>0?this.path[this.path.length-1].tag:void 0}getCurrentNamespace(){return this.path.length>0?this.path[this.path.length-1].namespace:void 0}getAttrValue(t){if(0!==this.path.length)return this.path[this.path.length-1].values?.[t]}hasAttr(t){if(0===this.path.length)return!1;const e=this.path[this.path.length-1];return void 0!==e.values&&t in e.values}getPosition(){return 0===this.path.length?-1:this.path[this.path.length-1].position??0}getCounter(){return 0===this.path.length?-1:this.path[this.path.length-1].counter??0}getIndex(){return this.getPosition()}getDepth(){return this.path.length}toString(t,e=!0){const i=t||this.separator;if(i===this.separator&&!0===e){if(null!==this._pathStringCache)return this._pathStringCache;const t=this.path.map(t=>t.namespace?`${t.namespace}:${t.tag}`:t.tag).join(i);return this._pathStringCache=t,t}return this.path.map(t=>e&&t.namespace?`${t.namespace}:${t.tag}`:t.tag).join(i)}toArray(){return this.path.map(t=>t.tag)}reset(){this._pathStringCache=null,this.path=[],this.siblingStacks=[]}matches(t){const e=t.segments;return 0!==e.length&&(t.hasDeepWildcard()?this._matchWithDeepWildcard(e):this._matchSimple(e))}_matchSimple(t){if(this.path.length!==t.length)return!1;for(let e=0;e<t.length;e++)if(!this._matchSegment(t[e],this.path[e],e===this.path.length-1))return!1;return!0}_matchWithDeepWildcard(t){let e=this.path.length-1,i=t.length-1;for(;i>=0&&e>=0;){const s=t[i];if("deep-wildcard"===s.type){if(i--,i<0)return!0;const s=t[i];let n=!1;for(let t=e;t>=0;t--)if(this._matchSegment(s,this.path[t],t===this.path.length-1)){e=t-1,i--,n=!0;break}if(!n)return!1}else{if(!this._matchSegment(s,this.path[e],e===this.path.length-1))return!1;e--,i--}}return i<0}_matchSegment(t,e,i){if("*"!==t.tag&&t.tag!==e.tag)return!1;if(void 0!==t.namespace&&"*"!==t.namespace&&t.namespace!==e.namespace)return!1;if(void 0!==t.attrName){if(!i)return!1;if(!e.values||!(t.attrName in e.values))return!1;if(void 0!==t.attrValue&&String(e.values[t.attrName])!==String(t.attrValue))return!1}if(void 0!==t.position){if(!i)return!1;const s=e.counter??0;if("first"===t.position&&0!==s)return!1;if("odd"===t.position&&s%2!=1)return!1;if("even"===t.position&&s%2!=0)return!1;if("nth"===t.position&&s!==t.positionValue)return!1}return!0}matchesAny(t){return t.matchesAny(this)}snapshot(){return{path:this.path.map(t=>({...t})),siblingStacks:this.siblingStacks.map(t=>new Map(t))}}restore(t){this._pathStringCache=null,this.path=t.path.map(t=>({...t})),this.siblingStacks=t.siblingStacks.map(t=>new Map(t))}readOnly(){return this._view}}function r(t){return String(t).replace(/--/g,"- -").replace(/--/g,"- -").replace(/-$/,"- ")}function o(t){return String(t).replace(/\]\]>/g,"]]]]><![CDATA[>")}function a(t){return String(t).replace(/"/g,"&quot;").replace(/'/g,"&apos;")}const h=":A-Za-z_À-ÖØ-öø-˿Ͱ-ͽͿ-҆҈-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�",p=":A-Za-z_À-˿Ͱ-ͽͿ-҆҈-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿",u=p+"\\-\\.\\d·̀-ͯ҇‿-⁀",l=(t,e,i="")=>{const s=`[${t.replace(":","")}][${e.replace(":","")}]*`;return{name:new RegExp(`^[${t}][${e}]*$`,i),ncName:new RegExp(`^${s}$`,i),qName:new RegExp(`^${s}(?::${s})?$`,i),nmToken:new RegExp(`^[${e}]+$`,i),nmTokens:new RegExp(`^[${e}]+(?:\\s+[${e}]+)*$`,i)}},c=l(h,h+"\\-\\.\\d·̀-ͯ‿-⁀"),g=l(p,u,"u"),d=(t,{xmlVersion:e="1.0"}={})=>((t="1.0")=>"1.1"===t?g:c)(e).qName.test(t);function f(t,e,i,s,n){return i.sanitizeName?d(t,{xmlVersion:n})?t:i.sanitizeName(t,{isAttribute:e,matcher:s.readOnly()}):t}function m(t,e){let s="";e.format&&(s="\n");const r=[];if(e.stopNodes&&Array.isArray(e.stopNodes))for(let t=0;t<e.stopNodes.length;t++){const s=e.stopNodes[t];"string"==typeof s?r.push(new i(s)):s instanceof i&&r.push(s)}const o=function(t,e){if(!Array.isArray(t)||0===t.length)return"1.0";const i=t[0];if("?xml"===A(i)){const t=i[":@"];if(t){const i=e.attributeNamePrefix+"version";if(t[i])return t[i]}}return"1.0"}(t,e);return N(t,e,s,new n,r,o)}function N(t,e,i,s,n,a){let h="",p=!1;if(e.maxNestedTags&&s.getDepth()>e.maxNestedTags)throw new Error("Maximum nested tags exceeded");if(!Array.isArray(t)){if(null!=t){let i=t.toString();return i=S(i,e),i}return""}for(let u=0;u<t.length;u++){const l=t[u],c=A(l);if(void 0===c)continue;const g=c===e.textNodeName||c===e.cdataPropName||c===e.commentPropName||"?"===c[0]?c:f(c,!1,e,s,a),d=b(l[":@"],e);s.push(g,d);const m=P(s,n);if(g===e.textNodeName){let t=l[c];m||(t=e.tagValueProcessor(g,t),t=S(t,e)),p&&(h+=i),h+=t,p=!1,s.pop();continue}if(g===e.cdataPropName){p&&(h+=i),h+=`<![CDATA[${o(l[c][0][e.textNodeName])}]]>`,p=!1,s.pop();continue}if(g===e.commentPropName){h+=i+`\x3c!--${r(l[c][0][e.textNodeName])}--\x3e`,p=!0,s.pop();continue}if("?"===g[0]){h+=("?xml"===g?"":i)+`<${g}${$(l[":@"],e,m,s,a)}?>`,p=!0,s.pop();continue}let y=i;""!==y&&(y+=e.indentBy);const v=i+`<${g}${$(l[":@"],e,m,s,a)}`;let w;w=m?x(l[c],e):N(l[c],e,y,s,n,a),-1!==e.unpairedTags.indexOf(g)?e.suppressUnpairedNode?h+=v+">":h+=v+"/>":w&&0!==w.length||!e.suppressEmptyNode?w&&w.endsWith(">")?h+=v+`>${w}${i}</${g}>`:(h+=v+">",w&&""!==i&&(w.includes("/>")||w.includes("</"))?h+=i+e.indentBy+w+i:h+=w,h+=`</${g}>`):h+=v+"/>",p=!0,s.pop()}return h}function b(t,e){if(!t||e.ignoreAttributes)return null;const i={};let s=!1;for(let n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n.startsWith(e.attributeNamePrefix)?n.substr(e.attributeNamePrefix.length):n]=a(t[n]),s=!0);return s?i:null}function x(t,e){if(!Array.isArray(t))return null!=t?t.toString():"";let i="";for(let s=0;s<t.length;s++){const n=t[s],r=A(n);if(r===e.textNodeName)i+=n[r];else if(r===e.cdataPropName)i+=n[r][0][e.textNodeName];else if(r===e.commentPropName)i+=n[r][0][e.textNodeName];else{if(r&&"?"===r[0])continue;if(r){const t=y(n[":@"],e),s=x(n[r],e);s&&0!==s.length?i+=`<${r}${t}>${s}</${r}>`:i+=`<${r}${t}/>`}}}return i}function y(t,e){let i="";if(t&&!e.ignoreAttributes)for(let s in t){if(!Object.prototype.hasOwnProperty.call(t,s))continue;let n=t[s];!0===n&&e.suppressBooleanAttributes?i+=` ${s.substr(e.attributeNamePrefix.length)}`:i+=` ${s.substr(e.attributeNamePrefix.length)}="${a(n)}"`}return i}function A(t){const e=Object.keys(t);for(let i=0;i<e.length;i++){const s=e[i];if(Object.prototype.hasOwnProperty.call(t,s)&&":@"!==s)return s}}function $(t,e,i,s,n){let r="";if(t&&!e.ignoreAttributes)for(let o in t){if(!Object.prototype.hasOwnProperty.call(t,o))continue;const h=o.substr(e.attributeNamePrefix.length),p=i?h:f(h,!0,e,s,n);let u;i?u=t[o]:(u=e.attributeValueProcessor(o,t[o]),u=S(u,e)),!0===u&&e.suppressBooleanAttributes?r+=` ${p}`:r+=` ${p}="${a(u)}"`}return r}function P(t,e){if(!e||0===e.length)return!1;for(let i=0;i<e.length;i++)if(t.matches(e[i]))return!0;return!1}function S(t,e){if(t&&t.length>0&&e.processEntities)for(let i=0;i<e.entities.length;i++){const s=e.entities[i];t=t.replace(s.regex,s.val)}return t}const v={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&amp;"},{regex:new RegExp(">","g"),val:"&gt;"},{regex:new RegExp("<","g"),val:"&lt;"},{regex:new RegExp("'","g"),val:"&apos;"},{regex:new RegExp('"',"g"),val:"&quot;"}],processEntities:!0,stopNodes:[],oneListGroup:!1,maxNestedTags:100,jPath:!0,sanitizeName:!1};function w(t){if(this.options=Object.assign({},v,t),this.options.stopNodes&&Array.isArray(this.options.stopNodes)&&(this.options.stopNodes=this.options.stopNodes.map(t=>"string"==typeof t&&t.startsWith("*.")?".."+t.substring(2):t)),this.stopNodeExpressions=[],this.options.stopNodes&&Array.isArray(this.options.stopNodes))for(let t=0;t<this.options.stopNodes.length;t++){const e=this.options.stopNodes[t];"string"==typeof e?this.stopNodeExpressions.push(new i(e)):e instanceof i&&this.stopNodeExpressions.push(e)}var e;!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn="function"==typeof(e=this.options.ignoreAttributes)?e:Array.isArray(e)?t=>{for(const i of e){if("string"==typeof i&&t===i)return!0;if(i instanceof RegExp&&i.test(t))return!0}}:()=>!1,this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=C),this.processTextOrObjNode=O,this.options.format?(this.indentate=_,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function E(t,e,i,s,n){return i.sanitizeName?d(t,{xmlVersion:n})?t:i.sanitizeName(t,{isAttribute:e,matcher:s.readOnly()}):t}function O(t,e,i,s,n){const r=this.extractAttributes(t);if(s.push(e,r),this.checkStopNode(s)){const n=this.buildRawContent(t),r=this.buildAttributesForStopNode(t);return s.pop(),this.buildObjectNode(n,e,r,i)}const o=this.j2x(t,i+1,s,n);return s.pop(),"?"===e[0]?this.buildTextValNode("",e,o.attrStr,i,s):void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,o.attrStr,i,s):this.buildObjectNode(o.val,e,o.attrStr,i)}function _(t){return this.options.indentBy.repeat(t)}function C(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}w.prototype.build=function(t){if(this.options.preserveOrder)return m(t,this.options);{Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t});const e=new n,i=function(t,e){const i=t["?xml"];if(i&&"object"==typeof i){if(e.attributesGroupName&&i[e.attributesGroupName]){const t=i[e.attributesGroupName][e.attributeNamePrefix+"version"];if(t)return t}const t=i[e.attributeNamePrefix+"version"];if(t)return t}return"1.0"}(t,this.options);return this.j2x(t,0,e,i).val}},w.prototype.j2x=function(t,e,i,s){let n="",r="";if(this.options.maxNestedTags&&i.getDepth()>=this.options.maxNestedTags)throw new Error("Maximum nested tags exceeded");const o=this.options.jPath?i.toString():i,a=this.checkStopNode(i);for(let h in t){if(!Object.prototype.hasOwnProperty.call(t,h))continue;const p=h===this.options.textNodeName||h===this.options.cdataPropName||h===this.options.commentPropName||this.options.attributesGroupName&&h===this.options.attributesGroupName||this.isAttribute(h)||"?"===h[0]?h:E(h,!1,this.options,i,s);if(void 0===t[h])this.isAttribute(h)&&(r+="");else if(null===t[h])this.isAttribute(h)||p===this.options.cdataPropName||p===this.options.commentPropName?r+="":"?"===p[0]?r+=this.indentate(e)+"<"+p+"?"+this.tagEndChar:r+=this.indentate(e)+"<"+p+"/"+this.tagEndChar;else if(t[h]instanceof Date)r+=this.buildTextValNode(t[h],p,"",e,i);else if("object"!=typeof t[h]){const u=this.isAttribute(h);if(u&&!this.ignoreAttributesFn(u,o)){const e=E(u,!0,this.options,i,s);n+=this.buildAttrPairStr(e,""+t[h],a)}else if(!u)if(h===this.options.textNodeName){let e=this.options.tagValueProcessor(h,""+t[h]);r+=this.replaceEntitiesValue(e)}else{i.push(p);const s=this.checkStopNode(i);if(i.pop(),s){const i=""+t[h];r+=""===i?this.indentate(e)+"<"+p+this.closeTag(p)+this.tagEndChar:this.indentate(e)+"<"+p+">"+i+"</"+p+this.tagEndChar}else r+=this.buildTextValNode(t[h],p,"",e,i)}}else if(Array.isArray(t[h])){const n=t[h].length;let o="",a="";for(let u=0;u<n;u++){const n=t[h][u];if(void 0===n);else if(null===n)"?"===p[0]?r+=this.indentate(e)+"<"+p+"?"+this.tagEndChar:r+=this.indentate(e)+"<"+p+"/"+this.tagEndChar;else if("object"==typeof n)if(this.options.oneListGroup){i.push(p);const t=this.j2x(n,e+1,i,s);i.pop(),o+=t.val,this.options.attributesGroupName&&n.hasOwnProperty(this.options.attributesGroupName)&&(a+=t.attrStr)}else o+=this.processTextOrObjNode(n,p,e,i,s);else if(this.options.oneListGroup){let t=this.options.tagValueProcessor(p,n);t=this.replaceEntitiesValue(t),o+=t}else{i.push(p);const t=this.checkStopNode(i);if(i.pop(),t){const t=""+n;o+=""===t?this.indentate(e)+"<"+p+this.closeTag(p)+this.tagEndChar:this.indentate(e)+"<"+p+">"+t+"</"+p+this.tagEndChar}else o+=this.buildTextValNode(n,p,"",e,i)}}this.options.oneListGroup&&(o=this.buildObjectNode(o,p,a,e)),r+=o}else if(this.options.attributesGroupName&&h===this.options.attributesGroupName){const e=Object.keys(t[h]),r=e.length;for(let o=0;o<r;o++){const r=E(e[o],!0,this.options,i,s);n+=this.buildAttrPairStr(r,""+t[h][e[o]],a)}}else r+=this.processTextOrObjNode(t[h],p,e,i,s)}return{attrStr:n,val:r}},w.prototype.buildAttrPairStr=function(t,e,i){return i||(e=this.options.attributeValueProcessor(t,""+e),e=this.replaceEntitiesValue(e)),this.options.suppressBooleanAttributes&&"true"===e?" "+t:" "+t+'="'+a(e)+'"'},w.prototype.extractAttributes=function(t){if(!t||"object"!=typeof t)return null;const e={};let i=!1;if(this.options.attributesGroupName&&t[this.options.attributesGroupName]){const s=t[this.options.attributesGroupName];for(let t in s)Object.prototype.hasOwnProperty.call(s,t)&&(e[t.startsWith(this.options.attributeNamePrefix)?t.substring(this.options.attributeNamePrefix.length):t]=a(s[t]),i=!0)}else for(let s in t){if(!Object.prototype.hasOwnProperty.call(t,s))continue;const n=this.isAttribute(s);n&&(e[n]=a(t[s]),i=!0)}return i?e:null},w.prototype.buildRawContent=function(t){if("string"==typeof t)return t;if("object"!=typeof t||null===t)return String(t);if(void 0!==t[this.options.textNodeName])return t[this.options.textNodeName];let e="";for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i))continue;if(this.isAttribute(i))continue;if(this.options.attributesGroupName&&i===this.options.attributesGroupName)continue;const s=t[i];if(i===this.options.textNodeName)e+=s;else if(Array.isArray(s)){for(let t of s)if("string"==typeof t||"number"==typeof t)e+=`<${i}>${t}</${i}>`;else if("object"==typeof t&&null!==t){const s=this.buildRawContent(t),n=this.buildAttributesForStopNode(t);e+=""===s?`<${i}${n}/>`:`<${i}${n}>${s}</${i}>`}}else if("object"==typeof s&&null!==s){const t=this.buildRawContent(s),n=this.buildAttributesForStopNode(s);e+=""===t?`<${i}${n}/>`:`<${i}${n}>${t}</${i}>`}else e+=`<${i}>${s}</${i}>`}return e},w.prototype.buildAttributesForStopNode=function(t){if(!t||"object"!=typeof t)return"";let e="";if(this.options.attributesGroupName&&t[this.options.attributesGroupName]){const i=t[this.options.attributesGroupName];for(let t in i){if(!Object.prototype.hasOwnProperty.call(i,t))continue;const s=t.startsWith(this.options.attributeNamePrefix)?t.substring(this.options.attributeNamePrefix.length):t,n=i[t];!0===n&&this.options.suppressBooleanAttributes?e+=" "+s:e+=" "+s+'="'+n+'"'}}else for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i))continue;const s=this.isAttribute(i);if(s){const n=t[i];!0===n&&this.options.suppressBooleanAttributes?e+=" "+s:e+=" "+s+'="'+n+'"'}}return e},w.prototype.buildObjectNode=function(t,e,i,s){if(""===t)return"?"===e[0]?this.indentate(s)+"<"+e+i+"?"+this.tagEndChar:this.indentate(s)+"<"+e+i+this.closeTag(e)+this.tagEndChar;if("?"===e[0])return this.indentate(s)+"<"+e+i+"?"+this.tagEndChar;{let n="</"+e+this.tagEndChar,r="";return"?"===e[0]&&(r="?",n=""),!i&&""!==i||-1!==t.indexOf("<")?!1!==this.options.commentPropName&&e===this.options.commentPropName&&0===r.length?this.indentate(s)+`\x3c!--${t}--\x3e`+this.newLine:this.indentate(s)+"<"+e+i+r+this.tagEndChar+t+this.indentate(s)+n:this.indentate(s)+"<"+e+i+r+">"+t+n}},w.prototype.closeTag=function(t){let e="";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e="/"):e=this.options.suppressEmptyNode?"/":`></${t}`,e},w.prototype.checkStopNode=function(t){if(!this.stopNodeExpressions||0===this.stopNodeExpressions.length)return!1;for(let e=0;e<this.stopNodeExpressions.length;e++)if(t.matches(this.stopNodeExpressions[e]))return!0;return!1},w.prototype.buildTextValNode=function(t,e,i,s,n){if(!1!==this.options.cdataPropName&&e===this.options.cdataPropName){const e=o(t);return this.indentate(s)+`<![CDATA[${e}]]>`+this.newLine}if(!1!==this.options.commentPropName&&e===this.options.commentPropName){const e=r(t);return this.indentate(s)+`\x3c!--${e}--\x3e`+this.newLine}if("?"===e[0])return this.indentate(s)+"<"+e+i+"?"+this.tagEndChar;{let n=this.options.tagValueProcessor(e,t);return n=this.replaceEntitiesValue(n),""===n?this.indentate(s)+"<"+e+i+this.closeTag(e)+this.tagEndChar:this.indentate(s)+"<"+e+i+">"+n+"</"+e+this.tagEndChar}},w.prototype.replaceEntitiesValue=function(t){if(t&&t.length>0&&this.options.processEntities)for(let e=0;e<this.options.entities.length;e++){const i=this.options.entities[e];t=t.replace(i.regex,i.val)}return t},module.exports=e})();
@@ -1,8 +1,51 @@
1
1
  // const { Expression } = require('path-expression-matcher');
2
2
 
3
- type Matcher = unknown;
3
+ //type Matcher = unknown;
4
4
  type Expression = unknown;
5
5
 
6
+ /**
7
+ * A lightweight, live read-only view of a Matcher instance.
8
+ *
9
+ * Returned by `Matcher.readOnly()`. The same instance is reused across every
10
+ * callback invocation — no allocation overhead per call. Reads directly from
11
+ * the parent Matcher's internal state so it always reflects the current parser
12
+ * position with no copying or freezing.
13
+ */
14
+ class MatcherView {
15
+ readonly separator: string;
16
+
17
+ /** Check if current path matches an Expression. */
18
+ matches(expression: Expression): boolean;
19
+
20
+ /** Get current tag name, or `undefined` if path is empty. */
21
+ getCurrentTag(): string | undefined;
22
+
23
+ /** Get current namespace, or `undefined` if not present. */
24
+ getCurrentNamespace(): string | undefined;
25
+
26
+ /** Get attribute value of the current node. */
27
+ getAttrValue(attrName: string): any;
28
+
29
+ /** Check if the current node has a given attribute. */
30
+ hasAttr(attrName: string): boolean;
31
+
32
+ /** Sibling position of the current node (child index in parent). */
33
+ getPosition(): number;
34
+
35
+ /** Occurrence counter of the current tag name at this level. */
36
+ getCounter(): number;
37
+
38
+ /** Number of nodes in the current path. */
39
+ getDepth(): number;
40
+
41
+ /** Current path as a string (e.g. `"root.users.user"`). */
42
+ toString(separator?: string, includeNamespace?: boolean): string;
43
+
44
+ /** Current path as an array of tag names. */
45
+ toArray(): string[];
46
+ }
47
+
48
+
6
49
  type XmlBuilderOptions = {
7
50
  /**
8
51
  * Give a prefix to the attribute name in the resulting JS object
@@ -164,6 +207,53 @@ type XmlBuilderOptions = {
164
207
  * Defaults to `100`
165
208
  */
166
209
  maxNestedTags?: number;
210
+
211
+ /**
212
+ * Validate or sanitize tag and attribute names before they are written to XML output.
213
+ *
214
+ * The context object provides:
215
+ * - `isAttribute` — `true` when the name being resolved is an attribute name,
216
+ * `false` when it is a tag name.
217
+ * - `matcher` — the current path matcher (readonly). Can be used to inspect the
218
+ * current element path, e.g. via `.toString()` or `.getDepth()`.
219
+ *
220
+ * Return the (possibly transformed) name to use in the output.
221
+ * Throw an error inside the function to reject an invalid name entirely.
222
+ *
223
+ * When set to `false` (default) all names are written as-is, preserving
224
+ * backward-compatible behaviour.
225
+ *
226
+ * @example
227
+ * // Auto-fix invalid names using xml-naming
228
+ * import { sanitize } from 'xml-naming';
229
+ * { sanitizeName: (name) => sanitize(name, 'qName') }
230
+ *
231
+ * @example
232
+ * // Reject invalid names
233
+ * import { qName } from 'xml-naming';
234
+ * { sanitizeName: (name) => { if (!qName(name)) throw new Error(`Invalid XML name: "${name}"`); return name; } }
235
+ *
236
+ * Defaults to `false`
237
+ */
238
+ sanitizeName?: false | ((name: string, context: SanitizeNameContext) => string);
239
+ };
240
+
241
+ /**
242
+ * Context object passed as the second argument to {@link XmlBuilderOptions.sanitizeName}.
243
+ */
244
+ type SanitizeNameContext = {
245
+ /**
246
+ * `true` when the name being resolved is an XML attribute name;
247
+ * `false` when it is an XML element (tag) name.
248
+ */
249
+ isAttribute: boolean;
250
+
251
+ /**
252
+ * The current path matcher at the point where the name is being resolved.
253
+ * Readonly from the callback's perspective — do not call mutating methods.
254
+ * Use `.toString()` to get the current jPath string, `.getDepth()` for nesting depth.
255
+ */
256
+ matcher: MatcherView;
167
257
  };
168
258
 
169
259
  interface XMLBuilder {