@cdklabs/cdk-ssm-documents 0.0.66 → 0.0.67

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (358) hide show
  1. package/.jsii +13 -13
  2. package/lib/construct/synth-utils.js +1 -1
  3. package/lib/document/automation-document.js +1 -1
  4. package/lib/document/command-document.js +1 -1
  5. package/lib/document/document-builder.js +2 -2
  6. package/lib/document/ssm-document.js +1 -1
  7. package/lib/domain/aws-service.js +1 -1
  8. package/lib/domain/choice.js +1 -1
  9. package/lib/domain/data-type.js +1 -1
  10. package/lib/domain/enum/install-action.js +2 -2
  11. package/lib/domain/enum/install-uninstall-repair.js +2 -2
  12. package/lib/domain/enum/installation-type.js +2 -2
  13. package/lib/domain/enum/package-name.js +2 -2
  14. package/lib/domain/input.js +1 -1
  15. package/lib/domain/operation.js +1 -1
  16. package/lib/domain/platform.js +1 -1
  17. package/lib/domain/precondition.js +1 -1
  18. package/lib/incident-response/incident-response.js +3 -3
  19. package/lib/interface/approve-hook.js +2 -2
  20. package/lib/interface/auth-method.js +3 -3
  21. package/lib/interface/aws-invoker.js +2 -2
  22. package/lib/interface/downloadable-content.js +8 -8
  23. package/lib/interface/environment.js +3 -3
  24. package/lib/interface/execute-automation-hook/api-execute-automation-hook.js +1 -1
  25. package/lib/interface/observer.js +1 -1
  26. package/lib/interface/on-failure.js +6 -6
  27. package/lib/interface/pause-hook.js +2 -2
  28. package/lib/interface/run-command-hook/api-run-command-hook.js +1 -1
  29. package/lib/interface/run-document-location.js +2 -2
  30. package/lib/interface/sleep-hook.js +2 -2
  31. package/lib/interface/step-ref.js +1 -1
  32. package/lib/interface/variables/boolean-variable.js +2 -2
  33. package/lib/interface/variables/map-list-variable.js +2 -2
  34. package/lib/interface/variables/number-variable.js +2 -2
  35. package/lib/interface/variables/secure-string-variable.js +4 -4
  36. package/lib/interface/variables/string-list-variable.js +2 -2
  37. package/lib/interface/variables/string-map-variable.js +2 -2
  38. package/lib/interface/variables/string-variable.js +4 -4
  39. package/lib/interface/variables/variable.js +2 -2
  40. package/lib/interface/webhook.js +1 -1
  41. package/lib/parent-steps/automation/approve-step.js +1 -1
  42. package/lib/parent-steps/automation/assert-aws-resource-step.js +1 -1
  43. package/lib/parent-steps/automation/aws-api-step.js +1 -1
  44. package/lib/parent-steps/automation/branch-step.js +1 -1
  45. package/lib/parent-steps/automation/change-instance-state-step.js +3 -3
  46. package/lib/parent-steps/automation/copy-image-step.js +1 -1
  47. package/lib/parent-steps/automation/create-image-step.js +1 -1
  48. package/lib/parent-steps/automation/create-stack-step.js +3 -3
  49. package/lib/parent-steps/automation/create-tags-step.js +3 -3
  50. package/lib/parent-steps/automation/delete-image-step.js +1 -1
  51. package/lib/parent-steps/automation/delete-stack-step.js +1 -1
  52. package/lib/parent-steps/automation/execute-automation-step.js +1 -1
  53. package/lib/parent-steps/automation/execute-script-step.js +5 -5
  54. package/lib/parent-steps/automation/execute-state-machine-step.js +1 -1
  55. package/lib/parent-steps/automation/invoke-lambda-function-step.js +1 -1
  56. package/lib/parent-steps/automation/invoke-webhook-step.js +1 -1
  57. package/lib/parent-steps/automation/pause-step.js +1 -1
  58. package/lib/parent-steps/automation/run-command-step.js +3 -3
  59. package/lib/parent-steps/automation/run-instance-step.js +1 -1
  60. package/lib/parent-steps/automation/sleep-step.js +1 -1
  61. package/lib/parent-steps/automation/update-variable.js +1 -1
  62. package/lib/parent-steps/automation/wait-for-resource-step.js +1 -1
  63. package/lib/parent-steps/automation-step.js +1 -1
  64. package/lib/parent-steps/command/applications-step.js +1 -1
  65. package/lib/parent-steps/command/configure-docker-step.js +1 -1
  66. package/lib/parent-steps/command/configure-package-step.js +1 -1
  67. package/lib/parent-steps/command/domain-join-step.js +1 -1
  68. package/lib/parent-steps/command/download-content-step.js +1 -1
  69. package/lib/parent-steps/command/ps-module-step.js +1 -1
  70. package/lib/parent-steps/command/run-docker-action-step.js +1 -1
  71. package/lib/parent-steps/command/run-document-step.js +1 -1
  72. package/lib/parent-steps/command/run-powershell-script-step.js +1 -1
  73. package/lib/parent-steps/command/run-shell-script-step.js +1 -1
  74. package/lib/parent-steps/command/software-inventory-step.js +1 -1
  75. package/lib/parent-steps/command/update-agent-step.js +1 -1
  76. package/lib/parent-steps/command/update-ssm-agent-step.js +1 -1
  77. package/lib/parent-steps/command-step.js +1 -1
  78. package/lib/parent-steps/step.js +1 -1
  79. package/lib/patterns/automation/composite-step.js +2 -2
  80. package/lib/patterns/automation/reboot-instance-and-wait.js +1 -1
  81. package/lib/patterns/automation/string-step.js +1 -1
  82. package/lib/patterns/document/string-document.js +1 -1
  83. package/lib/patterns/document/timed-document.js +1 -1
  84. package/lib/samples/hello-world.js +1 -1
  85. package/lib/simulation/automation/approve-simulation.js +1 -1
  86. package/lib/simulation/automation/assert-aws-resource-simulation.js +1 -1
  87. package/lib/simulation/automation/automation-simulation-base.js +1 -1
  88. package/lib/simulation/automation/aws-api-simulation.js +1 -1
  89. package/lib/simulation/automation/branch-simulation.js +1 -1
  90. package/lib/simulation/automation/change-instance-state-simulation.js +1 -1
  91. package/lib/simulation/automation/copy-image-simulation.js +1 -1
  92. package/lib/simulation/automation/create-image-simulation.js +1 -1
  93. package/lib/simulation/automation/create-stack-simulation.js +1 -1
  94. package/lib/simulation/automation/create-tags-simulation.js +1 -1
  95. package/lib/simulation/automation/delete-image-simulation.js +1 -1
  96. package/lib/simulation/automation/delete-stack-simulation.js +1 -1
  97. package/lib/simulation/automation/execute-script-simulation.js +1 -1
  98. package/lib/simulation/automation/execute-state-machine-simulation.js +1 -1
  99. package/lib/simulation/automation/invoke-lambda-function-simulation.js +1 -1
  100. package/lib/simulation/automation/invoke-webhook-simulation.js +1 -1
  101. package/lib/simulation/automation/pause-simulation.js +1 -1
  102. package/lib/simulation/automation/run-command-simulation.js +1 -1
  103. package/lib/simulation/automation/run-instance-simulation.js +1 -1
  104. package/lib/simulation/automation/sleep-simulation.js +1 -1
  105. package/lib/simulation/automation/update-variable-simulation.js +1 -1
  106. package/lib/simulation/automation/wait-for-resource-simulation.js +1 -1
  107. package/lib/simulation/automation-step-simulation.js +1 -1
  108. package/lib/simulation/command/command-simulation-base.js +1 -1
  109. package/lib/simulation/command/ps-module-simulation.js +1 -1
  110. package/lib/simulation/command/run-powershell-script-simulation.js +1 -1
  111. package/lib/simulation/command/run-shell-script-simulation.js +1 -1
  112. package/lib/simulation/command-step-simulation.js +1 -1
  113. package/lib/simulation/document/automation-simulation.js +1 -1
  114. package/lib/simulation/document/command-simulation.js +1 -1
  115. package/lib/simulation/simulation.js +1 -1
  116. package/node_modules/@aws-sdk/checksums/package.json +2 -2
  117. package/node_modules/@aws-sdk/client-cloudformation/package.json +3 -3
  118. package/node_modules/@aws-sdk/client-cloudwatch/package.json +3 -3
  119. package/node_modules/@aws-sdk/client-ec2/dist-cjs/schemas/schemas_0.js +37 -4
  120. package/node_modules/@aws-sdk/client-ec2/dist-es/schemas/schemas_0.js +35 -4
  121. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/AttachImageWatermarkCommand.d.ts +2 -3
  122. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/CancelCapacityReservationCommand.d.ts +10 -16
  123. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/GetAllowedImagesSettingsCommand.d.ts +8 -0
  124. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/GetAwsNetworkPerformanceDataCommand.d.ts +2 -1
  125. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/ModifyIpamScopeCommand.d.ts +1 -2
  126. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/ReplaceImageCriteriaInAllowedImagesSettingsCommand.d.ts +15 -0
  127. package/node_modules/@aws-sdk/client-ec2/dist-types/models/models_5.d.ts +42 -15
  128. package/node_modules/@aws-sdk/client-ec2/dist-types/models/models_6.d.ts +17 -35
  129. package/node_modules/@aws-sdk/client-ec2/dist-types/models/models_7.d.ts +86 -1
  130. package/node_modules/@aws-sdk/client-ec2/dist-types/schemas/schemas_0.d.ts +2 -0
  131. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/commands/GetAwsNetworkPerformanceDataCommand.d.ts +2 -4
  132. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/commands/ModifyIpamScopeCommand.d.ts +4 -2
  133. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/models/models_5.d.ts +7 -4
  134. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/models/models_6.d.ts +5 -9
  135. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/models/models_7.d.ts +15 -0
  136. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/schemas/schemas_0.d.ts +2 -0
  137. package/node_modules/@aws-sdk/client-ec2/package.json +4 -4
  138. package/node_modules/@aws-sdk/client-iam/package.json +3 -3
  139. package/node_modules/@aws-sdk/client-lambda/dist-types/commands/GetProvisionedConcurrencyConfigCommand.d.ts +4 -4
  140. package/node_modules/@aws-sdk/client-lambda/package.json +3 -3
  141. package/node_modules/@aws-sdk/client-s3/package.json +6 -6
  142. package/node_modules/@aws-sdk/client-sns/package.json +3 -3
  143. package/node_modules/@aws-sdk/client-sqs/package.json +3 -3
  144. package/node_modules/@aws-sdk/client-ssm/package.json +3 -3
  145. package/node_modules/@aws-sdk/core/package.json +2 -2
  146. package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
  147. package/node_modules/@aws-sdk/credential-provider-http/package.json +2 -2
  148. package/node_modules/@aws-sdk/credential-provider-ini/package.json +9 -9
  149. package/node_modules/@aws-sdk/credential-provider-login/package.json +3 -3
  150. package/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
  151. package/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
  152. package/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
  153. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
  154. package/node_modules/@aws-sdk/middleware-flexible-checksums/package.json +2 -2
  155. package/node_modules/@aws-sdk/middleware-sdk-ec2/package.json +2 -2
  156. package/node_modules/@aws-sdk/middleware-sdk-s3/package.json +2 -2
  157. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +1 -1
  158. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +1 -1
  159. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +1 -1
  160. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +1 -1
  161. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +1 -1
  162. package/node_modules/@aws-sdk/nested-clients/package.json +2 -2
  163. package/node_modules/@aws-sdk/token-providers/package.json +3 -3
  164. package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.browser.js +1 -1
  165. package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.js +233 -43
  166. package/node_modules/@aws-sdk/xml-builder/dist-es/xml-parser.browser.js +1 -1
  167. package/node_modules/@aws-sdk/xml-builder/dist-es/xml-parser.js +233 -43
  168. package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/xml-parser.d.ts +1 -1
  169. package/node_modules/@aws-sdk/xml-builder/dist-types/xml-parser.d.ts +2 -1
  170. package/node_modules/@aws-sdk/xml-builder/package.json +4 -4
  171. package/node_modules/@smithy/core/dist-cjs/submodules/checksum/index.browser.js +355 -145
  172. package/node_modules/@smithy/core/dist-cjs/submodules/checksum/index.js +456 -142
  173. package/node_modules/@smithy/core/dist-cjs/submodules/checksum/index.native.js +355 -145
  174. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +5 -2
  175. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.browser.js +30 -36
  176. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js +54 -110
  177. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.native.js +30 -36
  178. package/node_modules/@smithy/core/dist-es/submodules/checksum/crc32/Crc32Js.js +27 -0
  179. package/node_modules/@smithy/core/dist-es/submodules/checksum/crc32/Crc32Node.js +21 -0
  180. package/node_modules/@smithy/core/dist-es/submodules/checksum/index.browser.js +7 -1
  181. package/node_modules/@smithy/core/dist-es/submodules/checksum/index.js +7 -1
  182. package/node_modules/@smithy/core/dist-es/submodules/checksum/index.native.js +7 -1
  183. package/node_modules/@smithy/core/dist-es/submodules/checksum/md5/Md5Js.js +92 -0
  184. package/node_modules/@smithy/core/dist-es/submodules/checksum/md5/Md5Node.js +29 -0
  185. package/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256Js.js +179 -0
  186. package/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256Node.js +59 -0
  187. package/node_modules/@smithy/core/dist-es/submodules/checksum/sha256/Sha256WebCrypto.js +71 -0
  188. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +4 -1
  189. package/node_modules/@smithy/core/dist-es/submodules/serde/concatBytes.js +15 -0
  190. package/node_modules/@smithy/core/dist-es/submodules/serde/index.browser.js +2 -0
  191. package/node_modules/@smithy/core/dist-es/submodules/serde/index.js +2 -0
  192. package/node_modules/@smithy/core/dist-es/submodules/serde/index.native.js +2 -0
  193. package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/checksum/ChecksumStream.js +4 -0
  194. package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/headStream.js +2 -1
  195. package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/stream-collector.browser.js +12 -38
  196. package/node_modules/@smithy/core/dist-es/submodules/serde/util-stream/stream-collector.js +18 -33
  197. package/node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/toUint8Array.browser.js +3 -0
  198. package/node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/toUint8Array.js +3 -0
  199. package/node_modules/@smithy/core/dist-types/submodules/checksum/crc32/Crc32Js.d.ts +13 -0
  200. package/node_modules/@smithy/core/dist-types/submodules/checksum/crc32/Crc32Node.d.ts +13 -0
  201. package/node_modules/@smithy/core/dist-types/submodules/checksum/index.browser.d.ts +7 -1
  202. package/node_modules/@smithy/core/dist-types/submodules/checksum/index.d.ts +7 -1
  203. package/node_modules/@smithy/core/dist-types/submodules/checksum/index.native.d.ts +7 -1
  204. package/node_modules/@smithy/core/dist-types/submodules/checksum/md5/Md5Js.d.ts +19 -0
  205. package/node_modules/@smithy/core/dist-types/submodules/checksum/md5/Md5Node.d.ts +17 -0
  206. package/node_modules/@smithy/core/dist-types/submodules/checksum/sha256/Sha256Js.d.ts +28 -0
  207. package/node_modules/@smithy/core/dist-types/submodules/checksum/sha256/Sha256Node.d.ts +13 -0
  208. package/node_modules/@smithy/core/dist-types/submodules/checksum/sha256/Sha256WebCrypto.d.ts +22 -0
  209. package/node_modules/@smithy/core/dist-types/submodules/serde/concatBytes.d.ts +6 -0
  210. package/node_modules/@smithy/core/dist-types/submodules/serde/index.browser.d.ts +2 -0
  211. package/node_modules/@smithy/core/dist-types/submodules/serde/index.d.ts +2 -0
  212. package/node_modules/@smithy/core/dist-types/submodules/serde/index.native.d.ts +2 -0
  213. package/node_modules/@smithy/core/dist-types/submodules/serde/util-stream/checksum/ChecksumStream.d.ts +9 -0
  214. package/node_modules/@smithy/core/dist-types/submodules/serde/util-stream/stream-collector.browser.d.ts +8 -2
  215. package/node_modules/@smithy/core/dist-types/submodules/serde/util-stream/stream-collector.d.ts +4 -1
  216. package/node_modules/@smithy/core/package.json +4 -3
  217. package/node_modules/@smithy/credential-provider-imds/package.json +2 -2
  218. package/node_modules/@smithy/fetch-http-handler/dist-cjs/index.js +2 -55
  219. package/node_modules/@smithy/fetch-http-handler/dist-es/index.js +2 -2
  220. package/node_modules/@smithy/fetch-http-handler/dist-types/index.d.ts +2 -2
  221. package/node_modules/@smithy/fetch-http-handler/package.json +2 -2
  222. package/node_modules/@smithy/middleware-compression/package.json +2 -2
  223. package/node_modules/@smithy/node-http-handler/dist-cjs/index.js +3 -51
  224. package/node_modules/@smithy/node-http-handler/dist-es/index.js +3 -3
  225. package/node_modules/@smithy/node-http-handler/dist-types/index.d.ts +3 -3
  226. package/node_modules/@smithy/node-http-handler/package.json +2 -2
  227. package/node_modules/@smithy/signature-v4/package.json +2 -2
  228. package/node_modules/immutable/dist/immutable.es.js +161 -15
  229. package/node_modules/immutable/dist/immutable.js +161 -15
  230. package/node_modules/immutable/dist/immutable.min.js +33 -32
  231. package/node_modules/immutable/package.json +1 -1
  232. package/node_modules/js-yaml/README.md +5 -3
  233. package/node_modules/js-yaml/dist/js-yaml.js +3009 -2402
  234. package/node_modules/js-yaml/dist/js-yaml.js.map +1 -1
  235. package/node_modules/js-yaml/dist/js-yaml.min.js +2 -33
  236. package/node_modules/js-yaml/dist/js-yaml.min.js.map +1 -1
  237. package/node_modules/js-yaml/dist/js-yaml.mjs +3073 -2381
  238. package/node_modules/js-yaml/dist/js-yaml.mjs.map +1 -1
  239. package/node_modules/js-yaml/lib/loader.js +7 -11
  240. package/node_modules/js-yaml/lib/type/float.js +1 -1
  241. package/node_modules/js-yaml/lib/type/int.js +4 -4
  242. package/node_modules/js-yaml/package.json +10 -4
  243. package/package.json +12 -12
  244. package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-external/nodable_entities.js +0 -333
  245. package/node_modules/@aws-sdk/xml-builder/dist-es/xml-external/nodable_entities.js +0 -332
  246. package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/xml-external/nodable_entities.d.ts +0 -66
  247. package/node_modules/@aws-sdk/xml-builder/dist-types/xml-external/nodable_entities.d.ts +0 -65
  248. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/CHANGELOG.md +0 -827
  249. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/LICENSE +0 -21
  250. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/README.md +0 -202
  251. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxbuilder.min.js +0 -2
  252. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxbuilder.min.js.map +0 -1
  253. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.cjs +0 -1
  254. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.d.cts +0 -770
  255. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.min.js +0 -2
  256. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.min.js.map +0 -1
  257. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxparser.min.js +0 -2
  258. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxparser.min.js.map +0 -1
  259. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxvalidator.min.js +0 -2
  260. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxvalidator.min.js.map +0 -1
  261. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/package.json +0 -93
  262. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/cli/cli.js +0 -97
  263. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/cli/man.js +0 -17
  264. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/cli/read.js +0 -43
  265. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/fxp.d.ts +0 -739
  266. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/fxp.js +0 -14
  267. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/ignoreAttributes.js +0 -18
  268. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/util.js +0 -61
  269. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/CharsSymbol.js +0 -16
  270. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/EntitiesParser.js +0 -106
  271. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OptionsBuilder.js +0 -61
  272. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OutputBuilders/BaseOutputBuilder.js +0 -69
  273. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OutputBuilders/JsArrBuilder.js +0 -103
  274. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OutputBuilders/JsMinArrBuilder.js +0 -100
  275. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OutputBuilders/JsObjBuilder.js +0 -154
  276. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/OutputBuilders/ParserOptionsBuilder.js +0 -94
  277. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/Report.js +0 -0
  278. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/TagPath.js +0 -81
  279. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/TagPathMatcher.js +0 -13
  280. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/XMLParser.js +0 -83
  281. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/Xml2JsParser.js +0 -235
  282. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/XmlPartReader.js +0 -210
  283. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/XmlSpecialTagsReader.js +0 -111
  284. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/inputSource/BufferSource.js +0 -116
  285. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/inputSource/StringSource.js +0 -121
  286. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/EntitiesParser.js +0 -105
  287. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/booleanParser.js +0 -22
  288. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/booleanParserExt.js +0 -19
  289. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/currency.js +0 -38
  290. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/join.js +0 -13
  291. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/number.js +0 -14
  292. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/v6/valueParsers/trim.js +0 -6
  293. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/validator.js +0 -425
  294. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js +0 -6
  295. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js +0 -407
  296. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js +0 -163
  297. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js +0 -840
  298. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js +0 -71
  299. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/node2json.js +0 -177
  300. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/xmlNode.js +0 -40
  301. package/node_modules/@aws-sdk/xml-builder/node_modules/strnum/CHANGELOG.md +0 -51
  302. package/node_modules/@aws-sdk/xml-builder/node_modules/strnum/LICENSE +0 -21
  303. package/node_modules/@aws-sdk/xml-builder/node_modules/strnum/README.md +0 -113
  304. package/node_modules/@aws-sdk/xml-builder/node_modules/strnum/package.json +0 -36
  305. package/node_modules/@aws-sdk/xml-builder/node_modules/strnum/strnum.js +0 -171
  306. package/node_modules/@nodable/entities/README.md +0 -41
  307. package/node_modules/@nodable/entities/package.json +0 -57
  308. package/node_modules/@nodable/entities/src/EntityDecoder.js +0 -644
  309. package/node_modules/@nodable/entities/src/EntityEncoder.js +0 -194
  310. package/node_modules/@nodable/entities/src/entities.js +0 -1159
  311. package/node_modules/@nodable/entities/src/entityTries.js +0 -49
  312. package/node_modules/@nodable/entities/src/index.d.ts +0 -341
  313. package/node_modules/@nodable/entities/src/index.js +0 -29
  314. package/node_modules/@smithy/core/dist-es/submodules/checksum/md5-js/constants.js +0 -3
  315. package/node_modules/@smithy/core/dist-es/submodules/checksum/md5-js/md5.js +0 -168
  316. package/node_modules/@smithy/core/dist-types/submodules/checksum/md5-js/constants.d.ts +0 -12
  317. package/node_modules/@smithy/core/dist-types/submodules/checksum/md5-js/md5.d.ts +0 -16
  318. package/node_modules/@smithy/fetch-http-handler/dist-es/stream-collector.js +0 -53
  319. package/node_modules/@smithy/fetch-http-handler/dist-types/stream-collector.d.ts +0 -2
  320. package/node_modules/@smithy/node-http-handler/dist-es/stream-collector/collector.js +0 -8
  321. package/node_modules/@smithy/node-http-handler/dist-es/stream-collector/index.js +0 -41
  322. package/node_modules/@smithy/node-http-handler/dist-types/stream-collector/collector.d.ts +0 -5
  323. package/node_modules/@smithy/node-http-handler/dist-types/stream-collector/index.d.ts +0 -7
  324. package/node_modules/anynum/LICENSE +0 -21
  325. package/node_modules/anynum/README.md +0 -142
  326. package/node_modules/anynum/anynum.js +0 -135
  327. package/node_modules/anynum/digitTable.js +0 -116
  328. package/node_modules/anynum/package.json +0 -42
  329. package/node_modules/fast-xml-builder/CHANGELOG.md +0 -40
  330. package/node_modules/fast-xml-builder/LICENSE +0 -21
  331. package/node_modules/fast-xml-builder/README.md +0 -74
  332. package/node_modules/fast-xml-builder/lib/fxb.cjs +0 -1
  333. package/node_modules/fast-xml-builder/lib/fxb.d.cts +0 -270
  334. package/node_modules/fast-xml-builder/lib/fxb.min.js +0 -2
  335. package/node_modules/fast-xml-builder/lib/fxb.min.js.map +0 -1
  336. package/node_modules/fast-xml-builder/package.json +0 -81
  337. package/node_modules/fast-xml-builder/src/fxb.d.ts +0 -270
  338. package/node_modules/fast-xml-builder/src/fxb.js +0 -599
  339. package/node_modules/fast-xml-builder/src/ignoreAttributes.js +0 -18
  340. package/node_modules/fast-xml-builder/src/orderedJs2Xml.js +0 -359
  341. package/node_modules/fast-xml-builder/src/prettifyJs2Xml.js +0 -0
  342. package/node_modules/fast-xml-builder/src/util.js +0 -16
  343. package/node_modules/path-expression-matcher/LICENSE +0 -21
  344. package/node_modules/path-expression-matcher/README.md +0 -947
  345. package/node_modules/path-expression-matcher/lib/pem.cjs +0 -1
  346. package/node_modules/path-expression-matcher/lib/pem.d.cts +0 -715
  347. package/node_modules/path-expression-matcher/lib/pem.min.js +0 -2
  348. package/node_modules/path-expression-matcher/lib/pem.min.js.map +0 -1
  349. package/node_modules/path-expression-matcher/package.json +0 -79
  350. package/node_modules/path-expression-matcher/src/Expression.js +0 -232
  351. package/node_modules/path-expression-matcher/src/ExpressionSet.js +0 -225
  352. package/node_modules/path-expression-matcher/src/Matcher.js +0 -660
  353. package/node_modules/path-expression-matcher/src/index.d.ts +0 -589
  354. package/node_modules/path-expression-matcher/src/index.js +0 -29
  355. package/node_modules/xml-naming/README.md +0 -189
  356. package/node_modules/xml-naming/package.json +0 -54
  357. package/node_modules/xml-naming/src/index.d.ts +0 -74
  358. package/node_modules/xml-naming/src/index.js +0 -270
@@ -880,6 +880,29 @@ function hashString(string) {
880
880
  return smi(hashed);
881
881
  }
882
882
 
883
+ // Per-process seed for the secondary collision hash. Never exposed nor
884
+ // serialized, so the public `hash()` stays deterministic. An odd base in
885
+ // [3, 2^20) keeps `base * h` exact as a double (no `Math.imul`).
886
+ var COLLISION_HASH_BASE =
887
+ ((Math.random() * 0x100000) | 1) % 0x100000 || 0x9e37;
888
+
889
+ // Secondary hash to index entries within a `HashCollisionNode`, where every key
890
+ // shares the same primary `hash()`. Using a different, seeded base scatters
891
+ // crafted collision families (e.g. "Aa"/"BB", which only collide under base 31)
892
+ // that an attacker cannot precompute without the seed. It only narrows
893
+ // candidates — `is()` still decides equality — so non-string keys can safely
894
+ // fall back to the (here constant) primary hash and a linear scan.
895
+ function hashCollisionKey(key) {
896
+ if (typeof key !== 'string') {
897
+ return hash(key);
898
+ }
899
+ var hashed = 0;
900
+ for (var ii = 0; ii < key.length; ii++) {
901
+ hashed = (COLLISION_HASH_BASE * hashed + key.charCodeAt(ii)) | 0;
902
+ }
903
+ return hashed;
904
+ }
905
+
883
906
  function hashSymbol(sym) {
884
907
  var hashed = symbolMap[sym];
885
908
  if (hashed !== undefined) {
@@ -2786,20 +2809,79 @@ HashArrayMapNode.prototype.update = function update (ownerID, shift, keyHash, ke
2786
2809
  return new HashArrayMapNode(ownerID, newCount, newNodes);
2787
2810
  };
2788
2811
 
2812
+ /**
2813
+ * Trie leaf gathering entries whose keys all share the same 32-bit `hash()`.
2814
+ * The trie routes by hash, so colliding keys cannot be separated and land here
2815
+ * in a flat `entries` array, disambiguated by `is()`.
2816
+ *
2817
+ * To guard against hash-flooding DoS (CWE-407), large buckets build a secondary
2818
+ * index keyed by a per-process seeded hash (`hashCollisionKey`). `is()` still
2819
+ * decides equality, so the index can only ever narrow candidates, never lose a key.
2820
+ */
2789
2821
  var HashCollisionNode = function HashCollisionNode(ownerID, keyHash, entries) {
2790
2822
  this.ownerID = ownerID;
2791
2823
  this.keyHash = keyHash;
2792
2824
  this.entries = entries;
2825
+ // Lazy `{ [secondaryHash]: number[] }`, built only past
2826
+ // MIN_HASH_COLLISION_INDEX_SIZE so small buckets keep their linear path.
2827
+ this._index = undefined;
2793
2828
  };
2794
2829
 
2795
- HashCollisionNode.prototype.get = function get (shift, keyHash, key, notSetValue) {
2830
+ // Returns the position of `key` in `this.entries`, or -1. Uses the secondary
2831
+ // index when present; builds it only when `buildIndex` is true (reads and
2832
+ // transient inserts, where the node is reused so the O(n) build amortizes).
2833
+ // Persistent inserts already pay an O(n) copy, so a throwaway index is skipped.
2834
+ HashCollisionNode.prototype._positionOf = function _positionOf (key, buildIndex) {
2835
+ var entries = this.entries;
2836
+ var index = this._index;
2837
+ if (
2838
+ index === undefined &&
2839
+ buildIndex &&
2840
+ entries.length >= MIN_HASH_COLLISION_INDEX_SIZE
2841
+ ) {
2842
+ index = this._buildIndex();
2843
+ }
2844
+ if (index !== undefined) {
2845
+ var positions = index[hashCollisionKey(key)];
2846
+ if (positions !== undefined) {
2847
+ for (var jj = 0; jj < positions.length; jj++) {
2848
+ var ii = positions[jj];
2849
+ if (is(key, entries[ii][0])) {
2850
+ return ii;
2851
+ }
2852
+ }
2853
+ }
2854
+ return -1;
2855
+ }
2856
+ for (var ii$1 = 0, len = entries.length; ii$1 < len; ii$1++) {
2857
+ if (is(key, entries[ii$1][0])) {
2858
+ return ii$1;
2859
+ }
2860
+ }
2861
+ return -1;
2862
+ };
2863
+
2864
+ // Builds and memoizes the secondary index. A plain object, not `Map` — which
2865
+ // in this module resolves to the *Immutable* Map, not the native one.
2866
+ HashCollisionNode.prototype._buildIndex = function _buildIndex () {
2867
+ var index = Object.create(null);
2796
2868
  var entries = this.entries;
2797
2869
  for (var ii = 0, len = entries.length; ii < len; ii++) {
2798
- if (is(key, entries[ii][0])) {
2799
- return entries[ii][1];
2870
+ var secondaryHash = hashCollisionKey(entries[ii][0]);
2871
+ var positions = index[secondaryHash];
2872
+ if (positions !== undefined) {
2873
+ positions.push(ii);
2874
+ } else {
2875
+ index[secondaryHash] = [ii];
2800
2876
  }
2801
2877
  }
2802
- return notSetValue;
2878
+ this._index = index;
2879
+ return index;
2880
+ };
2881
+
2882
+ HashCollisionNode.prototype.get = function get (shift, keyHash, key, notSetValue) {
2883
+ var idx = this._positionOf(key, true);
2884
+ return idx === -1 ? notSetValue : this.entries[idx][1];
2803
2885
  };
2804
2886
 
2805
2887
  HashCollisionNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {
@@ -2819,14 +2901,11 @@ HashCollisionNode.prototype.update = function update (ownerID, shift, keyHash, k
2819
2901
  }
2820
2902
 
2821
2903
  var entries = this.entries;
2822
- var idx = 0;
2823
2904
  var len = entries.length;
2824
- for (; idx < len; idx++) {
2825
- if (is(key, entries[idx][0])) {
2826
- break;
2827
- }
2828
- }
2829
- var exists = idx < len;
2905
+ var isEditable = ownerID && ownerID === this.ownerID;
2906
+ var foundIdx = this._positionOf(key, isEditable);
2907
+ var idx = foundIdx === -1 ? len : foundIdx;
2908
+ var exists = foundIdx !== -1;
2830
2909
 
2831
2910
  if (exists ? entries[idx][1] === value : removed) {
2832
2911
  return this;
@@ -2839,7 +2918,6 @@ HashCollisionNode.prototype.update = function update (ownerID, shift, keyHash, k
2839
2918
  return new ValueNode(ownerID, this.keyHash, entries[idx ^ 1]);
2840
2919
  }
2841
2920
 
2842
- var isEditable = ownerID && ownerID === this.ownerID;
2843
2921
  var newEntries = isEditable ? entries : arrCopy(entries);
2844
2922
 
2845
2923
  if (exists) {
@@ -2847,11 +2925,27 @@ HashCollisionNode.prototype.update = function update (ownerID, shift, keyHash, k
2847
2925
  idx === len - 1
2848
2926
  ? newEntries.pop()
2849
2927
  : (newEntries[idx] = newEntries.pop());
2928
+ // The swap-pop reshuffles positions; drop the stale index (rebuilt lazily).
2929
+ if (isEditable) {
2930
+ this._index = undefined;
2931
+ }
2850
2932
  } else {
2933
+ // Same key, same position: the index stays valid.
2851
2934
  newEntries[idx] = [key, value];
2852
2935
  }
2853
2936
  } else {
2854
2937
  newEntries.push([key, value]);
2938
+ // Keep the index in sync on the transient insert path. Persistent inserts
2939
+ // return a fresh node below whose index rebuilds lazily, so skip them.
2940
+ if (isEditable && this._index !== undefined) {
2941
+ var secondaryHash = hashCollisionKey(key);
2942
+ var positions = this._index[secondaryHash];
2943
+ if (positions !== undefined) {
2944
+ positions.push(len);
2945
+ } else {
2946
+ this._index[secondaryHash] = [len];
2947
+ }
2948
+ }
2855
2949
  }
2856
2950
 
2857
2951
  if (isEditable) {
@@ -3185,6 +3279,12 @@ var MAX_ARRAY_MAP_SIZE = SIZE / 4;
3185
3279
  var MAX_BITMAP_INDEXED_SIZE = SIZE / 2;
3186
3280
  var MIN_HASH_ARRAY_MAP_SIZE = SIZE / 4;
3187
3281
 
3282
+ // Above this many colliding entries, a `HashCollisionNode` builds a seeded
3283
+ // secondary index instead of scanning linearly. Kept small so the rare,
3284
+ // naturally-occurring collision buckets stay overhead-free, while adversarial
3285
+ // hash-flooding (thousands of keys sharing one hash) degrades gracefully.
3286
+ var MIN_HASH_COLLISION_INDEX_SIZE = 16;
3287
+
3188
3288
  var IS_LIST_SYMBOL = '@@__IMMUTABLE_LIST__@@';
3189
3289
 
3190
3290
  function isList(maybeList) {
@@ -3697,7 +3797,39 @@ function listNodeFor(list, rawIndex) {
3697
3797
  }
3698
3798
  }
3699
3799
 
3800
+ /**
3801
+ * Validates requested bounds before int32 coercion in setListBounds().
3802
+ * Throws when origin/capacity would exceed the trie's safe range.
3803
+ */
3804
+ function validateListBoundsRequest(list, begin, end) {
3805
+ var requestedOrigin = list._origin + (begin === undefined ? 0 : begin);
3806
+ var requestedCapacity =
3807
+ end === undefined
3808
+ ? list._capacity
3809
+ : end < 0
3810
+ ? list._capacity + end
3811
+ : list._origin + end;
3812
+
3813
+ // Keep origin/capacity within the trie's safe signed 32-bit range.
3814
+ if (
3815
+ (Number.isFinite(requestedCapacity) && requestedCapacity > MAX_LIST_SIZE) ||
3816
+ (Number.isFinite(requestedOrigin) && requestedOrigin < -MAX_LIST_SIZE) ||
3817
+ (Number.isFinite(requestedCapacity) &&
3818
+ Number.isFinite(requestedOrigin) &&
3819
+ requestedCapacity - requestedOrigin > MAX_LIST_SIZE)
3820
+ ) {
3821
+ throw new RangeError(
3822
+ 'Invalid List size: a List cannot hold more than ' +
3823
+ MAX_LIST_SIZE +
3824
+ ' (2 ** 30) values.'
3825
+ );
3826
+ }
3827
+ }
3828
+
3700
3829
  function setListBounds(list, begin, end) {
3830
+ // Validate full-precision bounds before int32 coercion.
3831
+ validateListBoundsRequest(list, begin, end);
3832
+
3701
3833
  // Sanitize begin & end using this shorthand for ToInt32(argument)
3702
3834
  // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32
3703
3835
  if (begin !== undefined) {
@@ -3736,7 +3868,8 @@ function setListBounds(list, begin, end) {
3736
3868
  owner
3737
3869
  );
3738
3870
  newLevel += SHIFT;
3739
- offsetShift += 1 << newLevel;
3871
+ // Shift origin into non-negative space as trie height grows.
3872
+ offsetShift += levelCapacity(newLevel);
3740
3873
  }
3741
3874
  if (offsetShift) {
3742
3875
  newOrigin += offsetShift;
@@ -3749,7 +3882,7 @@ function setListBounds(list, begin, end) {
3749
3882
  var newTailOffset = getTailOffset(newCapacity);
3750
3883
 
3751
3884
  // New size might need creating a higher root.
3752
- while (newTailOffset >= 1 << (newLevel + SHIFT)) {
3885
+ while (newTailOffset >= levelCapacity(newLevel + SHIFT)) {
3753
3886
  newRoot = new VNode(
3754
3887
  newRoot && newRoot.array.length ? [newRoot] : [],
3755
3888
  owner
@@ -3847,6 +3980,19 @@ function getTailOffset(size) {
3847
3980
  return size < SIZE ? 0 : ((size - 1) >>> SHIFT) << SHIFT;
3848
3981
  }
3849
3982
 
3983
+ // The largest number of values a List can hold. Above this the 32-bit trie math
3984
+ // in setListBounds() stays in the safe signed 32-bit range.
3985
+ var MAX_LIST_SIZE = Math.pow( 2, 30 ); // 1073741824
3986
+
3987
+ /**
3988
+ * Computes 2 ** exp for the trie level-raising loops in setListBounds().
3989
+ * Use the cheap bitwise operator shift whenever possible, otherwise fall back to exponentiation.
3990
+ * This is necessary because bitwise operators in JavaScript only work on 32-bit signed integers, so for exp >= 31, we need to use exponentiation to avoid overflow.
3991
+ */
3992
+ function levelCapacity(exp) {
3993
+ return exp < 31 ? 1 << exp : Math.pow( 2, exp );
3994
+ }
3995
+
3850
3996
  var OrderedMap = /*@__PURE__*/(function (Map) {
3851
3997
  function OrderedMap(value) {
3852
3998
  // eslint-disable-next-line no-constructor-return
@@ -5948,7 +6094,7 @@ function defaultConverter(k, v) {
5948
6094
  return isIndexed(v) ? v.toList() : isKeyed(v) ? v.toMap() : v.toSet();
5949
6095
  }
5950
6096
 
5951
- var version = "4.3.8";
6097
+ var version = "4.3.9";
5952
6098
 
5953
6099
  var Immutable = {
5954
6100
  version: version,
@@ -886,6 +886,29 @@
886
886
  return smi(hashed);
887
887
  }
888
888
 
889
+ // Per-process seed for the secondary collision hash. Never exposed nor
890
+ // serialized, so the public `hash()` stays deterministic. An odd base in
891
+ // [3, 2^20) keeps `base * h` exact as a double (no `Math.imul`).
892
+ var COLLISION_HASH_BASE =
893
+ ((Math.random() * 0x100000) | 1) % 0x100000 || 0x9e37;
894
+
895
+ // Secondary hash to index entries within a `HashCollisionNode`, where every key
896
+ // shares the same primary `hash()`. Using a different, seeded base scatters
897
+ // crafted collision families (e.g. "Aa"/"BB", which only collide under base 31)
898
+ // that an attacker cannot precompute without the seed. It only narrows
899
+ // candidates — `is()` still decides equality — so non-string keys can safely
900
+ // fall back to the (here constant) primary hash and a linear scan.
901
+ function hashCollisionKey(key) {
902
+ if (typeof key !== 'string') {
903
+ return hash(key);
904
+ }
905
+ var hashed = 0;
906
+ for (var ii = 0; ii < key.length; ii++) {
907
+ hashed = (COLLISION_HASH_BASE * hashed + key.charCodeAt(ii)) | 0;
908
+ }
909
+ return hashed;
910
+ }
911
+
889
912
  function hashSymbol(sym) {
890
913
  var hashed = symbolMap[sym];
891
914
  if (hashed !== undefined) {
@@ -2792,20 +2815,79 @@
2792
2815
  return new HashArrayMapNode(ownerID, newCount, newNodes);
2793
2816
  };
2794
2817
 
2818
+ /**
2819
+ * Trie leaf gathering entries whose keys all share the same 32-bit `hash()`.
2820
+ * The trie routes by hash, so colliding keys cannot be separated and land here
2821
+ * in a flat `entries` array, disambiguated by `is()`.
2822
+ *
2823
+ * To guard against hash-flooding DoS (CWE-407), large buckets build a secondary
2824
+ * index keyed by a per-process seeded hash (`hashCollisionKey`). `is()` still
2825
+ * decides equality, so the index can only ever narrow candidates, never lose a key.
2826
+ */
2795
2827
  var HashCollisionNode = function HashCollisionNode(ownerID, keyHash, entries) {
2796
2828
  this.ownerID = ownerID;
2797
2829
  this.keyHash = keyHash;
2798
2830
  this.entries = entries;
2831
+ // Lazy `{ [secondaryHash]: number[] }`, built only past
2832
+ // MIN_HASH_COLLISION_INDEX_SIZE so small buckets keep their linear path.
2833
+ this._index = undefined;
2799
2834
  };
2800
2835
 
2801
- HashCollisionNode.prototype.get = function get (shift, keyHash, key, notSetValue) {
2836
+ // Returns the position of `key` in `this.entries`, or -1. Uses the secondary
2837
+ // index when present; builds it only when `buildIndex` is true (reads and
2838
+ // transient inserts, where the node is reused so the O(n) build amortizes).
2839
+ // Persistent inserts already pay an O(n) copy, so a throwaway index is skipped.
2840
+ HashCollisionNode.prototype._positionOf = function _positionOf (key, buildIndex) {
2841
+ var entries = this.entries;
2842
+ var index = this._index;
2843
+ if (
2844
+ index === undefined &&
2845
+ buildIndex &&
2846
+ entries.length >= MIN_HASH_COLLISION_INDEX_SIZE
2847
+ ) {
2848
+ index = this._buildIndex();
2849
+ }
2850
+ if (index !== undefined) {
2851
+ var positions = index[hashCollisionKey(key)];
2852
+ if (positions !== undefined) {
2853
+ for (var jj = 0; jj < positions.length; jj++) {
2854
+ var ii = positions[jj];
2855
+ if (is(key, entries[ii][0])) {
2856
+ return ii;
2857
+ }
2858
+ }
2859
+ }
2860
+ return -1;
2861
+ }
2862
+ for (var ii$1 = 0, len = entries.length; ii$1 < len; ii$1++) {
2863
+ if (is(key, entries[ii$1][0])) {
2864
+ return ii$1;
2865
+ }
2866
+ }
2867
+ return -1;
2868
+ };
2869
+
2870
+ // Builds and memoizes the secondary index. A plain object, not `Map` — which
2871
+ // in this module resolves to the *Immutable* Map, not the native one.
2872
+ HashCollisionNode.prototype._buildIndex = function _buildIndex () {
2873
+ var index = Object.create(null);
2802
2874
  var entries = this.entries;
2803
2875
  for (var ii = 0, len = entries.length; ii < len; ii++) {
2804
- if (is(key, entries[ii][0])) {
2805
- return entries[ii][1];
2876
+ var secondaryHash = hashCollisionKey(entries[ii][0]);
2877
+ var positions = index[secondaryHash];
2878
+ if (positions !== undefined) {
2879
+ positions.push(ii);
2880
+ } else {
2881
+ index[secondaryHash] = [ii];
2806
2882
  }
2807
2883
  }
2808
- return notSetValue;
2884
+ this._index = index;
2885
+ return index;
2886
+ };
2887
+
2888
+ HashCollisionNode.prototype.get = function get (shift, keyHash, key, notSetValue) {
2889
+ var idx = this._positionOf(key, true);
2890
+ return idx === -1 ? notSetValue : this.entries[idx][1];
2809
2891
  };
2810
2892
 
2811
2893
  HashCollisionNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {
@@ -2825,14 +2907,11 @@
2825
2907
  }
2826
2908
 
2827
2909
  var entries = this.entries;
2828
- var idx = 0;
2829
2910
  var len = entries.length;
2830
- for (; idx < len; idx++) {
2831
- if (is(key, entries[idx][0])) {
2832
- break;
2833
- }
2834
- }
2835
- var exists = idx < len;
2911
+ var isEditable = ownerID && ownerID === this.ownerID;
2912
+ var foundIdx = this._positionOf(key, isEditable);
2913
+ var idx = foundIdx === -1 ? len : foundIdx;
2914
+ var exists = foundIdx !== -1;
2836
2915
 
2837
2916
  if (exists ? entries[idx][1] === value : removed) {
2838
2917
  return this;
@@ -2845,7 +2924,6 @@
2845
2924
  return new ValueNode(ownerID, this.keyHash, entries[idx ^ 1]);
2846
2925
  }
2847
2926
 
2848
- var isEditable = ownerID && ownerID === this.ownerID;
2849
2927
  var newEntries = isEditable ? entries : arrCopy(entries);
2850
2928
 
2851
2929
  if (exists) {
@@ -2853,11 +2931,27 @@
2853
2931
  idx === len - 1
2854
2932
  ? newEntries.pop()
2855
2933
  : (newEntries[idx] = newEntries.pop());
2934
+ // The swap-pop reshuffles positions; drop the stale index (rebuilt lazily).
2935
+ if (isEditable) {
2936
+ this._index = undefined;
2937
+ }
2856
2938
  } else {
2939
+ // Same key, same position: the index stays valid.
2857
2940
  newEntries[idx] = [key, value];
2858
2941
  }
2859
2942
  } else {
2860
2943
  newEntries.push([key, value]);
2944
+ // Keep the index in sync on the transient insert path. Persistent inserts
2945
+ // return a fresh node below whose index rebuilds lazily, so skip them.
2946
+ if (isEditable && this._index !== undefined) {
2947
+ var secondaryHash = hashCollisionKey(key);
2948
+ var positions = this._index[secondaryHash];
2949
+ if (positions !== undefined) {
2950
+ positions.push(len);
2951
+ } else {
2952
+ this._index[secondaryHash] = [len];
2953
+ }
2954
+ }
2861
2955
  }
2862
2956
 
2863
2957
  if (isEditable) {
@@ -3191,6 +3285,12 @@
3191
3285
  var MAX_BITMAP_INDEXED_SIZE = SIZE / 2;
3192
3286
  var MIN_HASH_ARRAY_MAP_SIZE = SIZE / 4;
3193
3287
 
3288
+ // Above this many colliding entries, a `HashCollisionNode` builds a seeded
3289
+ // secondary index instead of scanning linearly. Kept small so the rare,
3290
+ // naturally-occurring collision buckets stay overhead-free, while adversarial
3291
+ // hash-flooding (thousands of keys sharing one hash) degrades gracefully.
3292
+ var MIN_HASH_COLLISION_INDEX_SIZE = 16;
3293
+
3194
3294
  var IS_LIST_SYMBOL = '@@__IMMUTABLE_LIST__@@';
3195
3295
 
3196
3296
  function isList(maybeList) {
@@ -3703,7 +3803,39 @@
3703
3803
  }
3704
3804
  }
3705
3805
 
3806
+ /**
3807
+ * Validates requested bounds before int32 coercion in setListBounds().
3808
+ * Throws when origin/capacity would exceed the trie's safe range.
3809
+ */
3810
+ function validateListBoundsRequest(list, begin, end) {
3811
+ var requestedOrigin = list._origin + (begin === undefined ? 0 : begin);
3812
+ var requestedCapacity =
3813
+ end === undefined
3814
+ ? list._capacity
3815
+ : end < 0
3816
+ ? list._capacity + end
3817
+ : list._origin + end;
3818
+
3819
+ // Keep origin/capacity within the trie's safe signed 32-bit range.
3820
+ if (
3821
+ (Number.isFinite(requestedCapacity) && requestedCapacity > MAX_LIST_SIZE) ||
3822
+ (Number.isFinite(requestedOrigin) && requestedOrigin < -MAX_LIST_SIZE) ||
3823
+ (Number.isFinite(requestedCapacity) &&
3824
+ Number.isFinite(requestedOrigin) &&
3825
+ requestedCapacity - requestedOrigin > MAX_LIST_SIZE)
3826
+ ) {
3827
+ throw new RangeError(
3828
+ 'Invalid List size: a List cannot hold more than ' +
3829
+ MAX_LIST_SIZE +
3830
+ ' (2 ** 30) values.'
3831
+ );
3832
+ }
3833
+ }
3834
+
3706
3835
  function setListBounds(list, begin, end) {
3836
+ // Validate full-precision bounds before int32 coercion.
3837
+ validateListBoundsRequest(list, begin, end);
3838
+
3707
3839
  // Sanitize begin & end using this shorthand for ToInt32(argument)
3708
3840
  // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32
3709
3841
  if (begin !== undefined) {
@@ -3742,7 +3874,8 @@
3742
3874
  owner
3743
3875
  );
3744
3876
  newLevel += SHIFT;
3745
- offsetShift += 1 << newLevel;
3877
+ // Shift origin into non-negative space as trie height grows.
3878
+ offsetShift += levelCapacity(newLevel);
3746
3879
  }
3747
3880
  if (offsetShift) {
3748
3881
  newOrigin += offsetShift;
@@ -3755,7 +3888,7 @@
3755
3888
  var newTailOffset = getTailOffset(newCapacity);
3756
3889
 
3757
3890
  // New size might need creating a higher root.
3758
- while (newTailOffset >= 1 << (newLevel + SHIFT)) {
3891
+ while (newTailOffset >= levelCapacity(newLevel + SHIFT)) {
3759
3892
  newRoot = new VNode(
3760
3893
  newRoot && newRoot.array.length ? [newRoot] : [],
3761
3894
  owner
@@ -3853,6 +3986,19 @@
3853
3986
  return size < SIZE ? 0 : ((size - 1) >>> SHIFT) << SHIFT;
3854
3987
  }
3855
3988
 
3989
+ // The largest number of values a List can hold. Above this the 32-bit trie math
3990
+ // in setListBounds() stays in the safe signed 32-bit range.
3991
+ var MAX_LIST_SIZE = Math.pow( 2, 30 ); // 1073741824
3992
+
3993
+ /**
3994
+ * Computes 2 ** exp for the trie level-raising loops in setListBounds().
3995
+ * Use the cheap bitwise operator shift whenever possible, otherwise fall back to exponentiation.
3996
+ * This is necessary because bitwise operators in JavaScript only work on 32-bit signed integers, so for exp >= 31, we need to use exponentiation to avoid overflow.
3997
+ */
3998
+ function levelCapacity(exp) {
3999
+ return exp < 31 ? 1 << exp : Math.pow( 2, exp );
4000
+ }
4001
+
3856
4002
  var OrderedMap = /*@__PURE__*/(function (Map) {
3857
4003
  function OrderedMap(value) {
3858
4004
  // eslint-disable-next-line no-constructor-return
@@ -5954,7 +6100,7 @@
5954
6100
  return isIndexed(v) ? v.toList() : isKeyed(v) ? v.toMap() : v.toSet();
5955
6101
  }
5956
6102
 
5957
- var version = "4.3.8";
6103
+ var version = "4.3.9";
5958
6104
 
5959
6105
  var Immutable = {
5960
6106
  version: version,